mirror of
https://github.com/samba-team/samba.git
synced 2025-11-30 20:23:49 +03:00
r25407: Revert Longhorn join patch as it is not correct for the 3.2 tree.
The translate_name() used by cli_session_setup_spnego() cann rely Winbindd since it is needed by the join process (and hence before Winbind can be run).
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
cc19c0ace4
commit
00a93ed336
@@ -747,7 +747,6 @@ static ADS_STATUS ads_sasl_spnego_bind(ADS_STRUCT *ads)
|
||||
char *OIDs[ASN1_MAX_OIDS];
|
||||
#ifdef HAVE_KRB5
|
||||
BOOL got_kerberos_mechanism = False;
|
||||
BOOL try_kerberos = True;
|
||||
#endif
|
||||
|
||||
rc = ldap_sasl_bind_s(ads->ldap.ld, NULL, "GSS-SPNEGO", NULL, NULL, NULL, &scred);
|
||||
@@ -785,8 +784,7 @@ static ADS_STATUS ads_sasl_spnego_bind(ADS_STRUCT *ads)
|
||||
#endif
|
||||
free(OIDs[i]);
|
||||
}
|
||||
DEBUG(3,("ads_sasl_spnego_bind: got server principal name = %s\n",
|
||||
(given_principal ? given_principal : NULL)));
|
||||
DEBUG(3,("ads_sasl_spnego_bind: got server principal name = %s\n", given_principal));
|
||||
|
||||
#ifdef HAVE_KRB5
|
||||
if (!(ads->auth.flags & ADS_AUTH_DISABLE_KERBEROS) &&
|
||||
|
||||
@@ -55,45 +55,57 @@ failed:
|
||||
ADS_STATUS ads_guess_service_principal(ADS_STRUCT *ads,
|
||||
char **returned_principal)
|
||||
{
|
||||
ADS_STATUS status;
|
||||
char *princ = NULL;
|
||||
char *server = NULL;
|
||||
char *server_realm = NULL;
|
||||
|
||||
if (ads->server.realm && ads->server.ldap_server) {
|
||||
char *server, *server_realm;
|
||||
|
||||
server = SMB_STRDUP(ads->server.ldap_server);
|
||||
server_realm = SMB_STRDUP(ads->server.realm);
|
||||
|
||||
if (!server || !server_realm) {
|
||||
status = ADS_ERROR(LDAP_NO_MEMORY);
|
||||
goto fail;
|
||||
if (!server || !server_realm) {
|
||||
return ADS_ERROR(LDAP_NO_MEMORY);
|
||||
}
|
||||
|
||||
strlower_m(server);
|
||||
strupper_m(server_realm);
|
||||
asprintf(&princ, "ldap/%s@%s", server, server_realm);
|
||||
|
||||
SAFE_FREE(server);
|
||||
SAFE_FREE(server_realm);
|
||||
|
||||
if (!princ) {
|
||||
return ADS_ERROR(LDAP_NO_MEMORY);
|
||||
}
|
||||
} else if (ads->config.realm && ads->config.ldap_server_name) {
|
||||
char *server, *server_realm;
|
||||
|
||||
server = SMB_STRDUP(ads->config.ldap_server_name);
|
||||
server_realm = SMB_STRDUP(ads->config.realm);
|
||||
|
||||
if (!server || !server_realm) {
|
||||
status = ADS_ERROR(LDAP_NO_MEMORY);
|
||||
goto fail;
|
||||
}
|
||||
if (!server || !server_realm) {
|
||||
return ADS_ERROR(LDAP_NO_MEMORY);
|
||||
}
|
||||
|
||||
strlower_m(server);
|
||||
strupper_m(server_realm);
|
||||
asprintf(&princ, "ldap/%s@%s", server, server_realm);
|
||||
|
||||
SAFE_FREE(server);
|
||||
SAFE_FREE(server_realm);
|
||||
|
||||
if (!princ) {
|
||||
return ADS_ERROR(LDAP_NO_MEMORY);
|
||||
}
|
||||
}
|
||||
|
||||
strlower_m(server);
|
||||
strupper_m(server_realm);
|
||||
asprintf(&princ, "ldap/%s@%s", server, server_realm);
|
||||
|
||||
if (!princ) {
|
||||
status = ADS_ERROR(LDAP_PARAM_ERROR);
|
||||
return ADS_ERROR(LDAP_PARAM_ERROR);
|
||||
}
|
||||
|
||||
*returned_principal = princ;
|
||||
status = ADS_SUCCESS;
|
||||
|
||||
fail:
|
||||
SAFE_FREE(server);
|
||||
SAFE_FREE(server_realm);
|
||||
|
||||
return status;
|
||||
return ADS_SUCCESS;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user