diff options
Diffstat (limited to 'source3/libsmb/clientgen.c')
-rw-r--r-- | source3/libsmb/clientgen.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c index 67e8e06d1a..0ee361f862 100644 --- a/source3/libsmb/clientgen.c +++ b/source3/libsmb/clientgen.c @@ -184,7 +184,6 @@ struct cli_state *cli_initialise_ex(int signing_state) } cli->fd = -1; cli->raw_status = NT_STATUS_INTERNAL_ERROR; - cli->cnum = -1; cli->vuid = UID_FIELD_INVALID; cli->protocol = PROTOCOL_NT1; cli->timeout = 20000; /* Timeout is in milliseconds. */ @@ -241,6 +240,7 @@ struct cli_state *cli_initialise_ex(int signing_state) cli->smb1.mid = 1; cli->smb1.pid = (uint16_t)sys_getpid(); cli->smb1.vc_num = cli->smb1.pid; + cli->smb1.tid = UINT16_MAX; return cli; @@ -287,7 +287,7 @@ static void _cli_shutdown(struct cli_state *cli) * later. This tree disconnect forces the peer to clean up, since the * connection will be going away. */ - if (cli->cnum != (uint16)-1) { + if (cli_state_has_tcon(cli)) { cli_tdis(cli); } @@ -364,6 +364,27 @@ uint16_t cli_getpid(struct cli_state *cli) return cli->smb1.pid; } +bool cli_state_has_tcon(struct cli_state *cli) +{ + if (cli->smb1.tid == UINT16_MAX) { + return false; + } + + return true; +} + +uint16_t cli_state_get_tid(struct cli_state *cli) +{ + return cli->smb1.tid; +} + +uint16_t cli_state_set_tid(struct cli_state *cli, uint16_t tid) +{ + uint16_t ret = cli->smb1.tid; + cli->smb1.tid = tid; + return ret; +} + /**************************************************************************** Set the case sensitivity flag on the packets. Returns old state. ****************************************************************************/ |