X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fhostlist%2Fhostlist-server.c;h=95272a555697f28a9b4c247a7340abc36ea572a6;hb=11489754ee4b080b31dc68471e3dc3c7ae2885ce;hp=5d8a07ef2cfe4a4e588cd836ddd13f697ba4ef82;hpb=0ea8e006d5f5ef84e31e000607bd24a23f8fc1ed;p=oweals%2Fgnunet.git diff --git a/src/hostlist/hostlist-server.c b/src/hostlist/hostlist-server.c index 5d8a07ef2..95272a555 100644 --- a/src/hostlist/hostlist-server.c +++ b/src/hostlist/hostlist-server.c @@ -4,7 +4,7 @@ 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 @@ -49,11 +49,6 @@ static struct MHD_Daemon *daemon_handle_v4; */ static const struct GNUNET_CONFIGURATION_Handle *cfg; -/** - * Our scheduler. - */ -static struct GNUNET_SCHEDULER_Handle *sched; - /** * For keeping statistics. */ @@ -109,11 +104,6 @@ struct HostSet */ static int advertising; -/** - * How many times was the hostlist advertised? - */ -static uint64_t hostlist_adv_count; - /** * Buffer for the hostlist address */ @@ -168,7 +158,7 @@ check_has_addr (void *cls, { int *arg = cls; - if (GNUNET_TIME_absolute_get_remaining (expiration).value == 0) + if (GNUNET_TIME_absolute_get_remaining (expiration).rel_value == 0) { GNUNET_STATISTICS_update (stats, gettext_noop("expired addresses encountered"), @@ -188,8 +178,7 @@ check_has_addr (void *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; @@ -345,6 +334,8 @@ access_handler_callback (void *cls, 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; @@ -372,10 +363,10 @@ adv_transmit_ready ( void *cls, size_t size, void *buf) 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; } @@ -385,15 +376,13 @@ adv_transmit_ready ( void *cls, size_t size, void *buf) * * @param cls closure * @param peer peer identity this notification is about - * @param latency reported latency of the connection with 'other' - * @param distance reported distance (DV) to 'other' + * @param atsi performance data */ static void connect_handler (void *cls, const struct GNUNET_PeerIdentity * peer, - struct GNUNET_TIME_Relative latency, - uint32_t distance) + const struct GNUNET_TRANSPORT_ATS_Information *atsi) { size_t size; @@ -402,7 +391,7 @@ connect_handler (void *cls, 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; @@ -450,13 +439,11 @@ disconnect_handler (void *cls, * @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 @@ -467,7 +454,6 @@ process_notify (void *cls, GNUNET_assert (peerinfo != NULL); pitr = GNUNET_PEERINFO_iterate (peerinfo, NULL, - 0, GNUNET_TIME_UNIT_MINUTES, &host_processor, results); @@ -540,14 +526,13 @@ prepare_daemon (struct MHD_Daemon *daemon_handle) &max)); haveto = MHD_get_timeout (daemon_handle, &timeout); if (haveto == MHD_YES) - tv.value = (uint64_t) timeout; + tv.rel_value = (uint64_t) timeout; else tv = GNUNET_TIME_UNIT_FOREVER_REL; - GNUNET_NETWORK_fdset_copy_native (wrs, &rs, max); - GNUNET_NETWORK_fdset_copy_native (wws, &ws, max); - GNUNET_NETWORK_fdset_copy_native (wes, &es, max); - ret = GNUNET_SCHEDULER_add_select (sched, - GNUNET_SCHEDULER_PRIORITY_HIGH, + GNUNET_NETWORK_fdset_copy_native (wrs, &rs, max + 1); + GNUNET_NETWORK_fdset_copy_native (wws, &ws, max + 1); + GNUNET_NETWORK_fdset_copy_native (wes, &es, max + 1); + ret = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH, GNUNET_SCHEDULER_NO_TASK, tv, wrs, @@ -569,7 +554,6 @@ prepare_daemon (struct MHD_Daemon *daemon_handle) */ int GNUNET_HOSTLIST_server_start (const struct GNUNET_CONFIGURATION_Handle *c, - struct GNUNET_SCHEDULER_Handle *s, struct GNUNET_STATISTICS_Handle *st, struct GNUNET_CORE_Handle *co, GNUNET_CORE_ConnectEventHandler *server_ch, @@ -587,10 +571,9 @@ GNUNET_HOSTLIST_server_start (const struct GNUNET_CONFIGURATION_Handle *c, else GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Advertising enabled on this hostlist server\n"); - sched = s; cfg = c; stats = st; - peerinfo = GNUNET_PEERINFO_connect (sched, cfg); + peerinfo = GNUNET_PEERINFO_connect (cfg); if (peerinfo == NULL) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -689,7 +672,7 @@ GNUNET_HOSTLIST_server_start (const struct GNUNET_CONFIGURATION_Handle *c, if (daemon_handle_v6 != NULL) hostlist_task_v6 = prepare_daemon (daemon_handle_v6); - notify = GNUNET_PEERINFO_notify ( cfg, sched, process_notify, NULL); + notify = GNUNET_PEERINFO_notify ( cfg, process_notify, NULL); return GNUNET_OK; } @@ -711,12 +694,12 @@ GNUNET_HOSTLIST_server_stop () } if (GNUNET_SCHEDULER_NO_TASK != hostlist_task_v6) { - GNUNET_SCHEDULER_cancel (sched, hostlist_task_v6); + GNUNET_SCHEDULER_cancel (hostlist_task_v6); hostlist_task_v6 = GNUNET_SCHEDULER_NO_TASK; } if (GNUNET_SCHEDULER_NO_TASK != hostlist_task_v4) { - GNUNET_SCHEDULER_cancel (sched, hostlist_task_v4); + GNUNET_SCHEDULER_cancel (hostlist_task_v4); hostlist_task_v4 = GNUNET_SCHEDULER_NO_TASK; } if (pitr != NULL) @@ -745,7 +728,6 @@ GNUNET_HOSTLIST_server_stop () peerinfo = NULL; } cfg = NULL; - sched = NULL; stats = NULL; core = NULL; }