The branch, master has been updated
       via  1bb46da s3:smb3: rename smbd_smb2_first_negprot and pass expected 
seq_low
       via  c0aa94e s3:smbd: add expected_seq_low arg to smbd_initialize_smb2
      from  8de1ed6 s4: fix linking smbtorture on Solaris.

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1bb46dae829d9cd74534669371246ada86b5841a
Author: Ralph Boehme <[email protected]>
Date:   Sun Sep 27 02:01:47 2015 +0200

    s3:smb3: rename smbd_smb2_first_negprot and pass expected seq_low
    
    This is in preperation of connection passing where we have to set
    seq_low to the mid from the negprot we've handed over.
    
    Pair-Programmed-With: Stefan Metzmacher <[email protected]>
    
    Signed-off-by: Ralph Boehme <[email protected]>
    Signed-off-by: Stefan Metzmacher <[email protected]>
    Reviewed-by: Michael Adam <[email protected]>
    
    Autobuild-User(master): Michael Adam <[email protected]>
    Autobuild-Date(master): Wed Oct  7 00:54:34 CEST 2015 on sn-devel-104

commit c0aa94ece086cb32df1819ef455343e9acb3832b
Author: Ralph Boehme <[email protected]>
Date:   Sun Sep 27 01:58:46 2015 +0200

    s3:smbd: add expected_seq_low arg to smbd_initialize_smb2
    
    This is in preparation of connection passing for multichannel where we
    have to set seq_low to the mid of the passed negprot.
    
    Pair-Programmed-With: Stefan Metzmacher <[email protected]>
    
    Signed-off-by: Ralph Boehme <[email protected]>
    Signed-off-by: Stefan Metzmacher <[email protected]>
    Reviewed-by: Michael Adam <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/globals.h      |  5 +++--
 source3/smbd/process.c      |  2 +-
 source3/smbd/smb2_negprot.c |  2 +-
 source3/smbd/smb2_server.c  | 12 +++++++-----
 4 files changed, 12 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index b107049..b567a58 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -226,8 +226,9 @@ NTSTATUS smbd_add_connection(struct smbXsrv_client *client, 
int sock_fd,
 
 void reply_smb2002(struct smb_request *req, uint16_t choice);
 void reply_smb20ff(struct smb_request *req, uint16_t choice);
-void smbd_smb2_first_negprot(struct smbXsrv_connection *xconn,
-                            const uint8_t *inpdu, size_t size);
+void smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
+                              uint64_t expected_seq_low,
+                              const uint8_t *inpdu, size_t size);
 
 DATA_BLOB smbd_smb2_generate_outbody(struct smbd_smb2_request *req, size_t 
size);
 
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 74d34ef..8d9275c 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1893,7 +1893,7 @@ static void process_smb(struct smbXsrv_connection *xconn,
                if (smbd_is_smb2_header(inbuf, nread)) {
                        const uint8_t *inpdu = inbuf + NBT_HDR_SIZE;
                        size_t pdulen = nread - NBT_HDR_SIZE;
-                       smbd_smb2_first_negprot(xconn, inpdu, pdulen);
+                       smbd_smb2_process_negprot(xconn, 0, inpdu, pdulen);
                        return;
                } else if (nread >= smb_size && valid_smb_header(inbuf)
                                && CVAL(inbuf, smb_com) != 0x72) {
diff --git a/source3/smbd/smb2_negprot.c b/source3/smbd/smb2_negprot.c
index 18382a9..c04fbca 100644
--- a/source3/smbd/smb2_negprot.c
+++ b/source3/smbd/smb2_negprot.c
@@ -60,7 +60,7 @@ static void reply_smb20xx(struct smb_request *req, uint16_t 
dialect)
 
        req->outbuf = NULL;
 
-       smbd_smb2_first_negprot(req->xconn, smb2_inpdu, len);
+       smbd_smb2_process_negprot(req->xconn, 0, smb2_inpdu, len);
        return;
 }
 
diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c
index a53ddf8..7120ce5 100644
--- a/source3/smbd/smb2_server.c
+++ b/source3/smbd/smb2_server.c
@@ -200,11 +200,12 @@ bool smbd_is_smb2_header(const uint8_t *inbuf, size_t 
size)
        return true;
 }
 
-static NTSTATUS smbd_initialize_smb2(struct smbXsrv_connection *xconn)
+static NTSTATUS smbd_initialize_smb2(struct smbXsrv_connection *xconn,
+                                    uint64_t expected_seq_low)
 {
        TALLOC_FREE(xconn->transport.fde);
 
-       xconn->smb2.credits.seq_low = 0;
+       xconn->smb2.credits.seq_low = expected_seq_low;
        xconn->smb2.credits.seq_range = 1;
        xconn->smb2.credits.granted = 1;
        xconn->smb2.credits.max = lp_smb2_max_credits();
@@ -3149,8 +3150,9 @@ static NTSTATUS smbd_smb2_request_next_incoming(struct 
smbXsrv_connection *xconn
        return NT_STATUS_OK;
 }
 
-void smbd_smb2_first_negprot(struct smbXsrv_connection *xconn,
-                            const uint8_t *inpdu, size_t size)
+void smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
+                              uint64_t expected_seq_low,
+                              const uint8_t *inpdu, size_t size)
 {
        struct smbd_server_connection *sconn = xconn->client->sconn;
        NTSTATUS status;
@@ -3159,7 +3161,7 @@ void smbd_smb2_first_negprot(struct smbXsrv_connection 
*xconn,
        DEBUG(10,("smbd_smb2_first_negprot: packet length %u\n",
                 (unsigned int)size));
 
-       status = smbd_initialize_smb2(xconn);
+       status = smbd_initialize_smb2(xconn, 0);
        if (!NT_STATUS_IS_OK(status)) {
                smbd_server_connection_terminate(xconn, nt_errstr(status));
                return;


-- 
Samba Shared Repository

Reply via email to