aboutsummaryrefslogtreecommitdiff
path: root/src/hostlist/test_gnunet_daemon_hostlist_learning.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2010-05-12 12:13:37 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2010-05-12 12:13:37 +0000
commita30c4a7d2b8d990da1db10b7bbdb6b90dd9fb2b5 (patch)
treeb375e0a1e64d04edfaeb99465c1daac92f39938c /src/hostlist/test_gnunet_daemon_hostlist_learning.c
parentaab2f42e7fc3fe7d0ad7b9a4a5e8b4bc42c78505 (diff)
downloadgnunet-a30c4a7d2b8d990da1db10b7bbdb6b90dd9fb2b5.tar.gz
gnunet-a30c4a7d2b8d990da1db10b7bbdb6b90dd9fb2b5.zip
Canceling pending STATISTIC_gets prevents testcase from segfaulting (I
hope)
Diffstat (limited to 'src/hostlist/test_gnunet_daemon_hostlist_learning.c')
-rw-r--r--src/hostlist/test_gnunet_daemon_hostlist_learning.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/hostlist/test_gnunet_daemon_hostlist_learning.c b/src/hostlist/test_gnunet_daemon_hostlist_learning.c
index 2fdf120ec..cb2ca9d02 100644
--- a/src/hostlist/test_gnunet_daemon_hostlist_learning.c
+++ b/src/hostlist/test_gnunet_daemon_hostlist_learning.c
@@ -71,6 +71,11 @@ static struct PeerContext adv_peer;
71 71
72static struct PeerContext learn_peer; 72static struct PeerContext learn_peer;
73 73
74static struct GNUNET_STATISTICS_GetHandle * download_stats;
75static struct GNUNET_STATISTICS_GetHandle * urisrecv_stat;
76static struct GNUNET_STATISTICS_GetHandle * advsent_stat;
77
78
74static void 79static void
75waitpid_task (void *cls, 80waitpid_task (void *cls,
76 const struct GNUNET_SCHEDULER_TaskContext *tc) 81 const struct GNUNET_SCHEDULER_TaskContext *tc)
@@ -104,18 +109,12 @@ static void shutdown_testcase()
104 GNUNET_SCHEDULER_cancel (sched, check_task); 109 GNUNET_SCHEDULER_cancel (sched, check_task);
105 check_task = GNUNET_SCHEDULER_NO_TASK; 110 check_task = GNUNET_SCHEDULER_NO_TASK;
106 } 111 }
107 /* 112 if (NULL != download_stats)
108 if (learn_peer.stats != NULL) 113 GNUNET_STATISTICS_get_cancel (download_stats);
109 { 114 if (NULL != urisrecv_stat)
110 GNUNET_STATISTICS_destroy(learn_peer.stats, GNUNET_NO); 115 GNUNET_STATISTICS_get_cancel (urisrecv_stat);
111 } 116 if (NULL != advsent_stat)
112 if (adv_peer.stats != NULL) 117 GNUNET_STATISTICS_get_cancel (advsent_stat);
113 {
114 GNUNET_STATISTICS_destroy(adv_peer.stats, GNUNET_NO);
115 }
116 */
117
118
119 if ( NULL != current_adv_uri ) GNUNET_free (current_adv_uri); 118 if ( NULL != current_adv_uri ) GNUNET_free (current_adv_uri);
120 119
121 if (adv_peer.th != NULL) 120 if (adv_peer.th != NULL)
@@ -140,13 +139,12 @@ static void shutdown_testcase()
140 } 139 }
141 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 140 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
142 "Asking ARM to stop core services\n"); 141 "Asking ARM to stop core services\n");
143 /* 142
144 GNUNET_SCHEDULER_add_now (sched, 143 GNUNET_SCHEDULER_add_now (sched,
145 &waitpid_task, &learn_peer); 144 &waitpid_task, &learn_peer);
146*/
147 GNUNET_SCHEDULER_add_now (sched, 145 GNUNET_SCHEDULER_add_now (sched,
148 &waitpid_task, &adv_peer); 146 &waitpid_task, &adv_peer);
149 /*GNUNET_SCHEDULER_shutdown (sched);*/ 147 GNUNET_SCHEDULER_shutdown (sched);
150} 148}
151 149
152/** 150/**
@@ -170,7 +168,7 @@ process_downloads (void *cls,
170 int is_persistent) 168 int is_persistent)
171{ 169{
172 170
173 171 download_stats = NULL;
174 if ( ((struct PeerContext *) cls == &learn_peer) && (value == 2) && (learned_hostlist_downloaded == GNUNET_NO) ) 172 if ( ((struct PeerContext *) cls == &learn_peer) && (value == 2) && (learned_hostlist_downloaded == GNUNET_NO) )
175 { 173 {
176 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 174 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -189,6 +187,7 @@ process_uris_recv (void *cls,
189 uint64_t value, 187 uint64_t value,
190 int is_persistent) 188 int is_persistent)
191{ 189{
190 urisrecv_stat = NULL;
192 if ( ((struct PeerContext *) cls == &learn_peer) && (value == 1) && (learned_hostlist_saved == GNUNET_NO)) 191 if ( ((struct PeerContext *) cls == &learn_peer) && (value == 1) && (learned_hostlist_saved == GNUNET_NO))
193 { 192 {
194 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 193 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -205,6 +204,7 @@ process_adv_sent (void *cls,
205 uint64_t value, 204 uint64_t value,
206 int is_persistent) 205 int is_persistent)
207{ 206{
207 advsent_stat = NULL;
208 if ( (value >= 1) && (adv_sent == GNUNET_NO)) 208 if ( (value >= 1) && (adv_sent == GNUNET_NO))
209 { 209 {
210 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 210 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -225,7 +225,7 @@ check_statistics (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
225 GNUNET_asprintf (&stat, 225 GNUNET_asprintf (&stat,
226 gettext_noop("# advertised URI `%s' downloaded"), 226 gettext_noop("# advertised URI `%s' downloaded"),
227 current_adv_uri); 227 current_adv_uri);
228 GNUNET_STATISTICS_get (learn_peer.stats, 228 download_stats = GNUNET_STATISTICS_get (learn_peer.stats,
229 "hostlist", 229 "hostlist",
230 stat, 230 stat,
231 GNUNET_TIME_UNIT_MINUTES, 231 GNUNET_TIME_UNIT_MINUTES,
@@ -234,14 +234,14 @@ check_statistics (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
234 &learn_peer); 234 &learn_peer);
235 GNUNET_free (stat); 235 GNUNET_free (stat);
236 236
237 GNUNET_STATISTICS_get (learn_peer.stats, 237 urisrecv_stat = GNUNET_STATISTICS_get (learn_peer.stats,
238 "hostlist", 238 "hostlist",
239 gettext_noop("# advertised hostlist URIs"), 239 gettext_noop("# advertised hostlist URIs"),
240 GNUNET_TIME_UNIT_MINUTES, 240 GNUNET_TIME_UNIT_MINUTES,
241 NULL, 241 NULL,
242 &process_uris_recv, 242 &process_uris_recv,
243 &learn_peer); 243 &learn_peer);
244 GNUNET_STATISTICS_get (adv_peer.stats, 244 advsent_stat = GNUNET_STATISTICS_get (adv_peer.stats,
245 "hostlist", 245 "hostlist",
246 gettext_noop("# hostlist advertisements send"), 246 gettext_noop("# hostlist advertisements send"),
247 GNUNET_TIME_UNIT_MINUTES, 247 GNUNET_TIME_UNIT_MINUTES,
@@ -484,7 +484,6 @@ main (int argc, char *argv[])
484 484
485 int ret; 485 int ret;
486 486
487 return 0;
488 GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-hostlist-peer-1"); 487 GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-hostlist-peer-1");
489 GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-hostlist-peer-2"); 488 GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-hostlist-peer-2");
490 GNUNET_log_setup ("test-gnunet-daemon-hostlist", 489 GNUNET_log_setup ("test-gnunet-daemon-hostlist",