s3:libsmb: add cli->smb1.vc_num and hide it behind cli_state_get_vc_num()
authorStefan Metzmacher <metze@samba.org>
Tue, 19 Jul 2011 10:52:10 +0000 (12:52 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 20 Jul 2011 13:54:31 +0000 (15:54 +0200)
This makes it clearer, why we send the pid value in the session setup.

metze

source3/include/client.h
source3/libsmb/cliconnect.c
source3/libsmb/clientgen.c
source3/libsmb/proto.h

index 849a7c08b49fe2c815d6f23eea4ec7834aea3d33..3c99716e625d980faf2f0b4355de96d8820a15de 100644 (file)
@@ -134,6 +134,7 @@ struct cli_state {
 
        struct {
                uint16_t mid;
+               uint16_t vc_num;
        } smb1;
 
        struct {
index 33e4217d6c1ecd795c08977c128eb653d8059557..03251f965bd52f742aab9ddd6efe83bd7213cb49 100644 (file)
@@ -418,7 +418,7 @@ struct tevent_req *cli_session_setup_guest_create(TALLOC_CTX *mem_ctx,
        SSVAL(vwv+1, 0, 0);
        SSVAL(vwv+2, 0, CLI_BUFFER_SIZE);
        SSVAL(vwv+3, 0, 2);
-       SSVAL(vwv+4, 0, cli->pid);
+       SSVAL(vwv+4, 0, cli_state_get_vc_num(cli));
        SIVAL(vwv+5, 0, cli->sesskey);
        SSVAL(vwv+7, 0, 0);
        SSVAL(vwv+8, 0, 0);
@@ -637,7 +637,7 @@ static struct tevent_req *cli_session_setup_plain_send(
        SSVAL(vwv+1, 0, 0);
        SSVAL(vwv+2, 0, CLI_BUFFER_SIZE);
        SSVAL(vwv+3, 0, 2);
-       SSVAL(vwv+4, 0, cli->pid);
+       SSVAL(vwv+4, 0, cli_state_get_vc_num(cli));
        SIVAL(vwv+5, 0, cli->sesskey);
        SSVAL(vwv+7, 0, 0);
        SSVAL(vwv+8, 0, 0);
@@ -985,7 +985,7 @@ static struct tevent_req *cli_session_setup_nt1_send(
        SSVAL(vwv+1, 0, 0);
        SSVAL(vwv+2, 0, CLI_BUFFER_SIZE);
        SSVAL(vwv+3, 0, 2);
-       SSVAL(vwv+4, 0, cli->pid);
+       SSVAL(vwv+4, 0, cli_state_get_vc_num(cli));
        SIVAL(vwv+5, 0, cli->sesskey);
        SSVAL(vwv+7, 0, lm_response.length);
        SSVAL(vwv+8, 0, nt_response.length);
index ddad96c826c7f4709c0756c3a6f5e719bec2b63a..aac38df360581cbe94c84a4c01f329f435dd5d11 100644 (file)
@@ -240,6 +240,7 @@ struct cli_state *cli_initialise_ex(int signing_state)
        cli->initialised = 1;
 
        cli->smb1.mid = 1;
+       cli->smb1.vc_num = cli->pid;
 
        return cli;
 
@@ -342,6 +343,11 @@ void cli_sockopt(struct cli_state *cli, const char *options)
        set_socket_options(cli->fd, options);
 }
 
+uint16_t cli_state_get_vc_num(struct cli_state *cli)
+{
+       return cli->smb1.vc_num;
+}
+
 /****************************************************************************
  Set the PID to use for smb messages. Return the old pid.
 ****************************************************************************/
index 070b4b1af1ab319a9d034ac54a83920520c7dd72..7ba2aaccadc365645afb5f59fe6af752cf4be8d9 100644 (file)
@@ -164,6 +164,7 @@ struct cli_state *cli_initialise_ex(int signing_state);
 void cli_nt_pipes_close(struct cli_state *cli);
 void cli_shutdown(struct cli_state *cli);
 void cli_sockopt(struct cli_state *cli, const char *options);
+uint16_t cli_state_get_vc_num(struct cli_state *cli);
 uint16 cli_setpid(struct cli_state *cli, uint16 pid);
 bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive);
 struct tevent_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,