From: Stefan Metzmacher Date: Mon, 18 Apr 2016 15:38:46 +0000 (+0200) Subject: libcli/smb: add smbXcli_session_is_guest() helper function X-Git-Tag: samba-4.2.12~21 X-Git-Url: http://git.samba.org/?p=samba.git;a=commitdiff_plain;h=5c18afaf9ab97ba1649442753f99b03355e9aedd libcli/smb: add smbXcli_session_is_guest() helper function BUG: https://bugzilla.samba.org/show_bug.cgi?id=11841 Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider Reviewed-by: Günther Deschner (cherry picked from commit 8f4a4bec089b46bbeb0e0f37bb682acb88702bf2) --- diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c index c55875b16bb..b07fdad6136 100644 --- a/libcli/smb/smbXcli_base.c +++ b/libcli/smb/smbXcli_base.c @@ -4942,6 +4942,30 @@ struct smbXcli_session *smbXcli_session_copy(TALLOC_CTX *mem_ctx, return session; } +bool smbXcli_session_is_guest(struct smbXcli_session *session) +{ + if (session == NULL) { + return false; + } + + if (session->conn == NULL) { + return false; + } + + if (session->conn->protocol >= PROTOCOL_SMB2_02) { + if (session->smb2->session_flags & SMB2_SESSION_FLAG_IS_GUEST) { + return true; + } + return false; + } + + if (session->smb1.action & SMB_SETUP_GUEST) { + return true; + } + + return false; +} + bool smbXcli_session_is_authenticated(struct smbXcli_session *session) { const DATA_BLOB *application_key; diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h index 29edd092286..50466b1e2fa 100644 --- a/libcli/smb/smbXcli_base.h +++ b/libcli/smb/smbXcli_base.h @@ -371,6 +371,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_guest(struct smbXcli_session *session); bool smbXcli_session_is_authenticated(struct smbXcli_session *session); NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session, TALLOC_CTX *mem_ctx,