]> git.sur5r.net Git - openldap/commitdiff
ITS#5209 sasl_host may be different from global_host
authorHoward Chu <hyc@openldap.org>
Mon, 5 Nov 2007 09:30:40 +0000 (09:30 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 5 Nov 2007 09:30:40 +0000 (09:30 +0000)
servers/slapd/bconfig.c
servers/slapd/config.c
servers/slapd/main.c
servers/slapd/proto-slap.h
servers/slapd/sasl.c

index 451045bf93d69cf2a69991792f021a28d96e1c92..d76ac9b1afad190ccbf24ce3c98583d6c3573db5 100644 (file)
@@ -508,7 +508,7 @@ static ConfigTable config_back_cf_table[] = {
                &config_generic, NULL, NULL, NULL },
        { "sasl-host", "host", 2, 2, 0,
 #ifdef HAVE_CYRUS_SASL
-               ARG_STRING|ARG_UNIQUE, &global_host,
+               ARG_STRING|ARG_UNIQUE, &sasl_host,
 #else
                ARG_IGNORED, NULL,
 #endif
index 2bcc5e47f3aab434152fdd532718e69df4ad02f8..4c8c9874e34e9e6b4e03bdee634827e6f1ecad36 100644 (file)
@@ -64,6 +64,7 @@ int           global_gentlehup = 0;
 int            global_idletimeout = 0;
 char   *global_host = NULL;
 char   *global_realm = NULL;
+char   *sasl_host = NULL;
 char           **default_passwd_hash = NULL;
 struct berval default_search_base = BER_BVNULL;
 struct berval default_search_nbase = BER_BVNULL;
index 86b61dd0e254df0555173c3e5f3174fc77ba3e16..c3de392799a51b806c595d9e1c480dd90ff673f2 100644 (file)
@@ -832,6 +832,12 @@ unhandled_option:;
        }
 #endif
 
+#ifdef HAVE_CYRUS_SASL
+       if( sasl_host == NULL ) {
+               sasl_host = ch_strdup( global_host );
+       }
+#endif
+
        (void) SIGNAL( LDAP_SIGUSR1, slap_sig_wake );
        (void) SIGNAL( LDAP_SIGUSR2, slap_sig_shutdown );
 
index 11f05fec56d1c6bdf559a3f0b549bfab003d8ac6..d53fd93cb00655661f7ca18634353383bdbf06e3 100644 (file)
@@ -1879,6 +1879,7 @@ LDAP_SLAPD_V (int)                global_gentlehup;
 LDAP_SLAPD_V (int)             global_idletimeout;
 LDAP_SLAPD_V (char *)  global_host;
 LDAP_SLAPD_V (char *)  global_realm;
+LDAP_SLAPD_V (char *)  sasl_host;
 LDAP_SLAPD_V (char **) default_passwd_hash;
 LDAP_SLAPD_V (int)             lber_debug;
 LDAP_SLAPD_V (int)             ldap_syslog;
index 0b3288d2c44f779c68da6321e2578cac7a6f3231..7a757872f6cf83a6de9493f4915a23cf1a2f3125 100644 (file)
@@ -1279,8 +1279,8 @@ int slap_sasl_destroy( void )
 #ifdef HAVE_CYRUS_SASL
        sasl_done();
 #endif
-       free( global_host );
-       global_host = NULL;
+       free( sasl_host );
+       sasl_host = NULL;
 
        return 0;
 }
@@ -1389,7 +1389,7 @@ int slap_sasl_open( Connection *conn, int reopen )
                ipremoteport = slap_sasl_peer2ipport( &conn->c_peer_name );
        }
 
-       sc = sasl_server_new( "ldap", global_host, global_realm,
+       sc = sasl_server_new( "ldap", sasl_host, global_realm,
                iplocalport, ipremoteport, session_callbacks, SASL_SUCCESS_DATA, &ctx );
        if ( iplocalport != NULL ) {
                ch_free( iplocalport );
@@ -1398,7 +1398,7 @@ int slap_sasl_open( Connection *conn, int reopen )
                ch_free( ipremoteport );
        }
 #else
-       sc = sasl_server_new( "ldap", global_host, global_realm,
+       sc = sasl_server_new( "ldap", sasl_host, global_realm,
                session_callbacks, SASL_SECURITY_LAYER, &ctx );
 #endif