diff options
Diffstat (limited to 'source4/libcli/cliconnect.c')
-rw-r--r-- | source4/libcli/cliconnect.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/source4/libcli/cliconnect.c b/source4/libcli/cliconnect.c index a8e86a0488..45d8d2a776 100644 --- a/source4/libcli/cliconnect.c +++ b/source4/libcli/cliconnect.c @@ -39,9 +39,10 @@ bool smbcli_socket_connect(struct smbcli_state *cli, const char *server, struct nbt_name *calling, struct nbt_name *called) { - struct smbcli_socket *sock = NULL; NTSTATUS status; + cli->options = *options; + status = smbcli_sock_connect(cli, NULL, /* host_addr */ ports, @@ -51,22 +52,30 @@ bool smbcli_socket_connect(struct smbcli_state *cli, const char *server, socket_options, calling, called, - &sock); + &cli->sock); if (!NT_STATUS_IS_OK(status)) { return false; } - cli->transport = smbcli_transport_init(sock, cli, true, options); - if (!cli->transport) { - return false; - } - return true; } /* wrapper around smb_raw_negotiate() */ NTSTATUS smbcli_negprot(struct smbcli_state *cli, bool unicode, int maxprotocol) { + if (unicode) { + cli->options.unicode = 1; + } else { + cli->options.unicode = 0; + } + + cli->transport = smbcli_transport_init(cli->sock, cli, + true, &cli->options); + cli->sock = NULL; + if (!cli->transport) { + return NT_STATUS_NO_MEMORY; + } + return smb_raw_negotiate(cli->transport, unicode, maxprotocol); } |