Author: mimir
Date: 2006-01-10 22:22:55 +0000 (Tue, 10 Jan 2006)
New Revision: 12835

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12835

Log:
RpcConnect test expansion to test connecting using ncacp_ip_tcp
as well as ncacn_np.


rafal


Modified:
   branches/SAMBA_4_0/source/torture/libnet/libnet_rpc.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_rpc.c
===================================================================
--- branches/SAMBA_4_0/source/torture/libnet/libnet_rpc.c       2006-01-10 
20:37:16 UTC (rev 12834)
+++ branches/SAMBA_4_0/source/torture/libnet/libnet_rpc.c       2006-01-10 
22:22:55 UTC (rev 12835)
@@ -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_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_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,15 +123,29 @@
        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;
        }
 
-       if (!test_samr_connect(ctx)) {
-               printf("failed to connect samr interface\n");
+       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;
+       }
+
+       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;
+       }
+
        return True;
 }

Reply via email to