libcli/smb: add smbXcli_session_is_guest() helper function
authorStefan Metzmacher <metze@samba.org>
Mon, 18 Apr 2016 15:38:46 +0000 (17:38 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 29 Apr 2016 07:39:28 +0000 (09:39 +0200)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11841

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
(cherry picked from commit 8f4a4bec089b46bbeb0e0f37bb682acb88702bf2)

libcli/smb/smbXcli_base.c
libcli/smb/smbXcli_base.h

index 52145abb7c826f221436ad66ba6bd32263c85d22..faf74cabe858e6da7de134a634b81cead009a82a 100644 (file)
@@ -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;
index 6b6d72d656ca34991df4eaab67c5241a32e53a7f..8b9851b1352fc6a3d7379004faeba3e1c2ce5887 100644 (file)
@@ -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,