diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2010-05-12 12:13:37 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2010-05-12 12:13:37 +0000 |
commit | a30c4a7d2b8d990da1db10b7bbdb6b90dd9fb2b5 (patch) | |
tree | b375e0a1e64d04edfaeb99465c1daac92f39938c /src/hostlist/test_gnunet_daemon_hostlist_learning.c | |
parent | aab2f42e7fc3fe7d0ad7b9a4a5e8b4bc42c78505 (diff) | |
download | gnunet-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.c | 39 |
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 | ||
72 | static struct PeerContext learn_peer; | 72 | static struct PeerContext learn_peer; |
73 | 73 | ||
74 | static struct GNUNET_STATISTICS_GetHandle * download_stats; | ||
75 | static struct GNUNET_STATISTICS_GetHandle * urisrecv_stat; | ||
76 | static struct GNUNET_STATISTICS_GetHandle * advsent_stat; | ||
77 | |||
78 | |||
74 | static void | 79 | static void |
75 | waitpid_task (void *cls, | 80 | waitpid_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", |