diff options
author | Rafal Szczesniak <mimir@samba.org> | 2006-01-10 22:22:55 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:50:04 -0500 |
commit | 2470034e545415537780cd1bba5284f4c58c3112 (patch) | |
tree | cd12c364da58fecae52378e8fc8e69725e0152ce /source4/torture | |
parent | 5ecc64dcab1089cf134a264de28aca0b21100cca (diff) | |
download | samba-2470034e545415537780cd1bba5284f4c58c3112.tar.gz samba-2470034e545415537780cd1bba5284f4c58c3112.tar.bz2 samba-2470034e545415537780cd1bba5284f4c58c3112.zip |
r12835: RpcConnect test expansion to test connecting using ncacp_ip_tcp
as well as ncacn_np.
rafal
(This used to be commit 70cf8a4b67657f7c51e95ae5321e5a2e7f52832d)
Diffstat (limited to 'source4/torture')
-rw-r--r-- | source4/torture/libnet/libnet_rpc.c | 86 |
1 files changed, 74 insertions, 12 deletions
diff --git a/source4/torture/libnet/libnet_rpc.c b/source4/torture/libnet/libnet_rpc.c index 9c43fef24a..99055fac0d 100644 --- a/source4/torture/libnet/libnet_rpc.c +++ b/source4/torture/libnet/libnet_rpc.c @@ -24,13 +24,14 @@ #include "libnet/libnet.h" -BOOL test_lsa_connect(struct libnet_context *ctx) +BOOL test_lsa_np_connect(struct libnet_context *ctx) { NTSTATUS status; struct libnet_RpcConnect connect; - connect.level = LIBNET_RPC_CONNECT_PDC; - connect.in.domain_name = lp_workgroup(); - connect.in.dcerpc_iface = &dcerpc_table_lsarpc; + 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.dcerpc_iface = &dcerpc_table_lsarpc; status = libnet_RpcConnect(ctx, ctx, &connect); @@ -46,13 +47,14 @@ BOOL test_lsa_connect(struct libnet_context *ctx) } -BOOL test_samr_connect(struct libnet_context *ctx) +BOOL test_samr_np_connect(struct libnet_context *ctx) { NTSTATUS status; struct libnet_RpcConnect connect; - connect.level = LIBNET_RPC_CONNECT_PDC; - connect.in.domain_name = lp_workgroup(); - connect.in.dcerpc_iface = &dcerpc_table_samr; + 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.dcerpc_iface = &dcerpc_table_samr; status = libnet_RpcConnect(ctx, ctx, &connect); @@ -68,6 +70,52 @@ BOOL test_samr_connect(struct libnet_context *ctx) } +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; @@ -75,13 +123,27 @@ BOOL torture_rpc_connect(void) ctx = libnet_context_init(NULL); ctx->cred = cmdline_credentials; - if (!test_lsa_connect(ctx)) { - printf("failed to connect lsarpc interface\n"); + 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"); return False; } - if (!test_samr_connect(ctx)) { - printf("failed to connect samr interface\n"); + 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"); return False; } |