*/
static unsigned int stat_connection_count;
+unsigned int downloaded_hellos;
/**
* Process downloaded bits by calling callback on each HELLO.
{
return total; /* ok, no data or bogus data */
}
+
+ if ( downloaded_hellos >= MAX_HELLO_PER_HOSTLISTS )
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ _("Maximum number of HELLO Messages per download reached: %u'\n"),
+ MAX_HELLO_PER_HOSTLISTS );
+ return total;
+
+ }
GNUNET_STATISTICS_update (stats,
gettext_noop ("# bytes downloaded from hostlist servers"),
(int64_t) total,
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
_("Invalid `%s' message received from hostlist at `%s'\n"),
"HELLO",
- current_url);
+ current_url);
+ stat_hellos_obtained++;
+ downloaded_hellos++;
stat_bogus_url = 1;
return total;
}
1,
GNUNET_NO);
stat_hellos_obtained++;
+ downloaded_hellos++;
GNUNET_TRANSPORT_offer_hello (transport, msg);
}
else
"HELLO",
current_url);
stat_bogus_url = GNUNET_YES;
+ stat_hellos_obtained++;
+ downloaded_hellos++;
return total;
}
memmove (download_buffer,
hostlist_to_test = NULL;
}
-
if (multi != NULL)
{
mret = curl_multi_remove_handle (multi, curl);
}
GNUNET_free_non_null (current_url);
current_url = NULL;
-
+ downloaded_hellos = 0;
stat_download_in_progress = GNUNET_NO;
}
task_download (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
- unsigned int counter;
+
int running;
struct CURLMsg *msg;
CURLMcode mret;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Ready for processing hostlist client request\n");
#endif
- counter = 0;
do
{
running = 0;
{
msg = curl_multi_info_read (multi, &running);
- counter ++;
GNUNET_break (msg != NULL);
if (msg == NULL)
break;
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
_("Download of hostlist `%s' completed.\n"),
current_url);
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ _("HELLOs recieved: %u \n"),downloaded_hellos);
stat_download_successful = GNUNET_YES;
update_hostlist();
if (GNUNET_YES == stat_testing_hostlist)
stat_download_in_progress = GNUNET_YES;
stat_download_successful = GNUNET_NO;
stat_hellos_obtained = 0;
+ downloaded_hellos = 0;
GNUNET_STATISTICS_update (stats,
gettext_noop ("# hostlist downloads initiated"),
#include "gnunet_time_lib.h"
#define MAX_NUMBER_HOSTLISTS 30
-#define MAX_HELLO_PER_HOSTLISTS 0
+#define MAX_HELLO_PER_HOSTLISTS 50
#define SAVING_INTERVALL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 30)
#define TESTING_INTERVALL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 3)
#define WAITING_INTERVALL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1)
#include "gnunet-daemon-hostlist.h"
#include "gnunet_resolver_service.h"
-#define DEBUG_HOSTLIST_SERVER GNUNET_NO
+#define DEBUG_HOSTLIST_SERVER GNUNET_YES
/**
* How often should we recalculate our response to hostlist requests?
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct HostSet *results;
-
response_task = GNUNET_SCHEDULER_NO_TASK;
results = GNUNET_malloc(sizeof(struct HostSet));
GNUNET_assert (peerinfo != NULL);
{
size_t size;
+ /* FIXME: Change this way to update the list to peerinfo_notify */
+ response_task = GNUNET_SCHEDULER_add_now (sched,
+ &update_response,
+ NULL);
+
if ( !advertising )
return;
if (hostlist_uri == NULL)
return;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Asked core to transmit advertisement message with a size of %u bytes\n",
- size);
+ "Asked core to transmit advertisement message with a size of %u bytes to peer `%s'\n",
+ size,GNUNET_i2s(peer));
if (NULL == GNUNET_CORE_notify_transmit_ready (core,
0,
GNUNET_ADV_TIMEOUT,
static struct PeerContext learn_peer;
+static struct PeerContext learn_peer2;
+
static void
waitpid_task (void *cls,
GNUNET_TRANSPORT_disconnect (learn_peer.th);
learn_peer.th = NULL;
}
+ if (learn_peer2.th != NULL)
+ {
+ GNUNET_TRANSPORT_disconnect (learn_peer2.th);
+ learn_peer2.th = NULL;
+ }
if (adv_peer.core != NULL)
{
GNUNET_CORE_disconnect (adv_peer.core);
GNUNET_CORE_disconnect (learn_peer.core);
learn_peer.core = NULL;
}
+ if (learn_peer2.core != NULL)
+ {
+ GNUNET_CORE_disconnect (learn_peer2.core);
+ learn_peer2.core = NULL;
+ }
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Asking ARM to stop core services\n");
learn_peer.arm = GNUNET_ARM_connect (learn_peer.cfg, sched, NULL);
GNUNET_ARM_stop_service (learn_peer.arm, "core", GNUNET_TIME_UNIT_SECONDS,
&stop_cb, &learn_peer);
+ learn_peer2.arm = GNUNET_ARM_connect (learn_peer2.cfg, sched, NULL);
+ GNUNET_ARM_stop_service (learn_peer2.arm, "core", GNUNET_TIME_UNIT_SECONDS,
+ &stop_cb, &learn_peer2);
adv_peer.arm = GNUNET_ARM_connect (adv_peer.cfg, sched, NULL);
GNUNET_ARM_stop_service (adv_peer.arm, "core", GNUNET_TIME_UNIT_SECONDS,
&stop_cb, &adv_peer);
setup_adv_peer (&adv_peer, "test_learning_adv_peer.conf");
setup_learn_peer (&learn_peer, "test_learning_learn_peer.conf");
+ setup_learn_peer (&learn_peer2, "test_learning_learn_peer2.conf");
+
}
WEAKRANDOM = YES
[hostlist]
-HTTPPORT = 12981s
-SERVERS = http://localhost:12980/
-OPTIONS = -b -p -a
-DEBUG = NO
+HTTPPORT = 12981
+SERVERS = http://localhost:12981/
+OPTIONS = -p -a -b -e
+#OPTIONS = -b -p -a
+DEBUG = YES
HOSTLISTFILE = hostlists_adv_peer.file
#BINARY = /home/grothoff/bin/gnunet-daemon-hostlist
[hostlist]
HTTPPORT = 12980
SERVERS = http://localhost:12981/
-OPTIONS = -b -p -e
-#DEBUG = YES
+OPTIONS = -b -e
+#OPTIONS = -b -p
+DEBUG = YES
HOSTLISTFILE = hostlists_learn_peer.file
#BINARY = /home/grothoff/bin/gnunet-daemon-hostlist
--- /dev/null
+[PATHS]
+SERVICEHOME = /tmp/test-gnunetd-hostlist-peer-3/
+DEFAULTCONFIG = test_learning_learn_peer2.conf
+[resolver]
+PORT = 32964
+
+[transport]
+PORT = 32965
+PLUGINS = tcp
+#DEBUG = YES
+
+[arm]
+PORT = 32966
+DEFAULTSERVICES = resolver transport core statistics topology hostlist
+#GLOBAL_PREFIX = xterm -e gdb -x cmd --args
+#DEBUG=NO
+
+[statistics]
+PORT = 32967
+
+[transport-tcp]
+PORT = 32968
+
+[peerinfo]
+PORT = 32969
+
+[core]
+PORT = 32970
+#DEBUG = YES
+#PREFIX = valgrind --tool=memcheck
+
+[testing]
+WEAKRANDOM = YES
+
+[hostlist]
+HTTPPORT = 32980
+SERVERS = http://localhost:12981/
+OPTIONS = -b -e
+#OPTIONS = -b -p
+DEBUG = YES
+HOSTLISTFILE = hostlists_learn_peer2.file
+#BINARY = /home/grothoff/bin/gnunet-daemon-hostlist
+
+
+[topology]
+#DEBUG = YES
+#PREFIX = valgrind --tool=memcheck