svn commit: samba r7816 - in branches/SAMBA_4_0/source: libnet torture torture/libnet

mimir at samba.org mimir at samba.org
Tue Jun 21 20:22:39 GMT 2005


Author: mimir
Date: 2005-06-21 20:22:38 +0000 (Tue, 21 Jun 2005)
New Revision: 7816

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

Log:
Implementation of "shortcut" function for those (probably many) who
don't like to bother with netbios type names when looking for common
types: hosts (servers) and domain controllers. Also, apropriate tests


rafal


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


Changeset:
Modified: branches/SAMBA_4_0/source/libnet/libnet_lookup.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_lookup.c	2005-06-21 20:19:19 UTC (rev 7815)
+++ branches/SAMBA_4_0/source/libnet/libnet_lookup.c	2005-06-21 20:22:38 UTC (rev 7816)
@@ -39,6 +39,12 @@
 };
 
 
+/**
+ * Sends asynchronous Lookup request
+ *
+ * @param io arguments and result of the call
+ */
+
 struct composite_context *libnet_Lookup_send(struct libnet_Lookup *io)
 {
 	struct composite_context *c;
@@ -77,6 +83,15 @@
 }
 
 
+/**
+ * Waits for and receives results of asynchronous Lookup call
+ *
+ * @param c composite context returned by asynchronous Lookup call
+ * @param mem_ctx memory context of the call
+ * @param io pointer to results (and arguments) of the call
+ * @return nt status code of execution
+ */
+
 NTSTATUS libnet_Lookup_recv(struct composite_context *c, TALLOC_CTX *mem_ctx,
 			    struct libnet_Lookup *io)
 {
@@ -90,8 +105,63 @@
 }
 
 
+/**
+ * Synchronous version of Lookup call
+ *
+ * @param mem_ctx memory context for the call
+ * @param io arguments and results of the call
+ * @return nt status code of execution
+ */
+
 NTSTATUS libnet_Lookup(TALLOC_CTX *mem_ctx, struct libnet_Lookup *io)
 {
 	struct composite_context *c = libnet_Lookup_send(io);
 	return libnet_Lookup_recv(c, mem_ctx, io);
 }
+
+
+/*
+ * Shortcut functions to find common types of name
+ * (and skip nbt name type argument)
+ */
+
+
+/**
+ * Sends asynchronous LookupHost request
+ */
+struct composite_context* libnet_LookupHost_send(struct libnet_Lookup *io)
+{
+	io->in.type = NBT_NAME_SERVER;
+	return libnet_Lookup_send(io);
+}
+
+
+
+/**
+ * Synchronous version of LookupHost call
+ */
+NTSTATUS libnet_LookupHost(TALLOC_CTX *mem_ctx, struct libnet_Lookup *io)
+{
+	struct composite_context *c = libnet_LookupHost_send(io);
+	return libnet_Lookup_recv(c, mem_ctx, io);
+}
+
+
+/**
+ * Sends asynchronous LookupPdc request
+ */
+struct composite_context* libnet_LookupPdc_send(struct libnet_Lookup *io)
+{
+	io->in.type = NBT_NAME_PDC;
+	return libnet_Lookup_send(io);
+}
+
+
+/**
+ * Synchronous version of LookupPdc
+ */
+NTSTATUS libnet_LookupPdc(TALLOC_CTX *mem_ctx, struct libnet_Lookup *io)
+{
+	struct composite_context *c = libnet_LookupPdc_send(io);
+	return libnet_Lookup_recv(c, mem_ctx, io);
+}

Modified: branches/SAMBA_4_0/source/torture/libnet/libnet_lookup.c
===================================================================
--- branches/SAMBA_4_0/source/torture/libnet/libnet_lookup.c	2005-06-21 20:19:19 UTC (rev 7815)
+++ branches/SAMBA_4_0/source/torture/libnet/libnet_lookup.c	2005-06-21 20:22:38 UTC (rev 7816)
@@ -32,21 +32,71 @@
 	TALLOC_CTX *mem_ctx;
 	struct libnet_Lookup lookup;
 	const char address[16];
-	const char* methods[] = { "wins", "bcast", NULL };	
+	const char** methods = lp_name_resolve_order();
 
-	mem_ctx = talloc_init("test_userinfo");
+	mem_ctx = talloc_init("test_lookup");
 
 	lookup.in.hostname = lp_netbios_name();
-	lookup.in.methods  = NULL;
-	lookup.in.type     = NBT_NAME_SERVER;
+	lookup.in.methods  = lp_name_resolve_order();
+	lookup.in.type     = NBT_NAME_CLIENT;
 	lookup.out.address = (const char**)&address;
 
 	status = libnet_Lookup(mem_ctx, &lookup);
 
 	if (!NT_STATUS_IS_OK(status)) {
+		printf("Couldn't lookup name %s: %s\n", lookup.in.hostname, nt_errstr(status));
+		return False;
+	}
+
+	return True;
+}
+
+
+BOOL torture_lookup_host(void)
+{
+	NTSTATUS status;
+	TALLOC_CTX *mem_ctx;
+	struct libnet_Lookup lookup;
+	const char address[16];
+	const char** methods = lp_name_resolve_order();
+
+	mem_ctx = talloc_init("test_lookup_host");
+
+	lookup.in.hostname = lp_netbios_name();
+	lookup.in.methods  = lp_name_resolve_order();
+	lookup.out.address = (const char**)&address;
+
+	status = libnet_LookupHost(mem_ctx, &lookup);
+
+	if (!NT_STATUS_IS_OK(status)) {
 		printf("Couldn't lookup host %s: %s\n", lookup.in.hostname, nt_errstr(status));
 		return False;
 	}
 
 	return True;
 }
+
+
+BOOL torture_lookup_pdc(void)
+{
+	NTSTATUS status;
+	TALLOC_CTX *mem_ctx;
+	struct libnet_Lookup lookup;
+	const char address[16];
+	const char** methods = lp_name_resolve_order();
+
+	mem_ctx = talloc_init("test_lookup_pdc");
+
+	lookup.in.hostname = lp_workgroup();
+	lookup.in.methods  = lp_name_resolve_order();
+	lookup.out.address = (const char**)&address;
+
+	status = libnet_LookupPdc(mem_ctx, &lookup);
+
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("Couldn't lookup pdc %s: %s\n", lookup.in.hostname, nt_errstr(status));
+		return False;
+	}
+
+	return True;
+}

Modified: branches/SAMBA_4_0/source/torture/torture.c
===================================================================
--- branches/SAMBA_4_0/source/torture/torture.c	2005-06-21 20:19:19 UTC (rev 7815)
+++ branches/SAMBA_4_0/source/torture/torture.c	2005-06-21 20:22:38 UTC (rev 7816)
@@ -2343,6 +2343,8 @@
 	{"NET-USERDEL", torture_userdel, 0},
 	{"NET-DOMOPEN", torture_domainopen, 0},
 	{"NET-API-LOOKUP", torture_lookup, 0},
+	{"NET-API-LOOKUPHOST", torture_lookup_host, 0},
+	{"NET-API-LOOKUPPDC", torture_lookup_pdc, 0},
 	{"NET-API-CREATEUSER", torture_createuser, 0},
 
 	{NULL, NULL, 0}};



More information about the samba-cvs mailing list