diff options
author | Joseph Sutton <josephsutton@catalyst.net.nz> | 2022-12-22 17:48:26 +1300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2023-02-08 00:03:39 +0000 |
commit | 8aef16bbbc1e55f0a9f5a8ec87e5348688d93785 (patch) | |
tree | d070bf723433e371b91fb4d30e39fd2fabac46cd | |
parent | 5043bbed9993cc08ee752a3fe44f835aedbbc129 (diff) | |
download | samba-8aef16bbbc1e55f0a9f5a8ec87e5348688d93785.tar.gz |
named_pipe_auth: Bump info5 to info6
In the next commit, we shall replace the 'authenticated' field of
named_pipe_auth_req_info.info5.session_info.session_info.info with a
more general 'user_flags' field.
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r-- | libcli/named_pipe_auth/npa_tstream.c | 114 | ||||
-rw-r--r-- | libcli/named_pipe_auth/npa_tstream.h | 4 | ||||
-rw-r--r-- | librpc/idl/named_pipe_auth.idl | 8 | ||||
-rw-r--r-- | source3/librpc/idl/rpc_host.idl | 2 | ||||
-rw-r--r-- | source3/rpc_client/local_np.c | 44 | ||||
-rw-r--r-- | source3/rpc_server/rpc_host.c | 66 | ||||
-rw-r--r-- | source3/rpc_server/rpc_worker.c | 50 |
7 files changed, 144 insertions, 144 deletions
diff --git a/libcli/named_pipe_auth/npa_tstream.c b/libcli/named_pipe_auth/npa_tstream.c index 506c4a35681..6f4ab45887b 100644 --- a/libcli/named_pipe_auth/npa_tstream.c +++ b/libcli/named_pipe_auth/npa_tstream.c @@ -73,7 +73,7 @@ struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx, int ret; enum ndr_err_code ndr_err; char *lower_case_npipe; - struct named_pipe_auth_req_info5 *info5; + struct named_pipe_auth_req_info6 *info6; req = tevent_req_create(mem_ctx, &state, struct tstream_npa_connect_state); @@ -119,39 +119,39 @@ struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx, goto post; } - state->auth_req.level = 5; - info5 = &state->auth_req.info.info5; + state->auth_req.level = 6; + info6 = &state->auth_req.info.info6; - info5->transport = transport; - SMB_ASSERT(info5->transport == transport); /* Assert no overflow */ + info6->transport = transport; + SMB_ASSERT(info6->transport == transport); /* Assert no overflow */ - info5->remote_client_name = remote_client_name_in; - info5->remote_client_addr = tsocket_address_inet_addr_string(remote_client_addr, + info6->remote_client_name = remote_client_name_in; + info6->remote_client_addr = tsocket_address_inet_addr_string(remote_client_addr, state); - if (!info5->remote_client_addr) { + if (!info6->remote_client_addr) { /* errno might be EINVAL */ tevent_req_error(req, errno); goto post; } - info5->remote_client_port = tsocket_address_inet_port(remote_client_addr); - if (!info5->remote_client_name) { - info5->remote_client_name = info5->remote_client_addr; + info6->remote_client_port = tsocket_address_inet_port(remote_client_addr); + if (!info6->remote_client_name) { + info6->remote_client_name = info6->remote_client_addr; } - info5->local_server_name = local_server_name_in; - info5->local_server_addr = tsocket_address_inet_addr_string(local_server_addr, + info6->local_server_name = local_server_name_in; + info6->local_server_addr = tsocket_address_inet_addr_string(local_server_addr, state); - if (!info5->local_server_addr) { + if (!info6->local_server_addr) { /* errno might be EINVAL */ tevent_req_error(req, errno); goto post; } - info5->local_server_port = tsocket_address_inet_port(local_server_addr); - if (!info5->local_server_name) { - info5->local_server_name = info5->local_server_addr; + info6->local_server_port = tsocket_address_inet_port(local_server_addr); + if (!info6->local_server_name) { + info6->local_server_name = info6->local_server_addr; } - info5->session_info = discard_const_p(struct auth_session_info_transport, session_info); + info6->session_info = discard_const_p(struct auth_session_info_transport, session_info); if (DEBUGLVL(10)) { NDR_PRINT_DEBUG(named_pipe_auth_req, &state->auth_req); @@ -348,10 +348,10 @@ int _tstream_npa_connect_recv(struct tevent_req *req, npas->unix_stream = talloc_move(stream, &state->unix_stream); switch (state->auth_rep.level) { - case 5: - npas->file_type = state->auth_rep.info.info5.file_type; - device_state = state->auth_rep.info.info5.device_state; - allocation_size = state->auth_rep.info.info5.allocation_size; + case 6: + npas->file_type = state->auth_rep.info.info6.file_type; + device_state = state->auth_rep.info.info6.device_state; + allocation_size = state->auth_rep.info.info6.allocation_size; break; } @@ -1084,7 +1084,7 @@ static void tstream_npa_accept_existing_reply(struct tevent_req *subreq) tevent_req_data(req, struct tstream_npa_accept_state); struct named_pipe_auth_req *pipe_request; struct named_pipe_auth_rep pipe_reply; - struct named_pipe_auth_req_info5 i5; + struct named_pipe_auth_req_info6 i6; enum ndr_err_code ndr_err; DATA_BLOB in, out; int err; @@ -1147,52 +1147,52 @@ static void tstream_npa_accept_existing_reply(struct tevent_req *subreq) NDR_PRINT_DEBUG(named_pipe_auth_req, pipe_request); } - ZERO_STRUCT(i5); + ZERO_STRUCT(i6); - if (pipe_request->level != 5) { + if (pipe_request->level != 6) { DEBUG(0, ("Unknown level %u\n", pipe_request->level)); pipe_reply.level = 0; pipe_reply.status = NT_STATUS_INVALID_LEVEL; goto reply; } - pipe_reply.level = 5; + pipe_reply.level = 6; pipe_reply.status = NT_STATUS_OK; - pipe_reply.info.info5.file_type = state->file_type; - pipe_reply.info.info5.device_state = state->device_state; - pipe_reply.info.info5.allocation_size = state->alloc_size; + pipe_reply.info.info6.file_type = state->file_type; + pipe_reply.info.info6.device_state = state->device_state; + pipe_reply.info.info6.allocation_size = state->alloc_size; - i5 = pipe_request->info.info5; - if (i5.local_server_addr == NULL) { + i6 = pipe_request->info.info6; + if (i6.local_server_addr == NULL) { pipe_reply.status = NT_STATUS_INVALID_ADDRESS; DEBUG(2, ("Missing local server address\n")); goto reply; } - if (i5.remote_client_addr == NULL) { + if (i6.remote_client_addr == NULL) { pipe_reply.status = NT_STATUS_INVALID_ADDRESS; DEBUG(2, ("Missing remote client address\n")); goto reply; } ret = tsocket_address_inet_from_strings(state, "ip", - i5.local_server_addr, - i5.local_server_port, + i6.local_server_addr, + i6.local_server_port, &state->local_server_addr); if (ret != 0) { DEBUG(2, ("Invalid local server address[%s:%u] - %s\n", - i5.local_server_addr, i5.local_server_port, + i6.local_server_addr, i6.local_server_port, strerror(errno))); pipe_reply.status = NT_STATUS_INVALID_ADDRESS; goto reply; } ret = tsocket_address_inet_from_strings(state, "ip", - i5.remote_client_addr, - i5.remote_client_port, + i6.remote_client_addr, + i6.remote_client_port, &state->remote_client_addr); if (ret != 0) { DEBUG(2, ("Invalid remote client address[%s:%u] - %s\n", - i5.remote_client_addr, i5.remote_client_port, + i6.remote_client_addr, i6.remote_client_port, strerror(errno))); pipe_reply.status = NT_STATUS_INVALID_ADDRESS; goto reply; @@ -1249,14 +1249,14 @@ static void tstream_npa_accept_existing_done(struct tevent_req *subreq) tevent_req_done(req); } -static struct named_pipe_auth_req_info5 *copy_npa_info5( - TALLOC_CTX *mem_ctx, const struct named_pipe_auth_req_info5 *src) +static struct named_pipe_auth_req_info6 *copy_npa_info6( + TALLOC_CTX *mem_ctx, const struct named_pipe_auth_req_info6 *src) { - struct named_pipe_auth_req_info5 *dst = NULL; + struct named_pipe_auth_req_info6 *dst = NULL; DATA_BLOB blob; enum ndr_err_code ndr_err; - dst = talloc_zero(mem_ctx, struct named_pipe_auth_req_info5); + dst = talloc_zero(mem_ctx, struct named_pipe_auth_req_info6); if (dst == NULL) { return NULL; } @@ -1265,9 +1265,9 @@ static struct named_pipe_auth_req_info5 *copy_npa_info5( &blob, dst, src, - (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_req_info5); + (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_req_info6); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { - DBG_WARNING("ndr_push_named_pipe_auth_req_info5 failed: %s\n", + DBG_WARNING("ndr_push_named_pipe_auth_req_info6 failed: %s\n", ndr_errstr(ndr_err)); TALLOC_FREE(dst); return NULL; @@ -1277,10 +1277,10 @@ static struct named_pipe_auth_req_info5 *copy_npa_info5( &blob, dst, dst, - (ndr_pull_flags_fn_t)ndr_pull_named_pipe_auth_req_info5); + (ndr_pull_flags_fn_t)ndr_pull_named_pipe_auth_req_info6); TALLOC_FREE(blob.data); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { - DBG_WARNING("ndr_push_named_pipe_auth_req_info5 failed: %s\n", + DBG_WARNING("ndr_push_named_pipe_auth_req_info6 failed: %s\n", ndr_errstr(ndr_err)); TALLOC_FREE(dst); return NULL; @@ -1294,7 +1294,7 @@ int _tstream_npa_accept_existing_recv( int *perrno, TALLOC_CTX *mem_ctx, struct tstream_context **stream, - struct named_pipe_auth_req_info5 **info5, + struct named_pipe_auth_req_info6 **info6, enum dcerpc_transport_t *transport, struct tsocket_address **remote_client_addr, char **_remote_client_name, @@ -1305,7 +1305,7 @@ int _tstream_npa_accept_existing_recv( { struct tstream_npa_accept_state *state = tevent_req_data(req, struct tstream_npa_accept_state); - struct named_pipe_auth_req_info5 *i5 = &state->pipe_request->info.info5; + struct named_pipe_auth_req_info6 *i6 = &state->pipe_request->info.info6; struct tstream_npa *npas; int ret; @@ -1346,24 +1346,24 @@ int _tstream_npa_accept_existing_recv( npas->unix_stream = state->plain; npas->file_type = state->file_type; - if (info5 != NULL) { + if (info6 != NULL) { /* - * Make a full copy of "info5" because further down we + * Make a full copy of "info6" because further down we * talloc_move() away substructures from * state->pipe_request. */ - struct named_pipe_auth_req_info5 *dst = copy_npa_info5( - mem_ctx, i5); + struct named_pipe_auth_req_info6 *dst = copy_npa_info6( + mem_ctx, i6); if (dst == NULL) { *perrno = ENOMEM; tevent_req_received(req); return -1; } - *info5 = dst; + *info6 = dst; } if (transport != NULL) { - *transport = i5->transport; + *transport = i6->transport; } if (remote_client_addr != NULL) { *remote_client_addr = talloc_move( @@ -1371,7 +1371,7 @@ int _tstream_npa_accept_existing_recv( } if (_remote_client_name != NULL) { *_remote_client_name = discard_const_p( - char, talloc_move(mem_ctx, &i5->remote_client_name)); + char, talloc_move(mem_ctx, &i6->remote_client_name)); } if (local_server_addr != NULL) { *local_server_addr = talloc_move( @@ -1379,10 +1379,10 @@ int _tstream_npa_accept_existing_recv( } if (local_server_name != NULL) { *local_server_name = discard_const_p( - char, talloc_move(mem_ctx, &i5->local_server_name)); + char, talloc_move(mem_ctx, &i6->local_server_name)); } if (session_info != NULL) { - *session_info = talloc_move(mem_ctx, &i5->session_info); + *session_info = talloc_move(mem_ctx, &i6->session_info); } tevent_req_received(req); diff --git a/libcli/named_pipe_auth/npa_tstream.h b/libcli/named_pipe_auth/npa_tstream.h index 1d7e93dc0fa..4aff10f9afd 100644 --- a/libcli/named_pipe_auth/npa_tstream.h +++ b/libcli/named_pipe_auth/npa_tstream.h @@ -27,7 +27,7 @@ struct tevent_req; struct tevent_context; struct auth_session_info_transport; struct tsocket_address; -struct named_pipe_auth_req_info5; +struct named_pipe_auth_req_info6; struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, @@ -114,7 +114,7 @@ int _tstream_npa_accept_existing_recv( int *perrno, TALLOC_CTX *mem_ctx, struct tstream_context **stream, - struct named_pipe_auth_req_info5 **info5, + struct named_pipe_auth_req_info6 **info6, enum dcerpc_transport_t *transport, struct tsocket_address **remote_client_addr, char **_remote_client_name, diff --git a/librpc/idl/named_pipe_auth.idl b/librpc/idl/named_pipe_auth.idl index 6f26cceab17..2204deb63c9 100644 --- a/librpc/idl/named_pipe_auth.idl +++ b/librpc/idl/named_pipe_auth.idl @@ -22,10 +22,10 @@ interface named_pipe_auth uint16 local_server_port; auth_session_info_transport *session_info; boolean8 need_idle_server; - } named_pipe_auth_req_info5; + } named_pipe_auth_req_info6; typedef [switch_type(uint32)] union { - [case(5)] named_pipe_auth_req_info5 info5; + [case(6)] named_pipe_auth_req_info6 info6; } named_pipe_auth_req_info; typedef [public,gensize] struct { @@ -41,10 +41,10 @@ interface named_pipe_auth uint16 file_type; uint16 device_state; hyper allocation_size; - } named_pipe_auth_rep_info5; + } named_pipe_auth_rep_info6; typedef [switch_type(uint32)] union { - [case(5)] named_pipe_auth_rep_info5 info5; + [case(6)] named_pipe_auth_rep_info6 info6; } named_pipe_auth_rep_info; typedef [public,gensize] struct { diff --git a/source3/librpc/idl/rpc_host.idl b/source3/librpc/idl/rpc_host.idl index 0fc3f9514aa..899eabf3c26 100644 --- a/source3/librpc/idl/rpc_host.idl +++ b/source3/librpc/idl/rpc_host.idl @@ -31,7 +31,7 @@ interface rpc_host_msg /** * @brief Auth info inherited from SMB */ - named_pipe_auth_req_info5 *npa_info5; + named_pipe_auth_req_info6 *npa_info6; /** * @brief Raw bind PDU diff --git a/source3/rpc_client/local_np.c b/source3/rpc_client/local_np.c index 5b1a818c88d..20b68d62d13 100644 --- a/source3/rpc_client/local_np.c +++ b/source3/rpc_client/local_np.c @@ -260,8 +260,8 @@ static void np_sock_connect_read_done(struct tevent_req *subreq) tevent_req_error(req, ndr_map_error2errno(ndr_err)); return; } - if (state->npa_rep->level != 5) { - DBG_DEBUG("npa level = %"PRIu32", expected 5\n", + if (state->npa_rep->level != 6) { + DBG_DEBUG("npa level = %"PRIu32", expected 6\n", state->npa_rep->level); tevent_req_error(req, EIO); return; @@ -270,7 +270,7 @@ static void np_sock_connect_read_done(struct tevent_req *subreq) ret = tstream_npa_existing_stream( state, &state->transport, - state->npa_rep->info.info5.file_type, + state->npa_rep->info.info6.file_type, &state->npa_stream); if (ret == -1) { ret = errno; @@ -484,7 +484,7 @@ struct tevent_req *local_np_connect_send( { struct tevent_req *req = NULL, *subreq = NULL; struct local_np_connect_state *state = NULL; - struct named_pipe_auth_req_info5 *i5 = NULL; + struct named_pipe_auth_req_info6 *i6 = NULL; const char *socket_dir = NULL; char *lower_case_pipename = NULL; @@ -520,14 +520,14 @@ struct tevent_req *local_np_connect_send( if (tevent_req_nomem(state->npa_req, req)) { return tevent_req_post(req, ev); } - state->npa_req->level = 5; + state->npa_req->level = 6; - i5 = &state->npa_req->info.info5; + i6 = &state->npa_req->info.info6; - i5->transport = transport; + i6->transport = transport; /* we don't have "int" in IDL, make sure we don't overflow */ - SMB_ASSERT(i5->transport == transport); + SMB_ASSERT(i6->transport == transport); if (remote_client_name == NULL) { remote_client_name = get_myname(state->npa_req); @@ -536,7 +536,7 @@ struct tevent_req *local_np_connect_send( return tevent_req_post(req, ev); } } - i5->remote_client_name = remote_client_name; + i6->remote_client_name = remote_client_name; if (remote_client_addr == NULL) { struct tsocket_address *addr = NULL; @@ -548,18 +548,18 @@ struct tevent_req *local_np_connect_send( } remote_client_addr = addr; } - i5->remote_client_addr = tsocket_address_inet_addr_string( + i6->remote_client_addr = tsocket_address_inet_addr_string( remote_client_addr, state->npa_req); - if (i5->remote_client_addr == NULL) { + if (i6->remote_client_addr == NULL) { tevent_req_error(req, errno); return tevent_req_post(req, ev); } - i5->remote_client_port = tsocket_address_inet_port(remote_client_addr); + i6->remote_client_port = tsocket_address_inet_port(remote_client_addr); if (local_server_name == NULL) { local_server_name = remote_client_name; } - i5->local_server_name = local_server_name; + i6->local_server_name = local_server_name; if (local_server_addr == NULL) { struct tsocket_address *addr = NULL; @@ -571,27 +571,27 @@ struct tevent_req *local_np_connect_send( } local_server_addr = addr; } - i5->local_server_addr = tsocket_address_inet_addr_string( + i6->local_server_addr = tsocket_address_inet_addr_string( local_server_addr, state->npa_req); - if (i5->local_server_addr == NULL) { + if (i6->local_server_addr == NULL) { tevent_req_error(req, errno); return tevent_req_post(req, ev); } - i5->local_server_port = tsocket_address_inet_port(local_server_addr); + i6->local_server_port = tsocket_address_inet_port(local_server_addr); - i5->session_info = talloc_zero( + i6->session_info = talloc_zero( state->npa_req, struct auth_session_info_transport); - if (tevent_req_nomem(i5->session_info, req)) { + if (tevent_req_nomem(i6->session_info, req)) { return tevent_req_post(req, ev); } - i5->session_info->session_info = copy_session_info( - i5->session_info, session_info); - if (tevent_req_nomem(i5->session_info->session_info, req)) { + i6->session_info->session_info = copy_session_info( + i6->session_info, session_info); + if (tevent_req_nomem(i6->session_info->session_info, req)) { return tevent_req_post(req, ev); } - i5->need_idle_server = need_idle_server; + i6->need_idle_server = need_idle_server; subreq = np_sock_connect_send( state, state->ev, state->socketpath, state->npa_req); diff --git a/source3/rpc_server/rpc_host.c b/source3/rpc_server/rpc_host.c index f58c825e7cc..3991ce4e56b 100644 --- a/source3/rpc_server/rpc_host.c +++ b/source3/rpc_server/rpc_host.c @@ -200,7 +200,7 @@ struct rpc_server { * between RPC servers: netlogon requires samr, everybody * requires winreg. And if a deep call in netlogon asks for a * samr connection, this must never end up in the same - * process. named_pipe_auth_req_info5->need_idle_server is set + * process. named_pipe_auth_req_info6->need_idle_server is set * in those cases. */ struct rpc_work_process *workers; @@ -728,14 +728,14 @@ static int rpc_server_get_endpoints_recv( * anonymous session info. */ -static NTSTATUS rpc_host_generate_npa_info5_from_sock( +static NTSTATUS rpc_host_generate_npa_info6_from_sock( TALLOC_CTX *mem_ctx, enum dcerpc_transport_t transport, int sock, const struct samba_sockaddr *peer_addr, - struct named_pipe_auth_req_info5 **pinfo5) + struct named_pipe_auth_req_info6 **pinfo6) { - struct named_pipe_auth_req_info5 *info5 = NULL; + struct named_pipe_auth_req_info6 *info6 = NULL; struct samba_sockaddr local_addr = { .sa_socklen = sizeof(struct sockaddr_storage), }; @@ -758,18 +758,18 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( tsocket_address_to_name_fn = (transport == NCACN_IP_TCP) ? tsocket_address_inet_addr_string : tsocket_address_unix_path; - info5 = talloc_zero(mem_ctx, struct named_pipe_auth_req_info5); - if (info5 == NULL) { + info6 = talloc_zero(mem_ctx, struct named_pipe_auth_req_info6); + if (info6 == NULL) { goto fail; } - info5->session_info = talloc_zero( - info5, struct auth_session_info_transport); - if (info5->session_info == NULL) { + info6->session_info = talloc_zero( + info6, struct auth_session_info_transport); + if (info6->session_info == NULL) { goto fail; } status = make_session_info_anonymous( - info5->session_info, &info5->session_info->session_info); + info6->session_info, &info6->session_info->session_info); if (!NT_STATUS_IS_OK(status)) { DBG_DEBUG("make_session_info_anonymous failed: %s\n", nt_errstr(status)); @@ -777,7 +777,7 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( } ret = tsocket_address_bsd_from_samba_sockaddr( - info5, peer_addr, &taddr); + info6, peer_addr, &taddr); if (ret == -1) { status = map_nt_error_from_unix(errno); DBG_DEBUG("tsocket_address_bsd_from_samba_sockaddr failed: " @@ -785,14 +785,14 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( strerror(errno)); goto fail; } - remote_client_addr = tsocket_address_to_name_fn(taddr, info5); + remote_client_addr = tsocket_address_to_name_fn(taddr, info6); if (remote_client_addr == NULL) { DBG_DEBUG("tsocket_address_to_name_fn failed\n"); goto nomem; } TALLOC_FREE(taddr); - remote_client_name = talloc_strdup(info5, remote_client_addr); + remote_client_name = talloc_strdup(info6, remote_client_addr); if (remote_client_name == NULL) { DBG_DEBUG("talloc_strdup failed\n"); goto nomem; @@ -800,7 +800,7 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( if (transport == NCACN_IP_TCP) { bool ok = samba_sockaddr_get_port( - peer_addr, &info5->remote_client_port); + peer_addr, &info6->remote_client_port); if (!ok) { DBG_DEBUG("samba_sockaddr_get_port failed\n"); status = NT_STATUS_INVALID_PARAMETER; @@ -816,7 +816,7 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( } ret = tsocket_address_bsd_from_samba_sockaddr( - info5, &local_addr, &taddr); + info6, &local_addr, &taddr); if (ret == -1) { status = map_nt_error_from_unix(errno); DBG_DEBUG("tsocket_address_bsd_from_samba_sockaddr failed: " @@ -824,14 +824,14 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( strerror(errno)); goto fail; } - local_server_addr = tsocket_address_to_name_fn(taddr, info5); + local_server_addr = tsocket_address_to_name_fn(taddr, info6); if (local_server_addr == NULL) { DBG_DEBUG("tsocket_address_to_name_fn failed\n"); goto nomem; } TALLOC_FREE(taddr); - local_server_name = talloc_strdup(info5, local_server_addr); + local_server_name = talloc_strdup(info6, local_server_addr); if (local_server_name == NULL) { DBG_DEBUG("talloc_strdup failed\n"); goto nomem; @@ -839,7 +839,7 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( if (transport == NCACN_IP_TCP) { bool ok = samba_sockaddr_get_port( - &local_addr, &info5->local_server_port); + &local_addr, &info6->local_server_port); if (!ok) { DBG_DEBUG("samba_sockaddr_get_port failed\n"); status = NT_STATUS_INVALID_PARAMETER; @@ -868,7 +868,7 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( TALLOC_FREE(remote_client_name); ret = tsocket_address_unix_from_path( - info5, AS_SYSTEM_MAGIC_PATH_TOKEN, &taddr); + info6, AS_SYSTEM_MAGIC_PATH_TOKEN, &taddr); if (ret == -1) { DBG_DEBUG("tsocket_address_unix_from_path " "failed\n"); @@ -876,14 +876,14 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( } remote_client_addr = tsocket_address_unix_path( - taddr, info5); + taddr, info6); if (remote_client_addr == NULL) { DBG_DEBUG("tsocket_address_unix_path " "failed\n"); goto nomem; } remote_client_name = talloc_strdup( - info5, remote_client_addr); + info6, remote_client_addr); if (remote_client_name == NULL) { DBG_DEBUG("talloc_strdup failed\n"); goto nomem; @@ -891,18 +891,18 @@ static NTSTATUS rpc_host_generate_npa_info5_from_sock( } } - info5->remote_client_addr = remote_client_addr; - info5->remote_client_name = remote_client_name; - info5->local_server_addr = local_server_addr; - info5->local_server_name = local_server_name; + info6->remote_client_addr = remote_client_addr; + info6->remote_client_name = remote_client_name; + info6->local_server_addr = local_server_addr; + info6->local_server_name = local_server_name; - *pinfo5 = info5; + *pinfo6 = info6; return NT_STATUS_OK; nomem: status = NT_STATUS_NO_MEMORY; fail: - TALLOC_FREE(info5); + TALLOC_FREE(info6); return status; } @@ -991,12 +991,12 @@ static struct tevent_req *rpc_host_bind_read_send( return req; } - status = rpc_host_generate_npa_info5_from_sock( + status = rpc_host_generate_npa_info6_from_sock( state->client, transport, state->sock, peer_addr, - &state->client->npa_info5); + &state->client->npa_info6); if (!NT_STATUS_IS_OK(status)) { tevent_req_oom(req); return tevent_req_post(req, ev); @@ -1028,7 +1028,7 @@ static void rpc_host_bind_read_got_npa(struct tevent_req *subreq) subreq, struct tevent_req); struct rpc_host_bind_read_state *state = tevent_req_data( req, struct rpc_host_bind_read_state); - struct named_pipe_auth_req_info5 *info5 = NULL; + struct named_pipe_auth_req_info6 *info6 = NULL; int ret, err; ret = tstream_npa_accept_existing_recv( @@ -1036,7 +1036,7 @@ static void rpc_host_bind_read_got_npa(struct tevent_req *subreq) &err, state, &state->npa_stream, - &info5, + &info6, NULL, /* transport */ NULL, /* remote_client_addr */ NULL, /* remote_client_name */ @@ -1048,7 +1048,7 @@ static void rpc_host_bind_read_got_npa(struct tevent_req *subreq) return; } - state->client->npa_info5 = talloc_move(state->client, &info5); + state->client->npa_info6 = talloc_move(state->client, &info6); subreq = dcerpc_read_ncacn_packet_send( state, state->ev, state->npa_stream); @@ -1322,7 +1322,7 @@ again: } } else { /* fresh assoc group requested */ - if (pending_client->client->npa_info5->need_idle_server != 0) { + if (pending_client->client->npa_info6->need_idle_server != 0) { worker = rpc_host_find_idle_worker(server); } else { worker = rpc_host_find_worker(server); diff --git a/source3/rpc_server/rpc_worker.c b/source3/rpc_server/rpc_worker.c index 1bc84531e55..03ab9742833 100644 --- a/source3/rpc_server/rpc_worker.c +++ b/source3/rpc_server/rpc_worker.c @@ -170,7 +170,7 @@ static void rpc_worker_new_client( int sock) { struct dcesrv_context *dce_ctx = worker->dce_ctx; - struct named_pipe_auth_req_info5 *info5 = client->npa_info5; + struct named_pipe_auth_req_info6 *info6 = client->npa_info6; struct tsocket_address *remote_client_addr = NULL; struct tsocket_address *local_server_addr = NULL; struct dcerpc_binding *b = NULL; @@ -261,85 +261,85 @@ static void rpc_worker_new_client( if (transport == NCALRPC) { ret = tsocket_address_unix_from_path( ncacn_conn, - info5->remote_client_addr, + info6->remote_client_addr, &remote_client_addr); if (ret == -1) { DBG_DEBUG("tsocket_address_unix_from_path" "(%s) failed: %s\n", - info5->remote_client_addr, + info6->remote_client_addr, strerror(errno)); goto fail; } ncacn_conn->remote_client_name = talloc_strdup( - ncacn_conn, info5->remote_client_name); + ncacn_conn, info6->remote_client_name); if (ncacn_conn->remote_client_name == NULL) { DBG_DEBUG("talloc_strdup(%s) failed\n", - info5->remote_client_name); + info6->remote_client_name); goto fail; } ret = tsocket_address_unix_from_path( ncacn_conn, - info5->local_server_addr, + info6->local_server_addr, &local_server_addr); if (ret == -1) { DBG_DEBUG("tsocket_address_unix_from_path" "(%s) failed: %s\n", - info5->local_server_addr, + info6->local_server_addr, strerror(errno)); goto fail; } ncacn_conn->local_server_name = talloc_strdup( - ncacn_conn, info5->local_server_name); + ncacn_conn, info6->local_server_name); if (ncacn_conn->local_server_name == NULL) { DBG_DEBUG("talloc_strdup(%s) failed\n", - info5->local_server_name); + info6->local_server_name); goto fail; } } else { ret = tsocket_address_inet_from_strings( ncacn_conn, "ip", - info5->remote_client_addr, - info5->remote_client_port, + info6->remote_client_addr, + info6->remote_client_port, &remote_client_addr); if (ret == -1) { DBG_DEBUG("tsocket_address_inet_from_strings" "(%s, %"PRIu16") failed: %s\n", - info5->remote_client_addr, - info5->remote_client_port, + info6->remote_client_addr, + info6->remote_client_port, strerror(errno)); goto fail; } ncacn_conn->remote_client_name = talloc_strdup( - ncacn_conn, info5->remote_client_name); + ncacn_conn, info6->remote_client_name); if (ncacn_conn->remote_client_name == NULL) { DBG_DEBUG("talloc_strdup(%s) failed\n", - info5->remote_client_name); + info6->remote_client_name); goto fail; } ret = tsocket_address_inet_from_strings( ncacn_conn, "ip", - info5->local_server_addr, - info5->local_server_port, + info6->local_server_addr, + info6->local_server_port, &local_server_addr); if (ret == -1) { DBG_DEBUG("tsocket_address_inet_from_strings" "(%s, %"PRIu16") failed: %s\n", - info5->local_server_addr, - info5->local_server_port, + info6->local_server_addr, + info6->local_server_port, strerror(errno)); goto fail; } ncacn_conn->local_server_name = talloc_strdup( - ncacn_conn, info5->local_server_name); + ncacn_conn, info6->local_server_name); if (ncacn_conn->local_server_name == NULL) { DBG_DEBUG("talloc_strdup(%s) failed\n", - info5->local_server_name); + info6->local_server_name); goto fail; } } @@ -361,10 +361,10 @@ static void rpc_worker_new_client( * socket that the client connected to, passed in from * samba-dcerpcd via the binding. For NCACN_NP (root * only by unix permissions) we got a - * named_pipe_auth_req_info5 where the transport can + * named_pipe_auth_req_info6 where the transport can * be overridden. */ - transport = info5->transport; + transport = info6->transport; } else { ret = tstream_bsd_existing_socket( ncacn_conn, sock, &tstream); @@ -377,7 +377,7 @@ static void rpc_worker_new_client( sock = -1; if (security_token_is_system( - info5->session_info->session_info->security_token) && + info6->session_info->session_info->security_token) && (transport != NCALRPC)) { DBG_DEBUG("System token only allowed on NCALRPC\n"); goto fail; @@ -390,7 +390,7 @@ static void rpc_worker_new_client( dce_ctx, ncacn_conn, ep, - info5->session_info->session_info, + info6->session_info->session_info, global_event_context(), DCESRV_CALL_STATE_FLAG_MAY_ASYNC, &dcesrv_conn); |