diff options
Diffstat (limited to 'source4/torture')
-rw-r--r-- | source4/torture/libnet/libnet_lookup.c | 26 | ||||
-rw-r--r-- | source4/torture/libnet/libnet_rpc.c | 85 | ||||
-rw-r--r-- | source4/torture/libnet/libnet_share.c | 2 |
3 files changed, 27 insertions, 86 deletions
diff --git a/source4/torture/libnet/libnet_lookup.c b/source4/torture/libnet/libnet_lookup.c index b6f23fd58c..c95ee58e49 100644 --- a/source4/torture/libnet/libnet_lookup.c +++ b/source4/torture/libnet/libnet_lookup.c @@ -40,8 +40,7 @@ BOOL torture_lookup(void) address = talloc_array(ctx, const char, 16); - lookup.in.hostname = lp_netbios_name(); - lookup.in.methods = lp_name_resolve_order(); + lookup.in.hostname = lp_parm_string(-1, "torture", "host"); lookup.in.type = NBT_NAME_CLIENT; lookup.out.address = &address; @@ -77,8 +76,7 @@ BOOL torture_lookup_host(void) address = talloc_array(mem_ctx, const char, 16); - lookup.in.hostname = lp_netbios_name(); - lookup.in.methods = lp_name_resolve_order(); + lookup.in.hostname = lp_parm_string(-1, "torture", "host"); lookup.out.address = &address; status = libnet_LookupHost(ctx, mem_ctx, &lookup); @@ -103,24 +101,28 @@ BOOL torture_lookup_pdc(void) NTSTATUS status; TALLOC_CTX *mem_ctx; struct libnet_context *ctx; - struct libnet_Lookup lookup; - const char *address; + struct libnet_LookupDCs *lookup; mem_ctx = talloc_init("test_lookup_pdc"); ctx = libnet_context_init(NULL); ctx->cred = cmdline_credentials; - address = talloc_array(mem_ctx, const char, 16); + talloc_steal(ctx, mem_ctx); - lookup.in.hostname = lp_workgroup(); - lookup.in.methods = lp_name_resolve_order(); - lookup.out.address = &address; + lookup = talloc(mem_ctx, struct libnet_LookupDCs); + if (!lookup) { + ret = False; + goto done; + } + + lookup->in.domain_name = lp_workgroup(); + lookup->in.name_type = NBT_NAME_PDC; - status = libnet_LookupPdc(ctx, mem_ctx, &lookup); + status = libnet_LookupDCs(ctx, mem_ctx, lookup); if (!NT_STATUS_IS_OK(status)) { - printf("Couldn't lookup pdc %s: %s\n", lookup.in.hostname, nt_errstr(status)); + printf("Couldn't lookup pdc %s: %s\n", lookup->in.domain_name, nt_errstr(status)); ret = False; goto done; } diff --git a/source4/torture/libnet/libnet_rpc.c b/source4/torture/libnet/libnet_rpc.c index 99055fac0d..418f579728 100644 --- a/source4/torture/libnet/libnet_rpc.c +++ b/source4/torture/libnet/libnet_rpc.c @@ -24,20 +24,19 @@ #include "libnet/libnet.h" -BOOL test_lsa_np_connect(struct libnet_context *ctx) +static BOOL test_lsa_connect(struct libnet_context *ctx) { NTSTATUS status; struct libnet_RpcConnect connect; connect.level = LIBNET_RPC_CONNECT_BINDING; - connect.in.domain_name = lp_workgroup(); - connect.in.binding = talloc_asprintf(ctx, "ncacn_np:%s", lp_workgroup()); + connect.in.binding = lp_parm_string(-1, "torture", "binding"); connect.in.dcerpc_iface = &dcerpc_table_lsarpc; status = libnet_RpcConnect(ctx, ctx, &connect); if (!NT_STATUS_IS_OK(status)) { printf("Couldn't connect to rpc service %s on %s: %s\n", - connect.in.dcerpc_iface->name, connect.in.domain_name, + connect.in.dcerpc_iface->name, connect.in.binding, nt_errstr(status)); return False; @@ -47,20 +46,19 @@ BOOL test_lsa_np_connect(struct libnet_context *ctx) } -BOOL test_samr_np_connect(struct libnet_context *ctx) +static BOOL test_samr_connect(struct libnet_context *ctx) { NTSTATUS status; struct libnet_RpcConnect connect; connect.level = LIBNET_RPC_CONNECT_BINDING; - connect.in.domain_name = lp_workgroup(); - connect.in.binding = talloc_asprintf(ctx, "ncacn_np:%s", lp_workgroup()); + connect.in.binding = lp_parm_string(-1, "torture", "binding"); connect.in.dcerpc_iface = &dcerpc_table_samr; status = libnet_RpcConnect(ctx, ctx, &connect); if (!NT_STATUS_IS_OK(status)) { printf("Couldn't connect to rpc service %s on %s: %s\n", - connect.in.dcerpc_iface->name, connect.in.domain_name, + connect.in.dcerpc_iface->name, connect.in.binding, nt_errstr(status)); return False; @@ -69,53 +67,6 @@ BOOL test_samr_np_connect(struct libnet_context *ctx) return True; } - -BOOL test_lsa_tcpip_connect(struct libnet_context *ctx) -{ - NTSTATUS status; - struct libnet_RpcConnect connect; - connect.level = LIBNET_RPC_CONNECT_BINDING; - connect.in.domain_name = lp_workgroup(); - connect.in.binding = talloc_asprintf(ctx, "ncacn_ip_tcp:%s", lp_netbios_name()); - connect.in.dcerpc_iface = &dcerpc_table_lsarpc; - - status = libnet_RpcConnect(ctx, ctx, &connect); - - if (!NT_STATUS_IS_OK(status)) { - printf("Couldn't connect to rpc service %s on %s: %s\n", - connect.in.dcerpc_iface->name, connect.in.domain_name, - nt_errstr(status)); - - return False; - } - - return True; -} - - -BOOL test_samr_tcpip_connect(struct libnet_context *ctx) -{ - NTSTATUS status; - struct libnet_RpcConnect connect; - connect.level = LIBNET_RPC_CONNECT_BINDING; - connect.in.domain_name = lp_workgroup(); - connect.in.binding = talloc_asprintf(ctx, "ncacn_ip_tcp:%s", lp_netbios_name()); - connect.in.dcerpc_iface = &dcerpc_table_samr; - - status = libnet_RpcConnect(ctx, ctx, &connect); - - if (!NT_STATUS_IS_OK(status)) { - printf("Couldn't connect to rpc service %s on %s: %s\n", - connect.in.dcerpc_iface->name, connect.in.domain_name, - nt_errstr(status)); - - return False; - } - - return True; -} - - BOOL torture_rpc_connect(void) { struct libnet_context *ctx; @@ -123,27 +74,15 @@ BOOL torture_rpc_connect(void) ctx = libnet_context_init(NULL); ctx->cred = cmdline_credentials; - printf("Testing connection to lsarpc interface via named pipe\n"); - if (!test_lsa_np_connect(ctx)) { - printf("failed to connect lsarpc interface via named pipe\n"); - return False; - } - - printf("Testing connection to SAMR service via named pipe\n"); - if (!test_samr_np_connect(ctx)) { - printf("failed to connect samr interface via named pipe\n"); - return False; - } - - printf("Testing connection to LSA service via tcp/ip\n"); - if (!test_lsa_tcpip_connect(ctx)) { - printf("failed to connect lsarpc interface via tcp/ip\n"); + printf("Testing connection to lsarpc interface\n"); + if (!test_lsa_connect(ctx)) { + printf("failed to connect lsarpc interface\n"); return False; } - printf("Testing connection to SAMR service via tcp/ip\n"); - if (!test_samr_tcpip_connect(ctx)) { - printf("failed to connect samr interface via tcp/ip\n"); + printf("Testing connection to SAMR service\n"); + if (!test_samr_connect(ctx)) { + printf("failed to connect samr interface\n"); return False; } diff --git a/source4/torture/libnet/libnet_share.c b/source4/torture/libnet/libnet_share.c index 5489f42ac8..93919a4129 100644 --- a/source4/torture/libnet/libnet_share.c +++ b/source4/torture/libnet/libnet_share.c @@ -148,7 +148,7 @@ BOOL torture_listshares(void) status = libnet_ListShares(libnetctx, mem_ctx, &share); if (!NT_STATUS_IS_OK(status)) { - printf("libnet_ListShare level %u failed - %s\n", share.in.level, nt_errstr(status)); + printf("libnet_ListShare level %u failed - %s\n", share.in.level, share.out.error_string); ret = False; goto done; } |