#define VERBOSE GNUNET_NO
-/**
+/**
* Using DNS root servers to check gnunet's resolver service
* a.root-servers.net <-> 198.41.0.4 is a fix 1:1 mapping that should not change over years
* For more information have a look at IANA's website http://www.root-servers.org/
return;
if (0 == strcmp (hostname, "127.0.0.1"))
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received correct hostname `%s'.\n",
hostname);
-#endif
(*ok) &= ~4;
}
else
{
-#if DEBUG_RESOLVER
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received invalid hostname `%s'.\n",
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Received invalid hostname `%s'.\n",
hostname);
-#endif
GNUNET_break (0);
}
}
return;
if (0 == strcmp (hostname, "localhost"))
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received correct hostname `%s'.\n",
hostname);
-#endif
(*ok) &= ~2;
}
else
GNUNET_assert (sizeof (struct sockaddr_in) == salen);
if (sai->sin_addr.s_addr == htonl (INADDR_LOOPBACK))
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received correct address.\n");
-#endif
(*ok) &= ~1;
}
else
{
-#if DEBUG_RESOLVER
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received incorrect address.\n");
-#endif
+ char buf[INET_ADDRSTRLEN];
+
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Received incorrect address`%s'.\n",
+ inet_ntop (AF_INET, &sai->sin_addr, buf, sizeof (buf)));
GNUNET_break (0);
}
}
"gethostname");
return;
}
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _("Resolving our FQDN `%s'\n"),
hostname);
-#endif
host = gethostbyname (hostname);
if (NULL == host)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _("Could not resolve our FQDN : %s %u\n"), hstrerror (h_errno),
+ _("Could not resolve our FQDN: %s %u\n"), hstrerror (h_errno),
h_errno);
return;
}
if (0 == strcmp (inet_ntoa (sai->sin_addr), ROOTSERVER_IP))
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received correct rootserver ip address.\n");
-#endif
(*ok) &= ~1;
}
else
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received incorrect rootserver ip address.\n");
-#endif
GNUNET_break (0);
}
}
if (0 == strcmp (hostname, ROOTSERVER_NAME))
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received correct rootserver hostname `%s'.\n", hostname);
-#endif
(*ok) &= ~2;
}
else
{
-#if DEBUG_RESOLVER
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Received invalid rootserver hostname `%s'.\n", hostname);
-#endif
GNUNET_break (0);
}
}
if (rootserver == NULL)
{
/* Error: resolving ip addresses does not work */
-#if DEBUG_RESOLVER
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("gethostbyname() could not lookup IP address: %s\n"),
hstrerror (h_errno));
-#endif
- fprintf (stderr,
- "System seems to be off-line, will not run all DNS tests\n");
+ FPRINTF (stderr,
+ "%s", "System seems to be off-line, will not run all DNS tests\n");
*ok = 0; /* mark test as passing anyway */
return;
}
count_ips++;
if (count_ips > 1)
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"IP received range for root name server, but a root name server has only 1 IP\n");
-#endif
GNUNET_break (0);
}
(inet_ntoa (*(struct in_addr *) rootserver->h_addr_list[0]),
ROOTSERVER_IP) != 0)
{
-#if DEBUG_RESOLVER
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"IP received and IP for root name server differ\n");
-#endif
GNUNET_break (0);
}
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"System's own forward name resolution is working\n");
-#endif
-
/* Resolve the same using GNUNET */
GNUNET_RESOLVER_ip_get (ROOTSERVER_NAME, AF_INET, timeout,
&check_rootserver_ip, cls);
rootserver->h_name = "";
if (1 != inet_pton (AF_INET, ROOTSERVER_IP, &rootserver_addr))
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Could not transform root name server IP address\n");
-#endif
GNUNET_break (0);
}
if (rootserver == NULL)
{
/* Error: resolving IP addresses does not work */
-#if DEBUG_RESOLVER
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("gethostbyaddr() could not lookup hostname: %s\n"),
hstrerror (h_errno));
-#endif
GNUNET_break (0);
}
else
{
if (0 != strcmp (rootserver->h_name, ROOTSERVER_NAME))
{
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received hostname and hostname for root name server differ\n");
-#endif
GNUNET_break (0);
}
}
-#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"System's own reverse name resolution is working\n");
-#endif
-
/* Resolve the same using GNUNET */
memset (&sa, 0, sizeof (sa));
sa.sin_family = AF_INET;
pfx = GNUNET_OS_installation_get_path (GNUNET_OS_IPK_BINDIR);
GNUNET_asprintf (&fn, "%s%cgnunet-service-resolver", pfx, DIR_SEPARATOR);
GNUNET_free (pfx);
- proc = GNUNET_OS_start_process (NULL, NULL, fn, "gnunet-service-resolver",
+ proc = GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, fn, "gnunet-service-resolver",
#if VERBOSE
"-L", "DEBUG",
#endif
ok = 1;
}
GNUNET_OS_process_wait (proc);
- GNUNET_OS_process_close (proc);
+ GNUNET_OS_process_destroy (proc);
proc = NULL;
if (ok != 0)
- fprintf (stderr, "Missed some resolutions: %u\n", ok);
+ FPRINTF (stderr, "Missed some resolutions: %u\n", ok);
return ok;
}