changeset 792:ad2707e54a69

* tests/dns1.c: Use BOOTP info where possible in preference to (likely incorrect!) hardcoded info. Use non-Red Hat test addresses. * tests/dns2.c: Use non-Red Hat test addresses. And don't check BOOTP-derived domainname as we don't know what it should be!
author jlarmour
date Mon, 03 Mar 2003 17:57:10 +0000
parents a2dfa8bf3c57
children d88a207838ef
files packages/net/ns/dns/current/ChangeLog packages/net/ns/dns/current/tests/dns1.c packages/net/ns/dns/current/tests/dns2.c
diffstat 3 files changed, 51 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/packages/net/ns/dns/current/ChangeLog
+++ b/packages/net/ns/dns/current/ChangeLog
@@ -1,3 +1,12 @@
+2003-03-03  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* tests/dns1.c: Use BOOTP info where possible in preference to
+	(likely incorrect!) hardcoded info. Use non-Red Hat test
+	addresses.
+
+	* tests/dns2.c: Use non-Red Hat test addresses. And don't check
+	BOOTP-derived domainname as we don't know what it should be!
+
 2003-02-24  Jonathan Larmour  <jifl@eCosCentric.com>
 
 	* cdl/dns.cdl: Add doc link.
--- a/packages/net/ns/dns/current/tests/dns1.c
+++ b/packages/net/ns/dns/current/tests/dns1.c
@@ -68,11 +68,12 @@ static cyg_handle_t thread_handle;
 #define __string(_x) #_x
 #define __xstring(_x) __string(_x)
 
-#define _DNS_IP            __xstring(172.16.19.254) // farmnet dns0 address
-#define _LOOKUP_FQDN       __xstring(dell-paw-2.cambridge.redhat.com.)
-#define _LOOKUP_DOMAINNAME __xstring(cambridge.redhat.com)
-#define _LOOKUP_HOSTNAME   __xstring(dell-paw-2)
-#define _LOOKUP_IP         __xstring(195.224.55.226)
+// Change the following if you aren't using BOOTP! It's almost certainly not right for you.
+#define _DNS_IP            __xstring(172.16.1.254) // test farm host addr
+#define _LOOKUP_FQDN       __xstring(b.root-servers.net.) // should stay the same?
+#define _LOOKUP_DOMAINNAME __xstring(root-servers.net.)
+#define _LOOKUP_HOSTNAME   __xstring(b)
+#define _LOOKUP_IP         __xstring(128.9.0.107) // must be same as _LOOKUP_FQDN
 #define _LOOKUP_IP_BAD     __xstring(10.0.0.0)
 
 void
@@ -81,26 +82,33 @@ dns_test(cyg_addrword_t p)
     struct in_addr addr;
     struct hostent *hent;
     char dn[256];
+    int i;
 
     CYG_TEST_INIT();
 
     init_all_network_interfaces();
 
-    CYG_TEST_INFO("Connecting to DNS at " _DNS_IP);
-    inet_aton(_DNS_IP, &addr);
-    CYG_TEST_CHECK(cyg_dns_res_init(&addr) == 0, "Failed to initialize resolver");
+    CYG_TEST_INFO("Starting dns1 test");
+
     setdomainname(NULL,0);
     
-    /* Expect _LOOKUP_IP as the answer. This is a CNAME lookup */
-    inet_aton(_LOOKUP_IP, &addr);
-    hent = gethostbyname(_LOOKUP_FQDN);
-    if (hent != NULL) {
-        diag_printf("PASS:<%s is %s>\n", hent->h_name, inet_ntoa(*(struct in_addr *)hent->h_addr));
-        if (0 != memcmp((void*)&addr, (void*)(hent->h_addr), sizeof(struct in_addr))) {
-          diag_printf("FAIL:<expected " _LOOKUP_FQDN " to be " _LOOKUP_IP ">\n");
+    for (i=0; i<2; i++) {
+        /* Expect _LOOKUP_IP as the answer. This is a CNAME lookup */
+        inet_aton(_LOOKUP_IP, &addr);
+        hent = gethostbyname(_LOOKUP_FQDN);
+        if (hent != NULL) {
+            diag_printf("PASS:<%s is %s>\n", hent->h_name, inet_ntoa(*(struct in_addr *)hent->h_addr));
+            if (0 != memcmp((void*)&addr, (void*)(hent->h_addr), sizeof(struct in_addr))) {
+                diag_printf("FAIL:<expected " _LOOKUP_FQDN " to be " _LOOKUP_IP ">\n");
+            }
+            break;
+        } else {
+            diag_printf("FAIL:<Asked for " _LOOKUP_FQDN ". No answer: %s>\n", hstrerror(h_errno));
+            CYG_TEST_INFO("Retrying with explicit DNS server");
+            CYG_TEST_INFO("Connecting to DNS at " _DNS_IP);
+            inet_aton(_DNS_IP, &addr);
+            CYG_TEST_CHECK(cyg_dns_res_init(&addr) == 0, "Failed to initialize resolver");
         }
-    } else {
-        diag_printf("FAIL:<Asked for " _LOOKUP_FQDN ". No answer: %s>\n", hstrerror(h_errno));
     }
 
     /* Reverse lookup the _LOOKUP_IP addres, expect _LOOKUP_FQDN
--- a/packages/net/ns/dns/current/tests/dns2.c
+++ b/packages/net/ns/dns/current/tests/dns2.c
@@ -68,11 +68,14 @@ static cyg_handle_t thread_handle;
 #define __string(_x) #_x
 #define __xstring(_x) __string(_x)
 
-#define _DNS_IP            __xstring(172.16.19.254) // farmnet dns0 address
-#define _LOOKUP_FQDN       __xstring(dell-paw-2.cambridge.redhat.com.)
-#define _LOOKUP_DOMAINNAME __xstring(cambridge.redhat.com)
-#define _LOOKUP_HOSTNAME   __xstring(dell-paw-2)
-#define _LOOKUP_IP         __xstring(195.224.55.226)
+#define USE_HARDCODED_DOMAIN 1
+
+// Change the following if you aren't using BOOTP! It's almost certainly not right for you.
+#define _DNS_IP            __xstring(172.16.1.254) // test farm host addr
+#define _LOOKUP_FQDN       __xstring(b.root-servers.net.) // should stay the same?
+#define _LOOKUP_DOMAINNAME __xstring(root-servers.net.)
+#define _LOOKUP_HOSTNAME   __xstring(b)
+#define _LOOKUP_IP         __xstring(128.9.0.107) // must be same as _LOOKUP_FQDN
 #define _LOOKUP_IP_BAD     __xstring(10.0.0.0)
 
 void
@@ -86,10 +89,15 @@ dns_test(cyg_addrword_t p)
 
     init_all_network_interfaces();
 
+    CYG_TEST_INFO("Starting dns2 test");
+
     getdomainname(dn,sizeof(dn));
     diag_printf("INFO:<DHCP said domain name is %s>\n",dn);
+#ifndef USE_HARDCODED_DOMAIN
+    // If not hard-coded we can't tell what it's _meant_ to be
     CYG_TEST_CHECK(!strncmp(dn,_LOOKUP_DOMAINNAME,sizeof(_LOOKUP_DOMAINNAME)),
                    "DHCP got the wrong domainname");
+#endif //ifdef _LOOKUP_DOMAINNAME
     
     /* Expect _LOOKUP_IP as the answer. This is a CNAME lookup */
     inet_aton(_LOOKUP_IP, &addr);
@@ -104,6 +112,10 @@ dns_test(cyg_addrword_t p)
     }
 
     /* Now just the hostname */
+#ifdef USE_HARDCODED_DOMAIN
+    // set the domain by hand if required.
+    setdomainname(_LOOKUP_DOMAINNAME, sizeof(_LOOKUP_DOMAINNAME));
+#endif //ifdef _LOOKUP_DOMAINNAME
     hent = gethostbyname(_LOOKUP_HOSTNAME);
     if (hent != NULL) {
         diag_printf("PASS:<%s is %s>\n", _LOOKUP_HOSTNAME, inet_ntoa(*(struct in_addr *)hent->h_addr));