]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/options.c
Apply Novell's IN_KERNEL support (ITS#576)
[openldap] / libraries / libldap / options.c
index a892207d8c11200a54998f5496650fba2c5c5740..879c70f3a897eddc6c0277b7dad37c2c06689db6 100644 (file)
@@ -79,16 +79,19 @@ ldap_get_option(
        int             option,
        void    *outvalue)
 {
-       const struct ldapoptions *lo;
+       struct ldapoptions *lo;
 
-       if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
-               ldap_int_initialize(NULL);
+       /* Get pointer to global option structure */
+       lo = LDAP_INT_GLOBAL_OPT();   
+       if (NULL == lo) {
+               return LDAP_NO_MEMORY;
        }
 
-       if(ld == NULL) {
-               lo = &ldap_int_global_options;
+       if( lo->ldo_valid != LDAP_INITIALIZED ) {
+               ldap_int_initialize(lo, NULL);
+       }
 
-       } else {
+       if(ld != NULL) {
                assert( LDAP_VALID( ld ) );
 
                if( !LDAP_VALID( ld ) ) {
@@ -188,10 +191,6 @@ ldap_get_option(
                * (int *) outvalue = (int) LDAP_BOOL_GET(lo, LDAP_BOOL_RESTART);
                return LDAP_OPT_SUCCESS;
 
-       case LDAP_OPT_DNS:      /* LDAPv2 */
-               * (int *) outvalue = (int) LDAP_BOOL_GET(lo, LDAP_BOOL_DNS);
-               return LDAP_OPT_SUCCESS;
-
        case LDAP_OPT_PROTOCOL_VERSION:
                * (int *) outvalue = lo->ldo_version;
                return LDAP_OPT_SUCCESS;
@@ -305,6 +304,12 @@ ldap_set_option(
        struct ldapoptions *lo;
        int *dbglvl = NULL;
 
+       /* Get pointer to global option structure */
+       lo = LDAP_INT_GLOBAL_OPT();
+       if (lo == NULL) {
+               return LDAP_NO_MEMORY;
+       }
+
        /*
         * The architecture to turn on debugging has a chicken and egg
         * problem. Thus, we introduce a fix here.
@@ -313,14 +318,11 @@ ldap_set_option(
        if (option == LDAP_OPT_DEBUG_LEVEL)
            dbglvl = (int *) invalue;
 
-       if( ldap_int_global_options.ldo_valid != LDAP_INITIALIZED ) {
-               ldap_int_initialize(dbglvl);
+       if( lo->ldo_valid != LDAP_INITIALIZED ) {
+               ldap_int_initialize(lo, dbglvl);
        }
 
-       if(ld == NULL) {
-               lo = &ldap_int_global_options;
-
-       } else {
+       if(ld != NULL) {
                assert( LDAP_VALID( ld ) );
 
                if( !LDAP_VALID( ld ) ) {