From 25447a528a1f5c37e0e62bbc990b87c868de784a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 21 Jul 2011 09:20:43 +0200 Subject: s3:libsmb: move cli->vuid to cli->smb1.uid and hide it behind cli_state_[g|s]et_uid() metze --- source3/libsmb/cliconnect.c | 16 ++++++++-------- source3/libsmb/clientgen.c | 16 ++++++++++++++-- source3/libsmb/proto.h | 2 ++ 3 files changed, 24 insertions(+), 10 deletions(-) (limited to 'source3/libsmb') diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 4e3e47f512..9b9d751284 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -274,7 +274,7 @@ static void cli_session_setup_lanman2_done(struct tevent_req *subreq) inbuf = (char *)in; p = bytes; - cli->vuid = SVAL(inbuf, smb_uid); + cli_state_set_uid(state->cli, SVAL(inbuf, smb_uid)); cli->is_guestlogin = ((SVAL(vwv+2, 0) & 1) != 0); status = smb_bytes_talloc_string(cli, @@ -502,7 +502,7 @@ static void cli_session_setup_guest_done(struct tevent_req *subreq) inbuf = (char *)in; p = bytes; - cli->vuid = SVAL(inbuf, smb_uid); + cli_state_set_uid(state->cli, SVAL(inbuf, smb_uid)); cli->is_guestlogin = ((SVAL(vwv+2, 0) & 1) != 0); status = smb_bytes_talloc_string(cli, @@ -709,7 +709,7 @@ static void cli_session_setup_plain_done(struct tevent_req *subreq) inbuf = (char *)in; p = bytes; - cli->vuid = SVAL(inbuf, smb_uid); + cli_state_set_uid(state->cli, SVAL(inbuf, smb_uid)); cli->is_guestlogin = ((SVAL(vwv+2, 0) & 1) != 0); status = smb_bytes_talloc_string(cli, @@ -1066,7 +1066,7 @@ static void cli_session_setup_nt1_done(struct tevent_req *subreq) inbuf = (char *)in; p = bytes; - cli->vuid = SVAL(inbuf, smb_uid); + cli_state_set_uid(state->cli, SVAL(inbuf, smb_uid)); cli->is_guestlogin = ((SVAL(vwv+2, 0) & 1) != 0); status = smb_bytes_talloc_string(cli, @@ -1305,7 +1305,7 @@ static void cli_sesssetup_blob_done(struct tevent_req *subreq) TALLOC_FREE(state->buf); state->inbuf = (char *)inbuf; - cli->vuid = SVAL(state->inbuf, smb_uid); + cli_state_set_uid(state->cli, SVAL(inbuf, smb_uid)); cli->is_guestlogin = ((SVAL(vwv+2, 0) & 1) != 0); blob_length = SVAL(vwv+3, 0); @@ -1385,7 +1385,7 @@ static NTSTATUS cli_sesssetup_blob_recv(struct tevent_req *req, char *inbuf; if (tevent_req_is_nterror(req, &status)) { - state->cli->vuid = 0; + cli_state_set_uid(state->cli, UID_FIELD_INVALID); return status; } @@ -1743,7 +1743,7 @@ static NTSTATUS cli_session_setup_ntlmssp_recv(struct tevent_req *req) NTSTATUS status; if (tevent_req_is_nterror(req, &status)) { - state->cli->vuid = 0; + cli_state_set_uid(state->cli, UID_FIELD_INVALID); return status; } return NT_STATUS_OK; @@ -2126,7 +2126,7 @@ static void cli_ulogoff_done(struct tevent_req *subreq) tevent_req_nterror(req, status); return; } - state->cli->vuid = -1; + cli_state_set_uid(state->cli, UID_FIELD_INVALID); tevent_req_done(req); } diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c index ab0079650a..be27f1e093 100644 --- a/source3/libsmb/clientgen.c +++ b/source3/libsmb/clientgen.c @@ -70,7 +70,7 @@ void cli_setup_packet_buf(struct cli_state *cli, char *buf) SIVAL(buf,smb_rcls,0); SSVAL(buf,smb_pid,cli->smb1.pid); memset(buf+smb_pidhigh, 0, 12); - SSVAL(buf,smb_uid,cli->vuid); + SSVAL(buf,smb_uid, cli_state_get_uid(cli)); SSVAL(buf,smb_mid,cli->smb1.mid); if (cli->protocol <= PROTOCOL_CORE) { @@ -184,7 +184,6 @@ struct cli_state *cli_initialise_ex(int signing_state) } cli->fd = -1; cli->raw_status = NT_STATUS_INTERNAL_ERROR; - cli->vuid = UID_FIELD_INVALID; cli->protocol = PROTOCOL_NT1; cli->timeout = 20000; /* Timeout is in milliseconds. */ cli->max_xmit = CLI_BUFFER_SIZE+4; @@ -241,6 +240,7 @@ struct cli_state *cli_initialise_ex(int signing_state) cli->smb1.pid = (uint16_t)sys_getpid(); cli->smb1.vc_num = cli->smb1.pid; cli->smb1.tid = UINT16_MAX; + cli->smb1.uid = UID_FIELD_INVALID; return cli; @@ -391,6 +391,18 @@ uint16_t cli_state_set_tid(struct cli_state *cli, uint16_t tid) return ret; } +uint16_t cli_state_get_uid(struct cli_state *cli) +{ + return cli->smb1.uid; +} + +uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid) +{ + uint16_t ret = cli->smb1.uid; + cli->smb1.uid = uid; + return ret; +} + /**************************************************************************** Set the case sensitivity flag on the packets. Returns old state. ****************************************************************************/ diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index 98aabee0a7..d7a5612733 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -171,6 +171,8 @@ uint16_t cli_getpid(struct cli_state *cli); bool cli_state_has_tcon(struct cli_state *cli); uint16_t cli_state_get_tid(struct cli_state *cli); uint16_t cli_state_set_tid(struct cli_state *cli, uint16_t tid); +uint16_t cli_state_get_uid(struct cli_state *cli); +uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid); 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, struct cli_state *cli, uint16_t num_echos, -- cgit