From 46badf19089668e470e9bb5b2300017f8948b49e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 16 Nov 2004 21:07:08 +0000 Subject: r3790: use a registration function that is called from dcerpc_*_init functions rather then a large table in librpc/gen_ndr/tables.c. This will allow us to only link in only the required gen_ndr files (speeds up linking quite a bit, makes binaries smaller). Each gen_ndr_* file now has a init function that calls the init functions of the interfaces it contains. I did it this way to keep pidl's code simple, though it might hurt startup time a bit. I'd be happy to change it if people like one function better. (This used to be commit 3c436590ae95b58ad6d00e72d6fdd08a4d80f208) --- source4/torture/rpc/scanner.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'source4/torture/rpc/scanner.c') diff --git a/source4/torture/rpc/scanner.c b/source4/torture/rpc/scanner.c index 4a1210119c..f9a4d337af 100644 --- a/source4/torture/rpc/scanner.c +++ b/source4/torture/rpc/scanner.c @@ -22,7 +22,6 @@ #include "includes.h" #include "librpc/gen_ndr/ndr_mgmt.h" -#include "librpc/gen_ndr/tables.h" /* work out how many calls there are for an interface @@ -135,7 +134,7 @@ BOOL torture_rpc_scanner(void) struct dcerpc_pipe *p; TALLOC_CTX *mem_ctx; BOOL ret = True; - int i; + struct dcerpc_interface_list *l; const char *binding = lp_parm_string(-1, "torture", "binding"); struct dcerpc_binding b; @@ -152,31 +151,31 @@ BOOL torture_rpc_scanner(void) return False; } - for (i=0;dcerpc_pipes[i];i++) { + for (l=dcerpc_pipes;l;l=l->next) { /* some interfaces are not mappable */ - if (dcerpc_pipes[i]->num_calls == 0 || - strcmp(dcerpc_pipes[i]->name, "mgmt") == 0) { + if (l->table->num_calls == 0 || + strcmp(l->table->name, "mgmt") == 0) { continue; } - printf("\nTesting pipe '%s'\n", dcerpc_pipes[i]->name); + printf("\nTesting pipe '%s'\n", l->table->name); if (b.transport == NCACN_IP_TCP) { status = dcerpc_epm_map_binding(mem_ctx, &b, - dcerpc_pipes[i]->uuid, - dcerpc_pipes[i]->if_version); + l->table->uuid, + l->table->if_version); if (!NT_STATUS_IS_OK(status)) { - printf("Failed to map port for uuid %s\n", dcerpc_pipes[i]->uuid); + printf("Failed to map port for uuid %s\n", l->table->uuid); continue; } } else { - b.endpoint = dcerpc_pipes[i]->name; + b.endpoint = l->table->name; } lp_set_cmdline("torture:binding", dcerpc_binding_string(mem_ctx, &b)); status = torture_rpc_connection(&p, - dcerpc_pipes[i]->name, + l->table->name, DCERPC_MGMT_UUID, DCERPC_MGMT_VERSION); if (!NT_STATUS_IS_OK(status)) { @@ -184,7 +183,7 @@ BOOL torture_rpc_scanner(void) continue; } - if (!test_inq_if_ids(p, mem_ctx, dcerpc_pipes[i])) { + if (!test_inq_if_ids(p, mem_ctx, l->table)) { ret = False; } -- cgit