#ifndef __AD_FUNC_H__
#define __AD_FUNC_H__
/*set to 1 to use the global catalog, 0 to use LDAP.
* LDAP is fine, except to span multiple subdomains*/
#define AD_USE_GC 0
/* Set to 1 to only allow SSL type active directory connections
* 0 to use no encryption*/
#define AD_ONLY_USE_SSL 0
/* Change to wherever you want to log to
* i.e. LOG_AUTH, LOG_MAIL, LOG_SYSLOG, etc.*/
#define AD_LOG_TO LOG_AUTH
/* Allows for subdomains in email address to also match
* i.e. les@fo2k.com and les@mail.fo2k.com will be synonymous*/
#define ALLOW_WILDCARDS_IN_EMAIL_ADDRESS 1
#define ALLOW_WILDCARDS_IN_GROUP_NAME 0
/*Alias stuff for email addresses not found
Change this to match your alias account settings*/
#define ALIAS_NAME "alias"
#define ALIAS_UID 1001
#define ALIAS_GID 101
#define ALIAS_DIR_HEADER "/var/qmail/alias"
/* Creates the home directory if it doesn't exist*/
#define CREATE_HOME_DIR 1
/* Also create the maildir within the homedir when creating the home dir*/
#define CREATE_MAILDIR 1
#define QMAIL_MAILDIRMAKE "/var/qmail/bin/maildirmake"
/* Convert the mailusername to lowercase for the delivery directory*/
#define CONVERT_MAILNAME_TO_LOWERCASE 1
#define CONTROL "/var/qmail/control/"
#define AD_DEFAULTUID_LOC CONTROL "ad_uid"
#define AD_DEFAULTGID_LOC CONTROL "ad_gid"
#define AD_DEFAULTMAILROOT_LOC CONTROL "ad_mailroot"
#define AD_DEFAULTSHELL_LOC CONTROL "ad_shell"
#define AD_DEFAULT_ADSERVERNAME_LOC CONTROL "ad_servername"
#define AD_DEFAULT_ADGENERALUSERDN_LOC CONTROL "ad_defaultuserdn"
#define AD_DEFAULT_ADBASEDN_LOC CONTROL "ad_basedn"
#define AD_DEFAULT_ADDOMAIN_LOC CONTROL "ad_domain"
#define AD_DEFAULT_ADGENERALUSERPASS_LOC CONTROL "ad_defaultpass"
/*you shouldn't have to change anything below*/
#include <ldap.h>
#define AD_CURRENT_VERSION "0.16"
#define AD_USERNAME_FIELD "saMAccountName"
#define AD_MEMBER_FIELD "member"
#define AD_MAIL_FIELD "mail"
#define GC_PORT 3268
#define GC_SSL_PORT 3269
#define AD_MAX_BIND_ATTEMPT 3
#define AD_TIMEOUT_SEC 10
#define AD_SUCCESS 1
#define AD_ERROR 0
#define CHAR_MAX 512
typedef struct AD_Password{
int uid;
int gid;
char *user;
char *home_dir;
char *shell;
int is_complete;
} ad_pwd;
typedef struct AD_Defaults{
char *general_user;
char *general_pw;
char *basedn;
char *domain;
char *server;
int useSSL;
int is_complete;
} ad_defs;
/*for groups*/
void zero_string(char *, int);
void strtolower(char *, int);
LDAP * ad_init(const char *, int, int);
int ad_bind(LDAP *, const char *, const char *);
void ad_close(LDAP *);
ad_defs *get_ad_defaults(void);
/*for checkadpassword*/
int setup_identity(ad_pwd *);
ad_pwd *getdefault_mailuser(const char *);
int ad_verify_user(const char *, const char *);
/*for qmail-adgetpw*/
int ad_getpw(const char *);
int send_alias(const char *);
#endif
syntax highlighted by Code2HTML, v. 0.9.1