diff options
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/cliconnect.c | 11 | ||||
-rw-r--r-- | source3/libsmb/clidfs.c | 4 | ||||
-rw-r--r-- | source3/libsmb/libsmb_server.c | 2 | ||||
-rw-r--r-- | source3/libsmb/passchange.c | 4 | ||||
-rw-r--r-- | source3/libsmb/proto.h | 5 |
5 files changed, 12 insertions, 14 deletions
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 6fa724f7b7..23518ea1b8 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -2545,7 +2545,8 @@ static void cli_negprot_done(struct tevent_req *subreq); struct tevent_req *cli_negprot_send(TALLOC_CTX *mem_ctx, struct event_context *ev, - struct cli_state *cli) + struct cli_state *cli, + enum protocol_types max_protocol) { struct tevent_req *req, *subreq; struct cli_negprot_state *state; @@ -2558,7 +2559,7 @@ struct tevent_req *cli_negprot_send(TALLOC_CTX *mem_ctx, return NULL; } state->cli = cli; - state->max_protocol = cli->protocol; + state->max_protocol = max_protocol; /* setup the protocol strings */ for (numprots=0; numprots < ARRAY_SIZE(prots); numprots++) { @@ -2765,7 +2766,7 @@ NTSTATUS cli_negprot_recv(struct tevent_req *req) return tevent_req_simple_recv_ntstatus(req); } -NTSTATUS cli_negprot(struct cli_state *cli) +NTSTATUS cli_negprot(struct cli_state *cli, enum protocol_types max_protocol) { TALLOC_CTX *frame = talloc_stackframe(); struct event_context *ev; @@ -2786,7 +2787,7 @@ NTSTATUS cli_negprot(struct cli_state *cli) goto fail; } - req = cli_negprot_send(frame, ev, cli); + req = cli_negprot_send(frame, ev, cli, max_protocol); if (req == NULL) { status = NT_STATUS_NO_MEMORY; goto fail; @@ -2942,7 +2943,7 @@ NTSTATUS cli_start_connection(struct cli_state **output_cli, return nt_status; } - nt_status = cli_negprot(cli); + nt_status = cli_negprot(cli, PROTOCOL_NT1); if (!NT_STATUS_IS_OK(nt_status)) { DEBUG(1, ("failed negprot: %s\n", nt_errstr(nt_status))); cli_shutdown(cli); diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c index 68a6724d24..b066b8bd12 100644 --- a/source3/libsmb/clidfs.c +++ b/source3/libsmb/clidfs.c @@ -144,11 +144,9 @@ static NTSTATUS do_connect(TALLOC_CTX *ctx, if (max_protocol == 0) { max_protocol = PROTOCOL_NT1; } - c->protocol = max_protocol; - DEBUG(4,(" session request ok\n")); - status = cli_negprot(c); + status = cli_negprot(c, max_protocol); if (!NT_STATUS_IS_OK(status)) { d_printf("protocol negotiation failed: %s\n", diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c index 005f2cdf8e..0af9798d2b 100644 --- a/source3/libsmb/libsmb_server.c +++ b/source3/libsmb/libsmb_server.c @@ -439,7 +439,7 @@ SMBC_server_internal(TALLOC_CTX *ctx, cli_set_timeout(c, smbc_getTimeout(context)); - status = cli_negprot(c); + status = cli_negprot(c, PROTOCOL_NT1); if (!NT_STATUS_IS_OK(status)) { cli_shutdown(c); diff --git a/source3/libsmb/passchange.c b/source3/libsmb/passchange.c index e5c336f882..58997e4c82 100644 --- a/source3/libsmb/passchange.c +++ b/source3/libsmb/passchange.c @@ -66,9 +66,7 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam return result; } - cli->protocol = PROTOCOL_NT1; - - result = cli_negprot(cli); + result = cli_negprot(cli, PROTOCOL_NT1); if (!NT_STATUS_IS_OK(result)) { if (asprintf(err_str, "machine %s rejected the negotiate " diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index 4992d95c96..88035ffa6b 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -67,10 +67,11 @@ struct tevent_req *cli_tdis_send(TALLOC_CTX *mem_ctx, struct cli_state *cli); NTSTATUS cli_tdis_recv(struct tevent_req *req); NTSTATUS cli_tdis(struct cli_state *cli); -NTSTATUS cli_negprot(struct cli_state *cli); +NTSTATUS cli_negprot(struct cli_state *cli, enum protocol_types max_protocol); struct tevent_req *cli_negprot_send(TALLOC_CTX *mem_ctx, struct event_context *ev, - struct cli_state *cli); + struct cli_state *cli, + enum protocol_types max_protocol); NTSTATUS cli_negprot_recv(struct tevent_req *req); NTSTATUS cli_connect_nb(const char *host, const struct sockaddr_storage *dest_ss, uint16_t port, int name_type, const char *myname, |