/*
This file is part of GNUnet.
- (C) 2009 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2009 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file resolver/test_resolver_api.c
#include "resolver.h"
+static int disable_rootserver_check;
+
+
/**
* 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
}
-static void
-check_local_fqdn (void *cls, const char *gnunet_fqdn)
-{
- int result = 0;
-
- struct hostent *host;
- char hostname[GNUNET_OS_get_hostname_max_length () + 1];
-
- if (0 != gethostname (hostname, sizeof (hostname) - 1))
- {
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
- "gethostname");
- return;
- }
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Resolving our FQDN `%s'\n",
- hostname);
- host = gethostbyname (hostname);
- if (NULL == host)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Could not resolve our FQDN: %s %u\n",
- hstrerror (h_errno),
- h_errno);
- return;
- }
-
- GNUNET_assert (0 != host);
-
- result = strcmp (host->h_name, gnunet_fqdn);
- if (0 != result)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Local resolved and resolver resolved fqdns are not equal\n");
- }
- GNUNET_assert (0 == result);
-}
-
-
static void
check_rootserver_ip (void *cls, const struct sockaddr *sa, socklen_t salen)
{
static void
-check_rootserver_name (void *cls, const char *hostname)
+check_rootserver_name (void *cls,
+ const char *hostname)
{
int *ok = cls;
}
else
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Received invalid rootserver hostname `%s', expected `%s'\n",
hostname,
ROOTSERVER_NAME);
- GNUNET_break (0);
+ GNUNET_break (disable_rootserver_check);
}
}
* Looking up our own fqdn
*/
own_fqdn = GNUNET_RESOLVER_local_fqdn_get ();
- check_local_fqdn (NULL, own_fqdn);
+ /* can't really check, only thing we can safely
+ compare against is our own identical logic... */
GNUNET_free_non_null (own_fqdn);
/*
}
/* Counting returned IP addresses */
- while (rootserver->h_addr_list[count_ips] != NULL)
+ while (NULL != rootserver->h_addr_list[count_ips])
count_ips++;
if (count_ips > 1)
{
}
rootserver =
- gethostbyaddr (&rootserver_addr,
+ gethostbyaddr ((const void *) &rootserver_addr,
sizeof (rootserver_addr),
AF_INET);
if (NULL == rootserver)
{
/* Error: resolving IP addresses does not work */
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"gethostbyaddr() could not lookup hostname: %s\n",
hstrerror (h_errno));
- GNUNET_break (0);
+ disable_rootserver_check = GNUNET_YES;
}
else
{
- if (0 != strcmp (rootserver->h_name, ROOTSERVER_NAME))
+ if (0 != strcmp (rootserver->h_name,
+ ROOTSERVER_NAME))
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Received hostname and hostname for root name server differ\n");
- GNUNET_break (0);
+ disable_rootserver_check = GNUNET_YES;
}
}