]> git.sur5r.net Git - openldap/commitdiff
ITS#6147 add sasl-auxprop config, default to "slapd"
authorHoward Chu <hyc@openldap.org>
Wed, 27 May 2009 12:41:09 +0000 (12:41 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 27 May 2009 12:41:09 +0000 (12:41 +0000)
servers/slapd/bconfig.c
servers/slapd/proto-slap.h
servers/slapd/sasl.c

index bb35481386a66e7291e45a24db1d8d5b8a0eef0f..10d9cf033cb06f2255bc834ed521ed785d7aa850 100644 (file)
@@ -530,6 +530,14 @@ static ConfigTable config_back_cf_table[] = {
                        "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
        { "sasl-authz-policy", NULL, 2, 2, 0, ARG_MAGIC|CFG_AZPOLICY,
                &config_generic, NULL, NULL, NULL },
+       { "sasl-auxprops", NULL, 2, 0, 0,
+#ifdef HAVE_CYRUS_SASL
+               ARG_STRING|ARG_UNIQUE, &slap_sasl_auxprops,
+#else
+               ARG_IGNORED, NULL,
+#endif
+               "( OLcfgGlAt:89 NAME 'olcSaslAuxprops' "
+                       "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
        { "sasl-host", "host", 2, 2, 0,
 #ifdef HAVE_CYRUS_SASL
                ARG_STRING|ARG_UNIQUE, &sasl_host,
index f8212bc7e8a906736cbc6b0d65ddcd2be5c8ff30..3abb391e0b05fc678b91f8106a444520d6fef0da 100644 (file)
@@ -1944,6 +1944,7 @@ LDAP_SLAPD_V (char *)     global_host;
 LDAP_SLAPD_V (struct berval)   global_host_bv;
 LDAP_SLAPD_V (char *)  global_realm;
 LDAP_SLAPD_V (char *)  sasl_host;
+LDAP_SLAPD_V (char *)  slap_sasl_auxprops;
 LDAP_SLAPD_V (char **) default_passwd_hash;
 LDAP_SLAPD_V (int)             lber_debug;
 LDAP_SLAPD_V (int)             ldap_syslog;
index 459d38ce610d1ad2b66d8765bd7ad9c61ac4458b..14e3d25b6eaf7885fe0fb439c4f5a9b8f4ebcdbd 100644 (file)
@@ -63,8 +63,29 @@ typedef struct sasl_ctx {
 
 static struct berval ext_bv = BER_BVC( "EXTERNAL" );
 
+char *slap_sasl_auxprops;
+
 #ifdef HAVE_CYRUS_SASL
 
+/* Just use our internal auxprop by default */
+static int
+slap_sasl_getopt(
+       void *context,
+       const char *plugin_name,
+       const char *option,
+       const char **result,
+       unsigned *len)
+{
+       if ( strcmp( option, "auxprop_plugin" )) {
+               return SASL_FAIL;
+       }
+       if ( slap_sasl_auxprops )
+               *result = slap_sasl_auxprops;
+       else
+               *result = "slapd";
+       return SASL_OK;
+}
+
 int
 slap_sasl_log(
        void *context,
@@ -1078,6 +1099,7 @@ int slap_sasl_init( void )
        int rc;
        static sasl_callback_t server_callbacks[] = {
                { SASL_CB_LOG, &slap_sasl_log, NULL },
+               { SASL_CB_GETOPT, &slap_sasl_getopt, NULL },
                { SASL_CB_LIST_END, NULL, NULL }
        };
 #endif