]> git.sur5r.net Git - openldap/commitdiff
Added debuglevel parameter to ldap_int_initialize().
authorHoward Chu <hyc@openldap.org>
Thu, 11 May 2000 09:48:40 +0000 (09:48 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 11 May 2000 09:48:40 +0000 (09:48 +0000)
libraries/libldap/init.c
libraries/libldap/ldap-int.h
libraries/libldap/open.c
libraries/libldap/options.c

index 816cc288814fb4b03d8f3c7ebf5dce5f4807063c..df24f1fe61eda83a3126b76679f8520fa1bcebd3 100644 (file)
@@ -101,12 +101,16 @@ static void openldap_ldap_init_w_conf(
                return;
        }
 
+       Debug(LDAP_DEBUG_TRACE, "ldap_init: trying %s\n", file, 0, 0);
+
        fp = fopen(file, "r");
        if(fp == NULL) {
                /* could not open file */
                return;
        }
 
+       Debug(LDAP_DEBUG_TRACE, "ldap_init: using %s\n", file, 0, 0);
+
        while((start = fgets(linebuf, sizeof(linebuf), fp)) != NULL) {
                /* skip lines starting with '#' */
                if(*start == '#') continue;
@@ -220,7 +224,7 @@ static void openldap_ldap_init_w_sysconf(const char *file)
 static void openldap_ldap_init_w_userconf(const char *file)
 {
        char *home;
-       char *path;
+       char *path = NULL;
 
        if (file == NULL) {
                /* no file name */
@@ -230,9 +234,12 @@ static void openldap_ldap_init_w_userconf(const char *file)
        home = getenv("HOME");
 
        if (home != NULL) {
+               Debug(LDAP_DEBUG_TRACE, "ldap_init: HOME env is %s\n",
+                     home, 0, 0);
                path = LDAP_MALLOC(strlen(home) + strlen(file) + 3);
        } else {
-               path = LDAP_MALLOC(strlen(file) + 3);
+               Debug(LDAP_DEBUG_TRACE, "ldap_init: HOME env is NULL\n",
+                     0, 0, 0);
        }
 
        if(home != NULL && path != NULL) {
@@ -337,7 +344,7 @@ static void openldap_ldap_init_w_env(const char *prefix)
        }
 }
 
-void ldap_int_initialize( void )
+void ldap_int_initialize( int *dbglvl )
 {
        if ( gopts.ldo_valid == LDAP_INITIALIZED ) {
                return;
@@ -356,6 +363,9 @@ void ldap_int_initialize( void )
        if ( ldap_int_tblsize == 0 )
                ldap_int_ip_init();
 
+       if (dbglvl)
+           gopts.ldo_debug = *dbglvl;
+       else
        gopts.ldo_debug = 0;
 
        gopts.ldo_version =     LDAP_VERSION2;
@@ -399,16 +409,26 @@ void ldap_int_initialize( void )
                char *altfile = getenv(LDAP_ENV_PREFIX "CONF");
 
                if( altfile != NULL ) {
+                       Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is %s\n",
+                             LDAP_ENV_PREFIX "CONF", altfile, 0);
                        openldap_ldap_init_w_sysconf( altfile );
                }
+               else
+                       Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is NULL\n",
+                             LDAP_ENV_PREFIX "CONF", 0, 0);
        }
 
        {
                char *altfile = getenv(LDAP_ENV_PREFIX "RC");
 
                if( altfile != NULL ) {
+                       Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is %s\n",
+                             LDAP_ENV_PREFIX "RC", altfile, 0);
                        openldap_ldap_init_w_userconf( altfile );
                }
+               else
+                       Debug(LDAP_DEBUG_TRACE, "ldap_init: %s env is NULL\n",
+                             LDAP_ENV_PREFIX "RC", 0, 0);
        }
 
        openldap_ldap_init_w_env(NULL);
index a19ea260e8a259cd9716baded1e4fd1052731666..c0957b68fc77b766271a7049ea62a4e9d672a0da 100644 (file)
@@ -291,8 +291,7 @@ extern ldap_pvt_thread_mutex_t ldap_int_resolv_mutex;
  */
 
 LIBLDAP_F ( struct ldapoptions ) ldap_int_global_options;
-LIBLDAP_F ( void ) ldap_int_initialize LDAP_P((void));
-
+LIBLDAP_F ( void ) ldap_int_initialize LDAP_P((int *));
 
 /* memory.c */
        /* simple macros to realloc for now */
index 29a9dded377239a73eb2237ea82fd988ab23dac6..7339bc3415ac762f3ed68e01b6e15cf8fef3f806 100644 (file)
@@ -80,7 +80,7 @@ ldap_create( LDAP **ldp )
 
        *ldp = NULL;
        if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
-               ldap_int_initialize();
+               ldap_int_initialize(NULL);
        }
 
        Debug( LDAP_DEBUG_TRACE, "ldap_init\n", 0, 0, 0 );
index d7db40b27e86fc4f787bb195e2b627b43bdeb92f..dbc4fd5d98e258885b10bd323744e0344660ce6d 100644 (file)
@@ -87,7 +87,7 @@ ldap_get_option(
        const struct ldapoptions *lo;
 
        if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
-               ldap_int_initialize();
+               ldap_int_initialize(NULL);
        }
 
        if(ld == NULL) {
@@ -308,9 +308,18 @@ ldap_set_option(
        LDAP_CONST void *invalue)
 {
        struct ldapoptions *lo;
+       int *dbglvl = NULL;
+
+       /*
+        * The architecture to turn on debugging has a chicken and egg
+        * problem. Thus, we introduce a fix here.
+        */
+
+       if (option == LDAP_OPT_DEBUG_LEVEL)
+           dbglvl = (int *) invalue;
 
        if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
-               ldap_int_initialize();
+               ldap_int_initialize(dbglvl);
        }
 
        if(ld == NULL) {