]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4/libcli: Initialize client PID for SMB2 connections
authorSteven Danneman <steven.danneman@isilon.com>
Thu, 19 Nov 2009 00:35:16 +0000 (16:35 -0800)
committerSteven Danneman <steven.danneman@isilon.com>
Wed, 25 Nov 2009 20:55:47 +0000 (12:55 -0800)
Set the SMB pid to the Unix pid of the client process.

source4/libcli/smb2/request.c
source4/libcli/smb2/session.c
source4/libcli/smb2/smb2.h

index 5d09a5083a4ebbf2ff044f0c3ea4244aa1216e7f..358d13363f0248113ba6cb01787c234722fd13fc 100644 (file)
@@ -175,6 +175,7 @@ struct smb2_request *smb2_request_init_tree(struct smb2_tree *tree, uint16_t opc
        if (req == NULL) return NULL;
 
        SBVAL(req->out.hdr,  SMB2_HDR_SESSION_ID, tree->session->uid);
+       SIVAL(req->out.hdr,  SMB2_HDR_PID, tree->session->pid);
        SIVAL(req->out.hdr,  SMB2_HDR_TID, tree->tid);
        req->session = tree->session;
        req->tree = tree;
index 9db32c4dfc506d0bfc64991bb3290ebe19708718..12479623e7819555c7a959a5fa98feff85dd0826 100644 (file)
@@ -26,6 +26,8 @@
 #include "libcli/composite/composite.h"
 #include "auth/gensec/gensec.h"
 
+#include <unistd.h>
+
 /**
   initialise a smb2_session structure
  */
@@ -46,6 +48,8 @@ struct smb2_session *smb2_session_init(struct smb2_transport *transport,
                session->transport = talloc_reference(session, transport);
        }
 
+       session->pid = getpid();
+
        /* prepare a gensec context for later use */
        status = gensec_client_start(session, &session->gensec, 
                                     session->transport->socket->event.ctx, 
index fdd2d6f6fc20d44f3e7952069a009c09580ea432..ba626fbe06eecb3771028a92edd2965b3c6ee6e6 100644 (file)
@@ -145,6 +145,7 @@ struct smb2_session {
        struct smb2_transport *transport;
        struct gensec_security *gensec;
        uint64_t uid;
+       uint32_t pid;
        DATA_BLOB session_key;
        bool signing_active;
 };