return;
}
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_DETAIL1,
+ "openldap_init_w_conf: trying %s\n", file ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: trying %s\n", file, 0, 0);
+#endif
fp = fopen(file, "r");
if(fp == NULL) {
return;
}
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_DETAIL1,
+ "openldap_init_w_conf: using %s\n", file ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: using %s\n", file, 0, 0);
+#endif
while((start = fgets(linebuf, sizeof(linebuf), fp)) != NULL) {
/* skip lines starting with '#' */
home = getenv("HOME");
if (home != NULL) {
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_ARGS,
+ "openldap_init_w_userconf: HOME env is %s\n", home ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: HOME env is %s\n",
home, 0, 0);
+#endif
path = LDAP_MALLOC(strlen(home) + strlen(file) + 3);
} else {
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_ARGS,
+ "openldap_init_w_userconf: HOME env is NULL\n" ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: HOME env is NULL\n",
0, 0, 0);
+#endif
}
if(home != NULL && path != NULL) {
}
}
+#if defined(__GNUC__)
+/* Declare this function as a destructor so that it will automatically be
+ * invoked either at program exit (if libldap is a static library) or
+ * at unload time (if libldap is a dynamic library).
+ *
+ * Sorry, don't know how to handle this for non-GCC environments.
+ */
+static void ldap_int_destroy_global_options(void)
+ __attribute__ ((destructor));
+#endif
+
static void
ldap_int_destroy_global_options(void)
{
gopts->ldo_tm_api = (struct timeval *)NULL;
gopts->ldo_tm_net = (struct timeval *)NULL;
- /* ldo_defludp wll be freed by the atexit() handler
+ /* ldo_defludp will be freed by the termination handler
*/
ldap_url_parselist(&gopts->ldo_defludp, "ldap://localhost/");
gopts->ldo_defport = LDAP_PORT;
+#if !defined(__GNUC__) && !defined(PIC)
+ /* Do this only for a static library, and only if we can't
+ * arrange for it to be executed as a library destructor
+ */
atexit(ldap_int_destroy_global_options);
+#endif
gopts->ldo_refhoplimit = LDAP_DEFAULT_REFHOPLIMIT;
gopts->ldo_rebind_proc = NULL;
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 );
-#endif
-
#ifdef HAVE_WINSOCK2
{ WORD wVersionRequested;
WSADATA wsaData;
return;
}
}
+#endif
+
+#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 );
#endif
ldap_int_utils_init();
char *altfile = getenv(LDAP_ENV_PREFIX "CONF");
if( altfile != NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_DETAIL1,
+ "openldap_init_w_userconf: %sCONF env is %s\n",
+ LDAP_ENV_PREFIX, altfile ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is %s\n",
LDAP_ENV_PREFIX "CONF", altfile, 0);
+#endif
openldap_ldap_init_w_sysconf( altfile );
}
else
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_DETAIL1,
+ "openldap_init_w_userconf: %sCONF env is NULL\n",
+ LDAP_ENV_PREFIX ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is NULL\n",
LDAP_ENV_PREFIX "CONF", 0, 0);
+#endif
}
{
char *altfile = getenv(LDAP_ENV_PREFIX "RC");
if( altfile != NULL ) {
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_DETAIL1,
+ "openldap_init_w_userconf: %sRC env is %s\n",
+ LDAP_ENV_PREFIX, altfile ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is %s\n",
LDAP_ENV_PREFIX "RC", altfile, 0);
+#endif
openldap_ldap_init_w_userconf( altfile );
}
else
+#ifdef NEW_LOGGING
+ LDAP_LOG (( "init", LDAP_LEVEL_DETAIL1,
+ "openldap_init_w_userconf: %sRC env is NULL\n",
+ LDAP_ENV_PREFIX ));
+#else
Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is NULL\n",
LDAP_ENV_PREFIX "RC", 0, 0);
+#endif
}
openldap_ldap_init_w_env(gopts, NULL);