libcli/smb: add smbXcli_session_is_authenticated()
authorStefan Metzmacher <metze@samba.org>
Wed, 24 Sep 2014 23:46:15 +0000 (01:46 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 30 Sep 2014 21:35:08 +0000 (23:35 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
libcli/smb/smbXcli_base.c
libcli/smb/smbXcli_base.h

index 113699c6b718ba9aa40b2ea824aeb60e3b1d0de1..a7cc061b2f53a8145e5db48dbc86302d5d203446 100644 (file)
@@ -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,
index e0c90b59d4fe0019168188b3fe6444f783ed7030..25183a26ac7d4aa84351c6d5e6118a6d96d420df 100644 (file)
@@ -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);