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 2, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
/**
* Handle to the core service (NULL until we've connected to it).
*/
-struct GNUNET_CORE_Handle *core;
+static struct GNUNET_CORE_Handle *core;
/**
* Handle to the peerinfo notify service (NULL until we've connected to it).
*/
-struct GNUNET_PEERINFO_NotifyContext *notify;
+static struct GNUNET_PEERINFO_NotifyContext *notify;
/**
* Our primary task for IPv4.
*/
static int advertising;
-/**
- * How many times was the hostlist advertised?
- */
-static uint64_t hostlist_adv_count;
-
/**
* Buffer for the hostlist address
*/
check_has_addr (void *cls,
const char *tname,
struct GNUNET_TIME_Absolute expiration,
- const void *addr, size_t addrlen)
+ const void *addr,
+ uint16_t addrlen)
{
int *arg = cls;
static void
host_processor (void *cls,
const struct GNUNET_PeerIdentity * peer,
- const struct GNUNET_HELLO_Message *hello,
- uint32_t trust)
+ const struct GNUNET_HELLO_Message *hello)
{
struct HostSet *results = cls;
size_t old;
static size_t
adv_transmit_ready ( void *cls, size_t size, void *buf)
{
+ static uint64_t hostlist_adv_count;
+
size_t transmission_size;
size_t uri_size; /* Including \0 termination! */
struct GNUNET_MessageHeader header;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
" # Sent advertisement message: %u\n",
hostlist_adv_count);
- GNUNET_STATISTICS_set (stats,
- gettext_noop("# hostlist advertisements send"),
- hostlist_adv_count,
- GNUNET_NO);
+ GNUNET_STATISTICS_update (stats,
+ gettext_noop("# hostlist advertisements send"),
+ 1,
+ GNUNET_NO);
return transmission_size;
}
if (hostlist_uri == NULL)
return;
size = strlen (hostlist_uri) + 1;
- if (size + sizeof (struct GNUNET_MessageHeader) > GNUNET_SERVER_MAX_MESSAGE_SIZE)
+ if (size + sizeof (struct GNUNET_MessageHeader) >= GNUNET_SERVER_MAX_MESSAGE_SIZE)
{
GNUNET_break (0);
return;
* @param cls closure (not used)
* @param peer potential peer to connect to
* @param hello HELLO for this peer (or NULL)
- * @param trust how much we trust the peer (not used)
*/
static void
process_notify (void *cls,
const struct GNUNET_PeerIdentity *peer,
- const struct GNUNET_HELLO_Message *hello,
- uint32_t trust)
+ const struct GNUNET_HELLO_Message *hello)
{
struct HostSet *results;
#if DEBUG_HOSTLIST_SERVER
GNUNET_assert (peerinfo != NULL);
pitr = GNUNET_PEERINFO_iterate (peerinfo,
NULL,
- 0,
GNUNET_TIME_UNIT_MINUTES,
&host_processor,
results);
_("Could not access PEERINFO service. Exiting.\n"));
return GNUNET_SYSERR;
}
- if (-1 == GNUNET_CONFIGURATION_get_value_number (cfg,
- "HOSTLIST",
- "HTTPPORT",
- &port))
+ if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg,
+ "HOSTLIST",
+ "HTTPPORT",
+ &port))
return GNUNET_SYSERR;
-
+ if ( (port == 0) ||
+ (port > UINT16_MAX) )
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Invalid port number %llu. Exiting.\n"),
+ port);
+ return GNUNET_SYSERR;
+ }
if ( GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_string (cfg,
"HOSTLIST",
- "HOSTNAME",
+ "EXTERNAL_DNS_NAME",
&hostname))
hostname = GNUNET_RESOLVER_local_fqdn_get ();
GNUNET_PEERINFO_disconnect (peerinfo);
peerinfo = NULL;
}
+ cfg = NULL;
+ sched = NULL;
+ stats = NULL;
+ core = NULL;
}
/* end of hostlist-server.c */