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: talloc-2.1.7~85 X-Git-Url: http://git.samba.org/samba.git/?a=commitdiff_plain;h=8f4a4bec089b46bbeb0e0f37bb682acb88702bf2;p=kai%2Fsamba-autobuild%2F.git 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 --- diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c index d8b85c86b7a..43323743cc5 100644 --- a/libcli/smb/smbXcli_base.c +++ b/libcli/smb/smbXcli_base.c @@ -5302,6 +5302,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 8eb482afaee..16c8848dd12 100644 --- a/libcli/smb/smbXcli_base.h +++ b/libcli/smb/smbXcli_base.h @@ -390,6 +390,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,