X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Finit.c;h=e05ade2d4cbb86f1c62219b9e90b1abf4e51d06e;hb=2b0819c4a9209784f762ec154ce4721038522a8a;hp=cf49633cb9045f32e0cd673352fb92b4d7a5c140;hpb=d554a31b589675c209ed5801f52864fc8cec1b81;p=openldap diff --git a/libraries/libldap/init.c b/libraries/libldap/init.c index cf49633cb9..e05ade2d4c 100644 --- a/libraries/libldap/init.c +++ b/libraries/libldap/init.c @@ -26,7 +26,7 @@ struct ldapoptions ldap_int_global_options = #define ATTR_INT 2 #define ATTR_KV 3 #define ATTR_STRING 4 -#define ATTR_URIS 5 +#define ATTR_OPTION 5 #define ATTR_SASL 6 #define ATTR_TLS 7 @@ -63,8 +63,8 @@ static const struct ol_attribute { offsetof(struct ldapoptions, ldo_defbase)}, {0, ATTR_INT, "PORT", NULL, /* deprecated */ offsetof(struct ldapoptions, ldo_defport)}, - {0, ATTR_URIS, "HOST", NULL, 1}, /* deprecated */ - {0, ATTR_URIS, "URI", NULL, 0}, /* replaces HOST/URI */ + {0, ATTR_OPTION, "HOST", NULL, LDAP_OPT_HOST_NAME}, /* deprecated */ + {0, ATTR_OPTION, "URI", NULL, LDAP_OPT_URI}, /* replaces HOST/PORT */ {0, ATTR_BOOL, "REFERRALS", NULL, LDAP_BOOL_REFERRALS}, {0, ATTR_BOOL, "RESTART", NULL, LDAP_BOOL_RESTART}, @@ -211,12 +211,8 @@ static void openldap_ldap_init_w_conf( if (* (char**) p != NULL) LDAP_FREE(* (char**) p); * (char**) p = LDAP_STRDUP(opt); break; - case ATTR_URIS: - if (attrs[i].offset == 0) { - ldap_set_option( NULL, LDAP_OPT_URI, opt ); - } else { - ldap_set_option( NULL, LDAP_OPT_HOST_NAME, opt ); - } + case ATTR_OPTION: + ldap_set_option( NULL, attrs[i].offset, opt ); break; case ATTR_SASL: #ifdef HAVE_CYRUS_SASL @@ -225,7 +221,7 @@ static void openldap_ldap_init_w_conf( break; case ATTR_TLS: #ifdef HAVE_TLS - ldap_int_tls_config( gopts, attrs[i].offset, opt ); + ldap_int_tls_config( NULL, attrs[i].offset, opt ); #endif break; } @@ -267,11 +263,11 @@ static void openldap_ldap_init_w_userconf(const char *file) /* we assume UNIX path syntax is used... */ /* try ~/file */ - sprintf(path, "%s/%s", home, file); + sprintf(path, "%s%s%s", home, LDAP_DIRSEP, file); openldap_ldap_init_w_conf(path, 1); /* try ~/.file */ - sprintf(path, "%s/.%s", home, file); + sprintf(path, "%s%s.%s", home, LDAP_DIRSEP, file); openldap_ldap_init_w_conf(path, 1); } @@ -351,12 +347,8 @@ static void openldap_ldap_init_w_env( * (char**) p = LDAP_STRDUP(value); } break; - case ATTR_URIS: - if (attrs[i].offset == 0) { - ldap_set_option( NULL, LDAP_OPT_URI, value ); - } else { - ldap_set_option( NULL, LDAP_OPT_HOST_NAME, value ); - } + case ATTR_OPTION: + ldap_set_option( NULL, attrs[i].offset, value ); break; case ATTR_SASL: #ifdef HAVE_CYRUS_SASL @@ -365,7 +357,7 @@ static void openldap_ldap_init_w_env( break; case ATTR_TLS: #ifdef HAVE_TLS - ldap_int_tls_config( gopts, attrs[i].offset, value ); + ldap_int_tls_config( NULL, attrs[i].offset, value ); #endif break; } @@ -397,31 +389,35 @@ void ldap_int_initialize_global_options( struct ldapoptions *gopts, int *dbglvl gopts->ldo_defport = LDAP_PORT; gopts->ldo_refhoplimit = LDAP_DEFAULT_REFHOPLIMIT; - gopts->ldo_rebindproc = NULL; + gopts->ldo_rebind_proc = NULL; + gopts->ldo_rebind_params = NULL; LDAP_BOOL_ZERO(gopts); LDAP_BOOL_SET(gopts, LDAP_BOOL_REFERRALS); +#ifdef LDAP_CONNECTIONLESS + gopts->ldo_peer = NULL; + gopts->ldo_cldapdn = NULL; + gopts->ldo_is_udp = 0; +#endif + #ifdef HAVE_CYRUS_SASL gopts->ldo_def_sasl_mech = NULL; gopts->ldo_def_sasl_realm = NULL; gopts->ldo_def_sasl_authcid = NULL; gopts->ldo_def_sasl_authzid = NULL; - memset( &gopts->ldo_sasl_secprops, '\0', sizeof(gopts->ldo_sasl_secprops) ); + memset( &gopts->ldo_sasl_secprops, + '\0', sizeof(gopts->ldo_sasl_secprops) ); gopts->ldo_sasl_secprops.max_ssf = INT_MAX; - gopts->ldo_sasl_secprops.maxbufsize = 65536; - gopts->ldo_sasl_secprops.security_flags = SASL_SEC_NOPLAINTEXT|SASL_SEC_NOANONYMOUS; -#endif - -#ifdef HAVE_TLS - gopts->ldo_tls_ctx = NULL; + gopts->ldo_sasl_secprops.maxbufsize = SASL_MAX_BUFF_SIZE; + gopts->ldo_sasl_secprops.security_flags = + SASL_SEC_NOPLAINTEXT | SASL_SEC_NOANONYMOUS; #endif gopts->ldo_valid = LDAP_INITIALIZED; - return; } @@ -436,6 +432,8 @@ void ldap_int_initialize( struct ldapoptions *gopts, int *dbglvl ) return; } + ldap_int_error_init(); + #if defined(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND) \ || defined(HAVE_TLS) || defined(HAVE_CYRUS_SASL) ldap_int_hostname = ldap_pvt_get_fqdn( ldap_int_hostname ); @@ -461,8 +459,7 @@ void ldap_int_initialize( struct ldapoptions *gopts, int *dbglvl ) if( user == NULL ) user = getenv("LOGNAME"); if( user != NULL ) { - /* this value is leaked, need at_exit() handler */ - gopts->ldo_def_sasl_authcid = LDAP_STRDUP( user ); + gopts->ldo_def_sasl_authcid = user; } } #endif