summaryrefslogtreecommitdiff
path: root/source3/rpc_server/rpc_ncacn_np_internal.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2010-08-16 11:01:26 +0200
committerVolker Lendecke <vl@samba.org>2010-08-18 11:18:23 +0200
commit4b5e252354660501576c8452f48514852f40270e (patch)
tree16f112b0719f6252bd833f7a759f33bff1397abb /source3/rpc_server/rpc_ncacn_np_internal.c
parent6d10684556e9f9e847ec03dd8af057e8d4558e35 (diff)
downloadsamba-4b5e252354660501576c8452f48514852f40270e.tar.gz
samba-4b5e252354660501576c8452f48514852f40270e.tar.bz2
samba-4b5e252354660501576c8452f48514852f40270e.zip
s3: Add "client_id" to pipes_struct
Diffstat (limited to 'source3/rpc_server/rpc_ncacn_np_internal.c')
-rw-r--r--source3/rpc_server/rpc_ncacn_np_internal.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/source3/rpc_server/rpc_ncacn_np_internal.c b/source3/rpc_server/rpc_ncacn_np_internal.c
index 71a14be845..bbb6338260 100644
--- a/source3/rpc_server/rpc_ncacn_np_internal.c
+++ b/source3/rpc_server/rpc_ncacn_np_internal.c
@@ -114,7 +114,7 @@ static int close_internal_rpc_pipe_hnd(struct pipes_struct *p)
struct pipes_struct *make_internal_rpc_pipe_p(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
- const char *client_address,
+ struct client_address *client_id,
struct auth_serversupplied_info *server_info,
struct messaging_context *msg_ctx)
{
@@ -157,7 +157,7 @@ struct pipes_struct *make_internal_rpc_pipe_p(TALLOC_CTX *mem_ctx,
DLIST_ADD(InternalPipes, p);
- strlcpy(p->client_address, client_address, sizeof(p->client_address));
+ p->client_id = client_id;
p->endian = RPC_LITTLE_ENDIAN;
@@ -469,6 +469,7 @@ static struct dcerpc_binding_handle *rpcint_binding_handle(struct pipes_struct *
NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *abstract_syntax,
struct auth_serversupplied_info *serversupplied_info,
+ struct client_address *client_id,
struct messaging_context *msg_ctx,
struct rpc_pipe_client **presult)
{
@@ -482,8 +483,16 @@ NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx,
result->abstract_syntax = *abstract_syntax;
result->transfer_syntax = ndr_transfer_syntax;
+ if (client_id == NULL) {
+ static struct client_address unknown;
+ strlcpy(unknown.addr, "<UNKNOWN>", sizeof(unknown.addr));
+ unknown.name = "<UNKNOWN>";
+ client_id = &unknown;
+ }
+
result->pipes_struct = make_internal_rpc_pipe_p(
- result, abstract_syntax, "", serversupplied_info, msg_ctx);
+ result, abstract_syntax, client_id, serversupplied_info,
+ msg_ctx);
if (result->pipes_struct == NULL) {
TALLOC_FREE(result);
return NT_STATUS_NO_MEMORY;