Commit f8ad9016 authored by Howard Chu's avatar Howard Chu
Browse files

ITS#5209 sasl_host may be different from global_host

parent 005209bf
...@@ -508,7 +508,7 @@ static ConfigTable config_back_cf_table[] = { ...@@ -508,7 +508,7 @@ static ConfigTable config_back_cf_table[] = {
&config_generic, NULL, NULL, NULL }, &config_generic, NULL, NULL, NULL },
{ "sasl-host", "host", 2, 2, 0, { "sasl-host", "host", 2, 2, 0,
#ifdef HAVE_CYRUS_SASL #ifdef HAVE_CYRUS_SASL
ARG_STRING|ARG_UNIQUE, &global_host, ARG_STRING|ARG_UNIQUE, &sasl_host,
#else #else
ARG_IGNORED, NULL, ARG_IGNORED, NULL,
#endif #endif
......
...@@ -64,6 +64,7 @@ int global_gentlehup = 0; ...@@ -64,6 +64,7 @@ int global_gentlehup = 0;
int global_idletimeout = 0; int global_idletimeout = 0;
char *global_host = NULL; char *global_host = NULL;
char *global_realm = NULL; char *global_realm = NULL;
char *sasl_host = NULL;
char **default_passwd_hash = NULL; char **default_passwd_hash = NULL;
struct berval default_search_base = BER_BVNULL; struct berval default_search_base = BER_BVNULL;
struct berval default_search_nbase = BER_BVNULL; struct berval default_search_nbase = BER_BVNULL;
......
...@@ -832,6 +832,12 @@ unhandled_option:; ...@@ -832,6 +832,12 @@ unhandled_option:;
} }
#endif #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_SIGUSR1, slap_sig_wake );
(void) SIGNAL( LDAP_SIGUSR2, slap_sig_shutdown ); (void) SIGNAL( LDAP_SIGUSR2, slap_sig_shutdown );
......
...@@ -1879,6 +1879,7 @@ LDAP_SLAPD_V (int) global_gentlehup; ...@@ -1879,6 +1879,7 @@ LDAP_SLAPD_V (int) global_gentlehup;
LDAP_SLAPD_V (int) global_idletimeout; LDAP_SLAPD_V (int) global_idletimeout;
LDAP_SLAPD_V (char *) global_host; LDAP_SLAPD_V (char *) global_host;
LDAP_SLAPD_V (char *) global_realm; LDAP_SLAPD_V (char *) global_realm;
LDAP_SLAPD_V (char *) sasl_host;
LDAP_SLAPD_V (char **) default_passwd_hash; LDAP_SLAPD_V (char **) default_passwd_hash;
LDAP_SLAPD_V (int) lber_debug; LDAP_SLAPD_V (int) lber_debug;
LDAP_SLAPD_V (int) ldap_syslog; LDAP_SLAPD_V (int) ldap_syslog;
......
...@@ -1279,8 +1279,8 @@ int slap_sasl_destroy( void ) ...@@ -1279,8 +1279,8 @@ int slap_sasl_destroy( void )
#ifdef HAVE_CYRUS_SASL #ifdef HAVE_CYRUS_SASL
sasl_done(); sasl_done();
#endif #endif
free( global_host ); free( sasl_host );
global_host = NULL; sasl_host = NULL;
return 0; return 0;
} }
...@@ -1389,7 +1389,7 @@ int slap_sasl_open( Connection *conn, int reopen ) ...@@ -1389,7 +1389,7 @@ int slap_sasl_open( Connection *conn, int reopen )
ipremoteport = slap_sasl_peer2ipport( &conn->c_peer_name ); 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 ); iplocalport, ipremoteport, session_callbacks, SASL_SUCCESS_DATA, &ctx );
if ( iplocalport != NULL ) { if ( iplocalport != NULL ) {
ch_free( iplocalport ); ch_free( iplocalport );
...@@ -1398,7 +1398,7 @@ int slap_sasl_open( Connection *conn, int reopen ) ...@@ -1398,7 +1398,7 @@ int slap_sasl_open( Connection *conn, int reopen )
ch_free( ipremoteport ); ch_free( ipremoteport );
} }
#else #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 ); session_callbacks, SASL_SECURITY_LAYER, &ctx );
#endif #endif
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment