/*
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
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ Affero General Public License for more details.
- 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.
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
* @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)
{
/* Resolve the same using GNUNET */
GNUNET_RESOLVER_ip_get (ROOTSERVER_NAME, AF_INET, timeout,
&check_rootserver_ip, cls);
+ GNUNET_RESOLVER_ip_get (ROOTSERVER_NAME, AF_INET, timeout,
+ &check_rootserver_ip, cls);
/*
* Success: forward lookups work as expected
}
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;
}
}