From af237084ecd4f9928c6c282b9c5c73598d5c73d6 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 16 Jun 2005 11:36:09 +0000 Subject: r7633: this patch started as an attempt to make the dcerpc code use a given event_context for the socket_connect() call, so that when things that use dcerpc are running alongside anything else it doesn't block the whole process during a connect. Then of course I needed to change any code that created a dcerpc connection (such as the auth code) to also take an event context, and anything that called that and so on .... thus the size of the patch. There were 3 places where I punted: - abartlet wanted me to add a gensec_set_event_context() call instead of adding it to the gensec init calls. Andrew, my apologies for not doing this. I didn't do it as adding a new parameter allowed me to catch all the callers with the compiler. Now that its done, we could go back and use gensec_set_event_context() - the ejs code calls auth initialisation, which means it should pass in the event context from the web server. I punted on that. Needs fixing. - I used a NULL event context in dcom_get_pipe(). This is equivalent to what we did already, but should be fixed to use a callers event context. Jelmer, can you think of a clean way to do that? I also cleaned up a couple of things: - libnet_context_destroy() makes no sense. I removed it. - removed some unused vars in various places (This used to be commit 3a3025485bdb8f600ab528c0b4b4eef0c65e3fc9) --- source4/torture/rpc/mgmt.c | 2 +- source4/torture/rpc/samlogon.c | 2 +- source4/torture/rpc/samsync.c | 4 ++-- source4/torture/rpc/scanner.c | 2 +- source4/torture/rpc/schannel.c | 4 ++-- source4/torture/rpc/xplogin.c | 3 ++- 6 files changed, 9 insertions(+), 8 deletions(-) (limited to 'source4/torture/rpc') diff --git a/source4/torture/rpc/mgmt.c b/source4/torture/rpc/mgmt.c index be9cf649d3..7dfa67ce95 100644 --- a/source4/torture/rpc/mgmt.c +++ b/source4/torture/rpc/mgmt.c @@ -212,7 +212,7 @@ BOOL torture_rpc_mgmt(void) if (b->transport == NCACN_IP_TCP) { status = dcerpc_epm_map_binding(loop_ctx, b, l->table->uuid, - l->table->if_version); + l->table->if_version, NULL); if (!NT_STATUS_IS_OK(status)) { talloc_free(loop_ctx); printf("Failed to map port for uuid %s\n", l->table->uuid); diff --git a/source4/torture/rpc/samlogon.c b/source4/torture/rpc/samlogon.c index 12b7ea92b1..37b9025194 100644 --- a/source4/torture/rpc/samlogon.c +++ b/source4/torture/rpc/samlogon.c @@ -1363,7 +1363,7 @@ BOOL torture_rpc_samlogon(void) status = dcerpc_pipe_connect_b(mem_ctx, &p, b, DCERPC_NETLOGON_UUID, DCERPC_NETLOGON_VERSION, - credentials); + credentials, NULL); if (!NT_STATUS_IS_OK(status)) { printf("RPC pipe connect as domain member failed: %s\n", nt_errstr(status)); diff --git a/source4/torture/rpc/samsync.c b/source4/torture/rpc/samsync.c index 4690b18ead..652fef15c3 100644 --- a/source4/torture/rpc/samsync.c +++ b/source4/torture/rpc/samsync.c @@ -1505,7 +1505,7 @@ BOOL torture_rpc_samsync(void) &samsync_state->p, b, DCERPC_NETLOGON_UUID, DCERPC_NETLOGON_VERSION, - credentials); + credentials, NULL); if (!NT_STATUS_IS_OK(status)) { printf("Failed to connect to server as a BDC: %s\n", nt_errstr(status)); @@ -1545,7 +1545,7 @@ BOOL torture_rpc_samsync(void) b_netlogon_wksta, DCERPC_NETLOGON_UUID, DCERPC_NETLOGON_VERSION, - credentials_wksta); + credentials_wksta, NULL); if (!NT_STATUS_IS_OK(status)) { printf("Failed to connect to server as a Workstation: %s\n", nt_errstr(status)); diff --git a/source4/torture/rpc/scanner.c b/source4/torture/rpc/scanner.c index d7a5d03271..9741273c64 100644 --- a/source4/torture/rpc/scanner.c +++ b/source4/torture/rpc/scanner.c @@ -168,7 +168,7 @@ BOOL torture_rpc_scanner(void) if (b->transport == NCACN_IP_TCP) { status = dcerpc_epm_map_binding(mem_ctx, b, l->table->uuid, - l->table->if_version); + l->table->if_version, NULL); if (!NT_STATUS_IS_OK(status)) { talloc_free(loop_ctx); printf("Failed to map port for uuid %s\n", l->table->uuid); diff --git a/source4/torture/rpc/schannel.c b/source4/torture/rpc/schannel.c index 75f9198106..e87f950b62 100644 --- a/source4/torture/rpc/schannel.c +++ b/source4/torture/rpc/schannel.c @@ -171,7 +171,7 @@ static BOOL test_schannel(TALLOC_CTX *mem_ctx, &p, b, DCERPC_SAMR_UUID, DCERPC_SAMR_VERSION, - credentials); + credentials, NULL); if (!NT_STATUS_IS_OK(status)) { printf("Failed to connect with schannel: %s\n", nt_errstr(status)); goto failed; @@ -193,7 +193,7 @@ static BOOL test_schannel(TALLOC_CTX *mem_ctx, /* Swap the binding details from SAMR to NETLOGON */ status = dcerpc_epm_map_binding(test_ctx, b, DCERPC_NETLOGON_UUID, - DCERPC_NETLOGON_VERSION); + DCERPC_NETLOGON_VERSION, NULL); if (!NT_STATUS_IS_OK(status)) { goto failed; } diff --git a/source4/torture/rpc/xplogin.c b/source4/torture/rpc/xplogin.c index 3a5a2f5844..c841267d97 100644 --- a/source4/torture/rpc/xplogin.c +++ b/source4/torture/rpc/xplogin.c @@ -208,7 +208,8 @@ static NTSTATUS connect_to_pipe(struct dcerpc_pipe **pp, /* Look up identifier using the epmapper */ if (!b->endpoint) { - status = dcerpc_epm_map_binding(tmp_ctx, b, pipe_uuid, pipe_version); + status = dcerpc_epm_map_binding(tmp_ctx, b, pipe_uuid, pipe_version, + NULL); if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("Failed to map DCERPC/TCP NCACN_NP pipe for '%s' - %s\n", pipe_uuid, nt_errstr(status))); -- cgit