1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

libsmbclient: Factor out cli_session_setup_get_account

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Volker Lendecke
2013-03-09 09:53:42 +01:00
committed by Jeremy Allison
parent 0008d9e1c5
commit e2e0449a58

View File

@ -1902,6 +1902,22 @@ static char *cli_session_setup_get_principal(
}
#endif
static char *cli_session_setup_get_account(TALLOC_CTX *mem_ctx,
const char *principal)
{
char *account, *p;
account = talloc_strdup(mem_ctx, principal);
if (account == NULL) {
return NULL;
}
p = strchr_m(account, '@');
if (p != NULL) {
*p = '\0';
}
return account;
}
/****************************************************************************
Do a spnego encrypted session setup.
@ -1919,7 +1935,6 @@ static ADS_STATUS cli_session_setup_spnego(struct cli_state *cli,
char *OIDs[ASN1_MAX_OIDS];
int i;
const DATA_BLOB *server_blob;
char *p;
char *account = NULL;
NTSTATUS status;
@ -2012,18 +2027,11 @@ static ADS_STATUS cli_session_setup_spnego(struct cli_state *cli,
ntlmssp:
account = talloc_strdup(talloc_tos(), user);
account = cli_session_setup_get_account(talloc_tos(), user);
if (!account) {
return ADS_ERROR_NT(NT_STATUS_NO_MEMORY);
}
/* when falling back to ntlmssp while authenticating with a machine
* account strip off the realm - gd */
if ((p = strchr_m(account, '@')) != NULL) {
*p = '\0';
}
status = cli_session_setup_ntlmssp(cli, account, pass, user_domain);
TALLOC_FREE(account);
return ADS_ERROR_NT(status);