diff options
author | Stefan Metzmacher <metze@samba.org> | 2014-09-25 01:46:15 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2014-09-30 23:35:08 +0200 |
commit | ca1081ef5e81247b0252726511db6f24e01b4d58 (patch) | |
tree | 187f9c99c9fc8c420e44c12e98eaf23cb9b792ab /libcli/smb | |
parent | aa4310b0af1f7ee2acfbcef47030d743ac41ffa0 (diff) | |
download | samba-ca1081ef5e81247b0252726511db6f24e01b4d58.tar.gz |
libcli/smb: add smbXcli_session_is_authenticated()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'libcli/smb')
-rw-r--r-- | libcli/smb/smbXcli_base.c | 24 | ||||
-rw-r--r-- | libcli/smb/smbXcli_base.h | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c index 113699c6b71..a7cc061b2f5 100644 --- a/libcli/smb/smbXcli_base.c +++ b/libcli/smb/smbXcli_base.c @@ -4641,6 +4641,30 @@ struct smbXcli_session *smbXcli_session_copy(TALLOC_CTX *mem_ctx, return session; } +bool smbXcli_session_is_authenticated(struct smbXcli_session *session) +{ + const DATA_BLOB *application_key; + + if (session->conn == NULL) { + return false; + } + + /* + * If we have an application key we had a session key negotiated + * at auth time. + */ + if (session->conn->protocol >= PROTOCOL_SMB2_02) { + application_key = &session->smb2->application_key; + } else { + application_key = &session->smb1.application_key; + } + + if (application_key->length == 0) { + return false; + } + + return true; +} NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session, TALLOC_CTX *mem_ctx, diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h index e0c90b59d4f..25183a26ac7 100644 --- a/libcli/smb/smbXcli_base.h +++ b/libcli/smb/smbXcli_base.h @@ -363,6 +363,7 @@ struct smbXcli_session *smbXcli_session_create(TALLOC_CTX *mem_ctx, struct smbXcli_conn *conn); struct smbXcli_session *smbXcli_session_copy(TALLOC_CTX *mem_ctx, struct smbXcli_session *src); +bool smbXcli_session_is_authenticated(struct smbXcli_session *session); NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session, TALLOC_CTX *mem_ctx, DATA_BLOB *key); |