]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/config.c
Partially revert prev commit, leave rs->sr_err == SLAPD_ABANDON
[openldap] / servers / slapd / config.c
index f03a11be8e388bb6ea1f13848a46cae4f369e8f7..c9763bf8be0a853e261675708f1cc6cbce97457e 100644 (file)
@@ -62,7 +62,9 @@ slap_mask_t           global_allows = 0;
 slap_mask_t            global_disallows = 0;
 int            global_gentlehup = 0;
 int            global_idletimeout = 0;
+int            global_writetimeout = 0;
 char   *global_host = NULL;
+struct berval global_host_bv = BER_BVNULL;
 char   *global_realm = NULL;
 char   *sasl_host = NULL;
 char           **default_passwd_hash = NULL;
@@ -214,6 +216,16 @@ int config_check_vals(ConfigTable *Conf, ConfigArgs *c, int check_only ) {
                        ch_free( c->value_ndn.bv_val );
                        ch_free( c->value_dn.bv_val );
                }
+       } else if(arg_type == ARG_ATDESC) {
+               const char *text = NULL;
+               c->value_ad = NULL;
+               rc = slap_str2ad( c->argv[1], &c->value_ad, &text );
+               if ( rc != LDAP_SUCCESS ) {
+                       snprintf( c->cr_msg, sizeof( c->cr_msg ), "<%s> invalid AttributeDescription %d (%s)",
+                               c->argv[0], rc, text );
+                       Debug(LDAP_DEBUG_CONFIG|LDAP_DEBUG_NONE, "%s: %s\n" , c->log, c->cr_msg, 0);
+                       return(ARG_BAD_CONF);
+               }
        } else {        /* all numeric */
                int j;
                iarg = 0; larg = 0; barg = 0;
@@ -364,6 +376,9 @@ int config_set_vals(ConfigTable *Conf, ConfigArgs *c) {
                        case ARG_BERVAL:
                                *(struct berval *)ptr = c->value_bv;
                                break;
+                       case ARG_ATDESC:
+                               *(AttributeDescription **)ptr = c->value_ad;
+                               break;
                }
        return(0);
 }
@@ -441,6 +456,8 @@ config_get_vals(ConfigTable *cf, ConfigArgs *c)
                        break;
                case ARG_BERVAL:
                        ber_dupbv( &c->value_bv, (struct berval *)ptr ); break;
+               case ARG_ATDESC:
+                       c->value_ad = *(AttributeDescription **)ptr; break;
                }
        }
        if ( cf->arg_type & ARGS_TYPES) {
@@ -467,6 +484,13 @@ config_get_vals(ConfigTable *cf, ConfigArgs *c)
                                return 1;
                        }
                        break;
+               case ARG_ATDESC:
+                       if ( c->value_ad ) {
+                               bv = c->value_ad->ad_cname;
+                       } else {
+                               return 1;
+                       }
+                       break;
                default:
                        bv.bv_val = NULL;
                        break;
@@ -1607,7 +1631,7 @@ int bindconf_tls_set( slap_bindconf *bc, LDAP *ld )
                }
        }
        if ( bc->sb_tls_reqcert ) {
-               rc = ldap_int_tls_config( ld, LDAP_OPT_X_TLS_REQUIRE_CERT,
+               rc = ldap_pvt_tls_config( ld, LDAP_OPT_X_TLS_REQUIRE_CERT,
                        bc->sb_tls_reqcert );
                if ( rc ) {
                        Debug( LDAP_DEBUG_ANY,
@@ -1618,7 +1642,7 @@ int bindconf_tls_set( slap_bindconf *bc, LDAP *ld )
                        newctx = 1;
        }
        if ( bc->sb_tls_protocol_min ) {
-               rc = ldap_int_tls_config( ld, LDAP_OPT_X_TLS_PROTOCOL_MIN,
+               rc = ldap_pvt_tls_config( ld, LDAP_OPT_X_TLS_PROTOCOL_MIN,
                        bc->sb_tls_protocol_min );
                if ( rc ) {
                        Debug( LDAP_DEBUG_ANY,
@@ -1630,7 +1654,7 @@ int bindconf_tls_set( slap_bindconf *bc, LDAP *ld )
        }
 #ifdef HAVE_OPENSSL_CRL
        if ( bc->sb_tls_crlcheck ) {
-               rc = ldap_int_tls_config( ld, LDAP_OPT_X_TLS_CRLCHECK,
+               rc = ldap_pvt_tls_config( ld, LDAP_OPT_X_TLS_CRLCHECK,
                        bc->sb_tls_crlcheck );
                if ( rc ) {
                        Debug( LDAP_DEBUG_ANY,