#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 #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