]> git.sur5r.net Git - openldap/commitdiff
Bugfix: Move handling of boolean options in front of invalue==NULL error check
authorHallvard Furuseth <hallvard@openldap.org>
Tue, 9 Mar 1999 07:49:56 +0000 (07:49 +0000)
committerHallvard Furuseth <hallvard@openldap.org>
Tue, 9 Mar 1999 07:49:56 +0000 (07:49 +0000)
libraries/libldap/options.c

index 3c99686ff37d4dec363012b233aad70fa4184e69..17259264cd071359379bf9a2aa44dfb113c0145d 100644 (file)
@@ -239,17 +239,35 @@ ldap_set_option(
                openldap_ldap_initialize();
        }
 
-       if(invalue == NULL) {
-               /* no place to set from */
-               return -1;
-       }
-
        if(ld == NULL) {
                lo = &openldap_ldap_global_options;
        } else {
                lo = &ld->ld_options;
        }
 
+       switch(option) {
+       case LDAP_OPT_REFERRALS:
+               if(invalue == LDAP_OPT_ON) {
+                       LDAP_BOOL_SET(lo, LDAP_BOOL_REFERRALS);
+               } else {
+                       LDAP_BOOL_CLR(lo, LDAP_BOOL_REFERRALS);
+               }
+               return 0;
+
+       case LDAP_OPT_RESTART:
+               if(invalue == LDAP_OPT_ON) {
+                       LDAP_BOOL_SET(lo, LDAP_BOOL_RESTART);
+               } else {
+                       LDAP_BOOL_CLR(lo, LDAP_BOOL_RESTART);
+               }
+               return 0;
+       }
+
+       if(invalue == NULL) {
+               /* no place to set from */
+               return -1;
+       }
+
        switch(option) {
        case LDAP_OPT_API_INFO:
        case LDAP_OPT_DESC:
@@ -268,22 +286,6 @@ ldap_set_option(
                lo->ldo_timelimit = * (int *) invalue;
                return 0;
 
-       case LDAP_OPT_REFERRALS:
-               if(invalue == LDAP_OPT_ON) {
-                       LDAP_BOOL_SET(lo, LDAP_BOOL_REFERRALS);
-               } else {
-                       LDAP_BOOL_CLR(lo, LDAP_BOOL_REFERRALS);
-               }
-               return 0;
-
-       case LDAP_OPT_RESTART:
-               if(invalue == LDAP_OPT_ON) {
-                       LDAP_BOOL_SET(lo, LDAP_BOOL_RESTART);
-               } else {
-                       LDAP_BOOL_CLR(lo, LDAP_BOOL_RESTART);
-               }
-               return 0;
-
        case LDAP_OPT_PROTOCOL_VERSION: {
                        int vers = * (int *) invalue;
                        if (vers < LDAP_VERSION_MIN || vers > LDAP_VERSION_MAX) {