mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
r12835: RpcConnect test expansion to test connecting using ncacp_ip_tcp
as well as ncacn_np. rafal
This commit is contained in:
parent
bd8e262937
commit
70cf8a4b67
@ -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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user