diff options
Diffstat (limited to 'src/hostlist/test_gnunet_daemon_hostlist_learning.c')
-rw-r--r-- | src/hostlist/test_gnunet_daemon_hostlist_learning.c | 647 |
1 files changed, 325 insertions, 322 deletions
diff --git a/src/hostlist/test_gnunet_daemon_hostlist_learning.c b/src/hostlist/test_gnunet_daemon_hostlist_learning.c index fa72ac828..f9fabab10 100644 --- a/src/hostlist/test_gnunet_daemon_hostlist_learning.c +++ b/src/hostlist/test_gnunet_daemon_hostlist_learning.c | |||
@@ -35,12 +35,14 @@ | |||
35 | /** | 35 | /** |
36 | * How long until wait until testcases fails | 36 | * How long until wait until testcases fails |
37 | */ | 37 | */ |
38 | #define TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 180) | 38 | #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 180) |
39 | 39 | ||
40 | #define CHECK_INTERVAL GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 1) | 40 | #define CHECK_INTERVAL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, \ |
41 | 1) | ||
41 | 42 | ||
42 | 43 | ||
43 | struct PeerContext { | 44 | struct PeerContext |
45 | { | ||
44 | struct GNUNET_CONFIGURATION_Handle *cfg; | 46 | struct GNUNET_CONFIGURATION_Handle *cfg; |
45 | struct GNUNET_MessageHeader *hello; | 47 | struct GNUNET_MessageHeader *hello; |
46 | struct GNUNET_CORE_Handle *core; | 48 | struct GNUNET_CORE_Handle *core; |
@@ -78,86 +80,86 @@ static struct GNUNET_STATISTICS_GetHandle *advsent_stat; | |||
78 | 80 | ||
79 | 81 | ||
80 | static void | 82 | static void |
81 | shutdown_testcase() | 83 | shutdown_testcase () |
82 | { | 84 | { |
83 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 85 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
84 | "Shutdown testcase....\n"); | 86 | "Shutdown testcase....\n"); |
85 | if (NULL != timeout_task) | 87 | if (NULL != timeout_task) |
86 | { | 88 | { |
87 | GNUNET_SCHEDULER_cancel(timeout_task); | 89 | GNUNET_SCHEDULER_cancel (timeout_task); |
88 | timeout_task = NULL; | 90 | timeout_task = NULL; |
89 | } | 91 | } |
90 | if (NULL != download_stats) | 92 | if (NULL != download_stats) |
91 | { | 93 | { |
92 | GNUNET_STATISTICS_get_cancel(download_stats); | 94 | GNUNET_STATISTICS_get_cancel (download_stats); |
93 | download_stats = NULL; | 95 | download_stats = NULL; |
94 | } | 96 | } |
95 | if (NULL != urisrecv_stat) | 97 | if (NULL != urisrecv_stat) |
96 | { | 98 | { |
97 | GNUNET_STATISTICS_get_cancel(urisrecv_stat); | 99 | GNUNET_STATISTICS_get_cancel (urisrecv_stat); |
98 | urisrecv_stat = NULL; | 100 | urisrecv_stat = NULL; |
99 | } | 101 | } |
100 | if (NULL != advsent_stat) | 102 | if (NULL != advsent_stat) |
101 | { | 103 | { |
102 | GNUNET_STATISTICS_get_cancel(advsent_stat); | 104 | GNUNET_STATISTICS_get_cancel (advsent_stat); |
103 | advsent_stat = NULL; | 105 | advsent_stat = NULL; |
104 | } | 106 | } |
105 | if (NULL != adv_peer.stats) | 107 | if (NULL != adv_peer.stats) |
106 | { | 108 | { |
107 | GNUNET_STATISTICS_destroy(adv_peer.stats, GNUNET_NO); | 109 | GNUNET_STATISTICS_destroy (adv_peer.stats, GNUNET_NO); |
108 | adv_peer.stats = NULL; | 110 | adv_peer.stats = NULL; |
109 | } | 111 | } |
110 | if (NULL != learn_peer.stats) | 112 | if (NULL != learn_peer.stats) |
111 | { | 113 | { |
112 | GNUNET_STATISTICS_destroy(learn_peer.stats, GNUNET_NO); | 114 | GNUNET_STATISTICS_destroy (learn_peer.stats, GNUNET_NO); |
113 | learn_peer.stats = NULL; | 115 | learn_peer.stats = NULL; |
114 | } | 116 | } |
115 | if (NULL != check_task) | 117 | if (NULL != check_task) |
116 | { | 118 | { |
117 | GNUNET_SCHEDULER_cancel(check_task); | 119 | GNUNET_SCHEDULER_cancel (check_task); |
118 | check_task = NULL; | 120 | check_task = NULL; |
119 | } | 121 | } |
120 | if (NULL != current_adv_uri) | 122 | if (NULL != current_adv_uri) |
121 | { | 123 | { |
122 | GNUNET_free(current_adv_uri); | 124 | GNUNET_free (current_adv_uri); |
123 | current_adv_uri = NULL; | 125 | current_adv_uri = NULL; |
124 | } | 126 | } |
125 | if (NULL != adv_peer.core) | 127 | if (NULL != adv_peer.core) |
126 | { | 128 | { |
127 | GNUNET_CORE_disconnect(adv_peer.core); | 129 | GNUNET_CORE_disconnect (adv_peer.core); |
128 | adv_peer.core = NULL; | 130 | adv_peer.core = NULL; |
129 | } | 131 | } |
130 | if (NULL != learn_peer.core) | 132 | if (NULL != learn_peer.core) |
131 | { | 133 | { |
132 | GNUNET_CORE_disconnect(learn_peer.core); | 134 | GNUNET_CORE_disconnect (learn_peer.core); |
133 | learn_peer.core = NULL; | 135 | learn_peer.core = NULL; |
134 | } | 136 | } |
135 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 137 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
136 | "Killing hostlist server ARM process.\n"); | 138 | "Killing hostlist server ARM process.\n"); |
137 | if (0 != GNUNET_OS_process_kill(adv_peer.arm_proc, | 139 | if (0 != GNUNET_OS_process_kill (adv_peer.arm_proc, |
138 | GNUNET_TERM_SIG)) | 140 | GNUNET_TERM_SIG)) |
139 | GNUNET_log_strerror(GNUNET_ERROR_TYPE_WARNING, | 141 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, |
140 | "kill"); | 142 | "kill"); |
141 | if (GNUNET_OK != | 143 | if (GNUNET_OK != |
142 | GNUNET_OS_process_wait(adv_peer.arm_proc)) | 144 | GNUNET_OS_process_wait (adv_peer.arm_proc)) |
143 | GNUNET_log_strerror(GNUNET_ERROR_TYPE_WARNING, | 145 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, |
144 | "waitpid"); | 146 | "waitpid"); |
145 | GNUNET_OS_process_destroy(adv_peer.arm_proc); | 147 | GNUNET_OS_process_destroy (adv_peer.arm_proc); |
146 | adv_peer.arm_proc = NULL; | 148 | adv_peer.arm_proc = NULL; |
147 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 149 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
148 | "Killing hostlist client ARM process.\n"); | 150 | "Killing hostlist client ARM process.\n"); |
149 | if (0 != GNUNET_OS_process_kill(learn_peer.arm_proc, | 151 | if (0 != GNUNET_OS_process_kill (learn_peer.arm_proc, |
150 | GNUNET_TERM_SIG)) | 152 | GNUNET_TERM_SIG)) |
151 | GNUNET_log_strerror(GNUNET_ERROR_TYPE_WARNING, | 153 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, |
152 | "kill"); | 154 | "kill"); |
153 | if (GNUNET_OK != | 155 | if (GNUNET_OK != |
154 | GNUNET_OS_process_wait(learn_peer.arm_proc)) | 156 | GNUNET_OS_process_wait (learn_peer.arm_proc)) |
155 | GNUNET_log_strerror(GNUNET_ERROR_TYPE_WARNING, | 157 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, |
156 | "waitpid"); | 158 | "waitpid"); |
157 | GNUNET_OS_process_destroy(learn_peer.arm_proc); | 159 | GNUNET_OS_process_destroy (learn_peer.arm_proc); |
158 | learn_peer.arm_proc = NULL; | 160 | learn_peer.arm_proc = NULL; |
159 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 161 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
160 | "Shutdown complete....\n"); | 162 | "Shutdown complete....\n"); |
161 | } | 163 | } |
162 | 164 | ||
163 | 165 | ||
@@ -165,112 +167,112 @@ shutdown_testcase() | |||
165 | * Timeout, give up. | 167 | * Timeout, give up. |
166 | */ | 168 | */ |
167 | static void | 169 | static void |
168 | timeout_error(void *cls) | 170 | timeout_error (void *cls) |
169 | { | 171 | { |
170 | timeout_task = NULL; | 172 | timeout_task = NULL; |
171 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 173 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
172 | "Timeout while executing testcase, test failed.\n"); | 174 | "Timeout while executing testcase, test failed.\n"); |
173 | timeout = GNUNET_YES; | 175 | timeout = GNUNET_YES; |
174 | shutdown_testcase(); | 176 | shutdown_testcase (); |
175 | } | 177 | } |
176 | 178 | ||
177 | 179 | ||
178 | static void | 180 | static void |
179 | process_downloads_done(void *cls, int success) | 181 | process_downloads_done (void *cls, int success) |
180 | { | 182 | { |
181 | download_stats = NULL; | 183 | download_stats = NULL; |
182 | } | 184 | } |
183 | 185 | ||
184 | 186 | ||
185 | static void | 187 | static void |
186 | do_shutdown(void *cls) | 188 | do_shutdown (void *cls) |
187 | { | 189 | { |
188 | shutdown_testcase(); | 190 | shutdown_testcase (); |
189 | } | 191 | } |
190 | 192 | ||
191 | 193 | ||
192 | static int | 194 | static int |
193 | process_downloads(void *cls, | 195 | process_downloads (void *cls, |
194 | const char *subsystem, | 196 | const char *subsystem, |
195 | const char *name, | 197 | const char *name, |
196 | uint64_t value, | 198 | uint64_t value, |
197 | int is_persistent) | 199 | int is_persistent) |
198 | { | 200 | { |
199 | if ((value >= 2) && | 201 | if ((value >= 2) && |
200 | (GNUNET_NO == learned_hostlist_downloaded)) | 202 | (GNUNET_NO == learned_hostlist_downloaded)) |
203 | { | ||
204 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
205 | "Peer has successfully downloaded advertised URI\n"); | ||
206 | learned_hostlist_downloaded = GNUNET_YES; | ||
207 | if ((learned_hostlist_saved == GNUNET_YES) && (adv_sent == GNUNET_YES)) | ||
201 | { | 208 | { |
202 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 209 | GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); |
203 | "Peer has successfully downloaded advertised URI\n"); | ||
204 | learned_hostlist_downloaded = GNUNET_YES; | ||
205 | if ((learned_hostlist_saved == GNUNET_YES) && (adv_sent == GNUNET_YES)) | ||
206 | { | ||
207 | GNUNET_SCHEDULER_add_now(&do_shutdown, NULL); | ||
208 | } | ||
209 | } | 210 | } |
211 | } | ||
210 | return GNUNET_OK; | 212 | return GNUNET_OK; |
211 | } | 213 | } |
212 | 214 | ||
213 | 215 | ||
214 | static void | 216 | static void |
215 | process_uris_recv_done(void *cls, int success) | 217 | process_uris_recv_done (void *cls, int success) |
216 | { | 218 | { |
217 | urisrecv_stat = NULL; | 219 | urisrecv_stat = NULL; |
218 | } | 220 | } |
219 | 221 | ||
220 | 222 | ||
221 | static int | 223 | static int |
222 | process_uris_recv(void *cls, | 224 | process_uris_recv (void *cls, |
223 | const char *subsystem, | 225 | const char *subsystem, |
224 | const char *name, | 226 | const char *name, |
225 | uint64_t value, | 227 | uint64_t value, |
226 | int is_persistent) | 228 | int is_persistent) |
227 | { | 229 | { |
228 | struct PeerContext *pc = cls; | 230 | struct PeerContext *pc = cls; |
229 | 231 | ||
230 | if ((pc == &learn_peer) && | 232 | if ((pc == &learn_peer) && |
231 | (value == 1) && | 233 | (value == 1) && |
232 | (learned_hostlist_saved == GNUNET_NO)) | 234 | (learned_hostlist_saved == GNUNET_NO)) |
235 | { | ||
236 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
237 | "Peer has successfully saved advertised URI\n"); | ||
238 | learned_hostlist_saved = GNUNET_YES; | ||
239 | if ((learned_hostlist_downloaded == GNUNET_YES) && | ||
240 | (adv_sent == GNUNET_YES)) | ||
233 | { | 241 | { |
234 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 242 | GNUNET_SCHEDULER_add_now (&do_shutdown, |
235 | "Peer has successfully saved advertised URI\n"); | 243 | NULL); |
236 | learned_hostlist_saved = GNUNET_YES; | ||
237 | if ((learned_hostlist_downloaded == GNUNET_YES) && | ||
238 | (adv_sent == GNUNET_YES)) | ||
239 | { | ||
240 | GNUNET_SCHEDULER_add_now(&do_shutdown, | ||
241 | NULL); | ||
242 | } | ||
243 | } | 244 | } |
245 | } | ||
244 | return GNUNET_OK; | 246 | return GNUNET_OK; |
245 | } | 247 | } |
246 | 248 | ||
247 | 249 | ||
248 | static void | 250 | static void |
249 | process_adv_sent_done(void *cls, int success) | 251 | process_adv_sent_done (void *cls, int success) |
250 | { | 252 | { |
251 | advsent_stat = NULL; | 253 | advsent_stat = NULL; |
252 | } | 254 | } |
253 | 255 | ||
254 | 256 | ||
255 | static int | 257 | static int |
256 | process_adv_sent(void *cls, | 258 | process_adv_sent (void *cls, |
257 | const char *subsystem, | 259 | const char *subsystem, |
258 | const char *name, | 260 | const char *name, |
259 | uint64_t value, | 261 | uint64_t value, |
260 | int is_persistent) | 262 | int is_persistent) |
261 | { | 263 | { |
262 | if ((value >= 1) && (adv_sent == GNUNET_NO)) | 264 | if ((value >= 1) && (adv_sent == GNUNET_NO)) |
265 | { | ||
266 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
267 | "Server has successfully sent advertisement\n"); | ||
268 | adv_sent = GNUNET_YES; | ||
269 | if ((learned_hostlist_downloaded == GNUNET_YES) && | ||
270 | (learned_hostlist_saved == GNUNET_YES)) | ||
263 | { | 271 | { |
264 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 272 | GNUNET_SCHEDULER_add_now (&do_shutdown, |
265 | "Server has successfully sent advertisement\n"); | 273 | NULL); |
266 | adv_sent = GNUNET_YES; | ||
267 | if ((learned_hostlist_downloaded == GNUNET_YES) && | ||
268 | (learned_hostlist_saved == GNUNET_YES)) | ||
269 | { | ||
270 | GNUNET_SCHEDULER_add_now(&do_shutdown, | ||
271 | NULL); | ||
272 | } | ||
273 | } | 274 | } |
275 | } | ||
274 | return GNUNET_OK; | 276 | return GNUNET_OK; |
275 | } | 277 | } |
276 | 278 | ||
@@ -279,70 +281,71 @@ process_adv_sent(void *cls, | |||
279 | * Check the server statistics regularly | 281 | * Check the server statistics regularly |
280 | */ | 282 | */ |
281 | static void | 283 | static void |
282 | check_statistics(void *cls) | 284 | check_statistics (void *cls) |
283 | { | 285 | { |
284 | char *stat; | 286 | char *stat; |
285 | 287 | ||
286 | check_task = NULL; | 288 | check_task = NULL; |
287 | GNUNET_asprintf(&stat, | 289 | GNUNET_asprintf (&stat, |
288 | gettext_noop("# advertised URI `%s' downloaded"), | 290 | gettext_noop ("# advertised URI `%s' downloaded"), |
289 | current_adv_uri); | 291 | current_adv_uri); |
290 | if (NULL != learn_peer.stats) | 292 | if (NULL != learn_peer.stats) |
291 | { | 293 | { |
292 | if (NULL != download_stats) | 294 | if (NULL != download_stats) |
293 | GNUNET_STATISTICS_get_cancel(download_stats); | 295 | GNUNET_STATISTICS_get_cancel (download_stats); |
294 | download_stats = | 296 | download_stats = |
295 | GNUNET_STATISTICS_get(learn_peer.stats, | 297 | GNUNET_STATISTICS_get (learn_peer.stats, |
296 | "hostlist", | 298 | "hostlist", |
297 | stat, | 299 | stat, |
298 | &process_downloads_done, | 300 | &process_downloads_done, |
299 | &process_downloads, | 301 | &process_downloads, |
300 | &learn_peer); | 302 | &learn_peer); |
301 | if (NULL != urisrecv_stat) | 303 | if (NULL != urisrecv_stat) |
302 | GNUNET_STATISTICS_get_cancel(urisrecv_stat); | 304 | GNUNET_STATISTICS_get_cancel (urisrecv_stat); |
303 | urisrecv_stat = | 305 | urisrecv_stat = |
304 | GNUNET_STATISTICS_get(learn_peer.stats, "hostlist", | 306 | GNUNET_STATISTICS_get (learn_peer.stats, "hostlist", |
305 | gettext_noop("# advertised hostlist URIs"), | 307 | gettext_noop ("# advertised hostlist URIs"), |
306 | &process_uris_recv_done, &process_uris_recv, | 308 | &process_uris_recv_done, &process_uris_recv, |
307 | &learn_peer); | 309 | &learn_peer); |
308 | } | 310 | } |
309 | GNUNET_free(stat); | 311 | GNUNET_free (stat); |
310 | if (NULL != adv_peer.stats) | 312 | if (NULL != adv_peer.stats) |
311 | { | 313 | { |
312 | if (NULL != advsent_stat) | 314 | if (NULL != advsent_stat) |
313 | GNUNET_STATISTICS_get_cancel(advsent_stat); | 315 | GNUNET_STATISTICS_get_cancel (advsent_stat); |
314 | advsent_stat = | 316 | advsent_stat = |
315 | GNUNET_STATISTICS_get(adv_peer.stats, "hostlist", | 317 | GNUNET_STATISTICS_get (adv_peer.stats, "hostlist", |
316 | gettext_noop("# hostlist advertisements send"), | 318 | gettext_noop ("# hostlist advertisements send"), |
317 | &process_adv_sent_done, | 319 | &process_adv_sent_done, |
318 | &process_adv_sent, | 320 | &process_adv_sent, |
319 | NULL); | 321 | NULL); |
320 | } | 322 | } |
321 | check_task = | 323 | check_task = |
322 | GNUNET_SCHEDULER_add_delayed(CHECK_INTERVAL, | 324 | GNUNET_SCHEDULER_add_delayed (CHECK_INTERVAL, |
323 | &check_statistics, | 325 | &check_statistics, |
324 | NULL); | 326 | NULL); |
325 | } | 327 | } |
326 | 328 | ||
327 | 329 | ||
328 | static int | 330 | static int |
329 | check_ad_arrive(void *cls, | 331 | check_ad_arrive (void *cls, |
330 | const struct GNUNET_MessageHeader *message) | 332 | const struct GNUNET_MessageHeader *message) |
331 | { | 333 | { |
332 | const char *end = (const char *)&message[1]; | 334 | const char *end = (const char *) &message[1]; |
333 | 335 | ||
334 | if ('\0' != end[ntohs(message->size) - sizeof(struct GNUNET_MessageHeader) - 1]) | 336 | if ('\0' != end[ntohs (message->size) - sizeof(struct GNUNET_MessageHeader) |
335 | { | 337 | - 1]) |
336 | GNUNET_break(0); | 338 | { |
337 | return GNUNET_SYSERR; | 339 | GNUNET_break (0); |
338 | } | 340 | return GNUNET_SYSERR; |
341 | } | ||
339 | return GNUNET_OK; | 342 | return GNUNET_OK; |
340 | } | 343 | } |
341 | 344 | ||
342 | 345 | ||
343 | static void | 346 | static void |
344 | handle_ad_arrive(void *cls, | 347 | handle_ad_arrive (void *cls, |
345 | const struct GNUNET_MessageHeader *message) | 348 | const struct GNUNET_MessageHeader *message) |
346 | { | 349 | { |
347 | char *hostname; | 350 | char *hostname; |
348 | char *expected_uri; | 351 | char *expected_uri; |
@@ -350,132 +353,132 @@ handle_ad_arrive(void *cls, | |||
350 | const char *end; | 353 | const char *end; |
351 | 354 | ||
352 | if (GNUNET_SYSERR == | 355 | if (GNUNET_SYSERR == |
353 | GNUNET_CONFIGURATION_get_value_number(adv_peer.cfg, | 356 | GNUNET_CONFIGURATION_get_value_number (adv_peer.cfg, |
354 | "HOSTLIST", | 357 | "HOSTLIST", |
355 | "HTTPPORT", | 358 | "HTTPPORT", |
356 | &port)) | 359 | &port)) |
357 | { | 360 | { |
358 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 361 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
359 | "Could not read advertising server's configuration\n"); | 362 | "Could not read advertising server's configuration\n"); |
360 | return; | 363 | return; |
361 | } | 364 | } |
362 | 365 | ||
363 | if (GNUNET_SYSERR == | 366 | if (GNUNET_SYSERR == |
364 | GNUNET_CONFIGURATION_get_value_string(adv_peer.cfg, | 367 | GNUNET_CONFIGURATION_get_value_string (adv_peer.cfg, |
365 | "HOSTLIST", | 368 | "HOSTLIST", |
366 | "EXTERNAL_DNS_NAME", | 369 | "EXTERNAL_DNS_NAME", |
367 | &hostname)) | 370 | &hostname)) |
368 | hostname = GNUNET_RESOLVER_local_fqdn_get(); | 371 | hostname = GNUNET_RESOLVER_local_fqdn_get (); |
369 | GNUNET_asprintf(&expected_uri, | 372 | GNUNET_asprintf (&expected_uri, |
370 | "http://%s:%u/", | 373 | "http://%s:%u/", |
371 | hostname != NULL ? hostname : "localhost", | 374 | hostname != NULL ? hostname : "localhost", |
372 | (unsigned int)port); | 375 | (unsigned int) port); |
373 | end = (const char *)&message[1]; | 376 | end = (const char *) &message[1]; |
374 | current_adv_uri = GNUNET_strdup(end); | 377 | current_adv_uri = GNUNET_strdup (end); |
375 | if (0 == strcmp(expected_uri, | 378 | if (0 == strcmp (expected_uri, |
376 | current_adv_uri)) | 379 | current_adv_uri)) |
377 | { | 380 | { |
378 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 381 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
379 | "Received hostlist advertisement with URI `%s' as expected\n", | 382 | "Received hostlist advertisement with URI `%s' as expected\n", |
380 | current_adv_uri); | 383 | current_adv_uri); |
381 | adv_arrived = GNUNET_YES; | 384 | adv_arrived = GNUNET_YES; |
382 | adv_sent = GNUNET_YES; | 385 | adv_sent = GNUNET_YES; |
383 | } | 386 | } |
384 | else | 387 | else |
385 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 388 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
386 | "Expected URI `%s' and received URI `%s' differ\n", | 389 | "Expected URI `%s' and received URI `%s' differ\n", |
387 | expected_uri, | 390 | expected_uri, |
388 | current_adv_uri); | 391 | current_adv_uri); |
389 | GNUNET_free(expected_uri); | 392 | GNUNET_free (expected_uri); |
390 | GNUNET_free_non_null(hostname); | 393 | GNUNET_free_non_null (hostname); |
391 | } | 394 | } |
392 | 395 | ||
393 | 396 | ||
394 | static void | 397 | static void |
395 | setup_learn_peer(struct PeerContext *p, | 398 | setup_learn_peer (struct PeerContext *p, |
396 | const char *cfgname) | 399 | const char *cfgname) |
397 | { | 400 | { |
398 | struct GNUNET_MQ_MessageHandler learn_handlers[] = { | 401 | struct GNUNET_MQ_MessageHandler learn_handlers[] = { |
399 | GNUNET_MQ_hd_var_size(ad_arrive, | 402 | GNUNET_MQ_hd_var_size (ad_arrive, |
400 | GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT, | 403 | GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT, |
401 | struct GNUNET_MessageHeader, | 404 | struct GNUNET_MessageHeader, |
402 | NULL), | 405 | NULL), |
403 | GNUNET_MQ_handler_end() | 406 | GNUNET_MQ_handler_end () |
404 | }; | 407 | }; |
405 | char *filename; | 408 | char *filename; |
406 | unsigned int result; | 409 | unsigned int result; |
407 | char *binary; | 410 | char *binary; |
408 | 411 | ||
409 | binary = GNUNET_OS_get_libexec_binary_path("gnunet-service-arm"); | 412 | binary = GNUNET_OS_get_libexec_binary_path ("gnunet-service-arm"); |
410 | p->cfg = GNUNET_CONFIGURATION_create(); | 413 | p->cfg = GNUNET_CONFIGURATION_create (); |
411 | p->arm_proc = | 414 | p->arm_proc = |
412 | GNUNET_OS_start_process(GNUNET_YES, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, | 415 | GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, |
413 | NULL, NULL, NULL, | 416 | NULL, NULL, NULL, |
414 | binary, | 417 | binary, |
415 | "gnunet-service-arm", | 418 | "gnunet-service-arm", |
416 | "-c", cfgname, NULL); | 419 | "-c", cfgname, NULL); |
417 | GNUNET_assert(GNUNET_OK == | 420 | GNUNET_assert (GNUNET_OK == |
418 | GNUNET_CONFIGURATION_load(p->cfg, | 421 | GNUNET_CONFIGURATION_load (p->cfg, |
419 | cfgname)); | 422 | cfgname)); |
420 | if (GNUNET_OK == | 423 | if (GNUNET_OK == |
421 | GNUNET_CONFIGURATION_get_value_string(p->cfg, | 424 | GNUNET_CONFIGURATION_get_value_string (p->cfg, |
422 | "HOSTLIST", | 425 | "HOSTLIST", |
423 | "HOSTLISTFILE", | 426 | "HOSTLISTFILE", |
424 | &filename)) | 427 | &filename)) |
428 | { | ||
429 | if (GNUNET_YES == GNUNET_DISK_file_test (filename)) | ||
425 | { | 430 | { |
426 | if (GNUNET_YES == GNUNET_DISK_file_test(filename)) | 431 | result = unlink (filename); |
427 | { | 432 | if (result == 0) |
428 | result = unlink(filename); | 433 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
429 | if (result == 0) | 434 | _ ("Hostlist file `%s' was removed\n"), |
430 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 435 | filename); |
431 | _("Hostlist file `%s' was removed\n"), | ||
432 | filename); | ||
433 | } | ||
434 | GNUNET_free(filename); | ||
435 | } | 436 | } |
436 | p->core = GNUNET_CORE_connect(p->cfg, | 437 | GNUNET_free (filename); |
437 | NULL, | 438 | } |
438 | NULL, | 439 | p->core = GNUNET_CORE_connect (p->cfg, |
439 | NULL, | 440 | NULL, |
440 | NULL, | 441 | NULL, |
441 | learn_handlers); | 442 | NULL, |
442 | GNUNET_assert(NULL != p->core); | 443 | NULL, |
443 | p->stats = GNUNET_STATISTICS_create("hostlist", | 444 | learn_handlers); |
444 | p->cfg); | 445 | GNUNET_assert (NULL != p->core); |
445 | GNUNET_assert(NULL != p->stats); | 446 | p->stats = GNUNET_STATISTICS_create ("hostlist", |
446 | GNUNET_free(binary); | 447 | p->cfg); |
448 | GNUNET_assert (NULL != p->stats); | ||
449 | GNUNET_free (binary); | ||
447 | } | 450 | } |
448 | 451 | ||
449 | 452 | ||
450 | static void | 453 | static void |
451 | setup_adv_peer(struct PeerContext *p, | 454 | setup_adv_peer (struct PeerContext *p, |
452 | const char *cfgname) | 455 | const char *cfgname) |
453 | { | 456 | { |
454 | char *binary; | 457 | char *binary; |
455 | 458 | ||
456 | binary = GNUNET_OS_get_libexec_binary_path("gnunet-service-arm"); | 459 | binary = GNUNET_OS_get_libexec_binary_path ("gnunet-service-arm"); |
457 | p->cfg = GNUNET_CONFIGURATION_create(); | 460 | p->cfg = GNUNET_CONFIGURATION_create (); |
458 | p->arm_proc = | 461 | p->arm_proc = |
459 | GNUNET_OS_start_process(GNUNET_YES, | 462 | GNUNET_OS_start_process (GNUNET_YES, |
460 | GNUNET_OS_INHERIT_STD_OUT_AND_ERR, | 463 | GNUNET_OS_INHERIT_STD_OUT_AND_ERR, |
461 | NULL, NULL, NULL, | 464 | NULL, NULL, NULL, |
462 | binary, | 465 | binary, |
463 | "gnunet-service-arm", | 466 | "gnunet-service-arm", |
464 | "-c", cfgname, NULL); | 467 | "-c", cfgname, NULL); |
465 | GNUNET_assert(GNUNET_OK == | 468 | GNUNET_assert (GNUNET_OK == |
466 | GNUNET_CONFIGURATION_load(p->cfg, | 469 | GNUNET_CONFIGURATION_load (p->cfg, |
467 | cfgname)); | 470 | cfgname)); |
468 | p->stats = GNUNET_STATISTICS_create("hostlist", p->cfg); | 471 | p->stats = GNUNET_STATISTICS_create ("hostlist", p->cfg); |
469 | GNUNET_assert(NULL != p->stats); | 472 | GNUNET_assert (NULL != p->stats); |
470 | GNUNET_free(binary); | 473 | GNUNET_free (binary); |
471 | } | 474 | } |
472 | 475 | ||
473 | 476 | ||
474 | static void | 477 | static void |
475 | run(void *cls, | 478 | run (void *cls, |
476 | char *const *args, | 479 | char *const *args, |
477 | const char *cfgfile, | 480 | const char *cfgfile, |
478 | const struct GNUNET_CONFIGURATION_Handle *c) | 481 | const struct GNUNET_CONFIGURATION_Handle *c) |
479 | { | 482 | { |
480 | timeout = GNUNET_NO; | 483 | timeout = GNUNET_NO; |
481 | adv_sent = GNUNET_NO; | 484 | adv_sent = GNUNET_NO; |
@@ -486,22 +489,22 @@ run(void *cls, | |||
486 | 489 | ||
487 | cfg = c; | 490 | cfg = c; |
488 | 491 | ||
489 | setup_adv_peer(&adv_peer, | 492 | setup_adv_peer (&adv_peer, |
490 | "test_learning_adv_peer.conf"); | 493 | "test_learning_adv_peer.conf"); |
491 | setup_learn_peer(&learn_peer, | 494 | setup_learn_peer (&learn_peer, |
492 | "test_learning_learn_peer.conf"); | 495 | "test_learning_learn_peer.conf"); |
493 | timeout_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT, | 496 | timeout_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, |
494 | &timeout_error, | 497 | &timeout_error, |
495 | NULL); | 498 | NULL); |
496 | check_task = | 499 | check_task = |
497 | GNUNET_SCHEDULER_add_delayed(CHECK_INTERVAL, | 500 | GNUNET_SCHEDULER_add_delayed (CHECK_INTERVAL, |
498 | &check_statistics, | 501 | &check_statistics, |
499 | NULL); | 502 | NULL); |
500 | } | 503 | } |
501 | 504 | ||
502 | 505 | ||
503 | static int | 506 | static int |
504 | check() | 507 | check () |
505 | { | 508 | { |
506 | unsigned int failed; | 509 | unsigned int failed; |
507 | 510 | ||
@@ -514,44 +517,44 @@ check() | |||
514 | GNUNET_GETOPT_OPTION_END | 517 | GNUNET_GETOPT_OPTION_END |
515 | }; | 518 | }; |
516 | 519 | ||
517 | GNUNET_PROGRAM_run((sizeof(argv) / sizeof(char *)) - 1, | 520 | GNUNET_PROGRAM_run ((sizeof(argv) / sizeof(char *)) - 1, |
518 | argv, | 521 | argv, |
519 | "test-gnunet-daemon-hostlist-learning", | 522 | "test-gnunet-daemon-hostlist-learning", |
520 | "nohelp", | 523 | "nohelp", |
521 | options, | 524 | options, |
522 | &run, | 525 | &run, |
523 | NULL); | 526 | NULL); |
524 | failed = GNUNET_NO; | 527 | failed = GNUNET_NO; |
525 | if (timeout == GNUNET_YES) | 528 | if (timeout == GNUNET_YES) |
526 | { | 529 | { |
527 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 530 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
528 | "Testcase timeout\n"); | 531 | "Testcase timeout\n"); |
529 | failed = GNUNET_YES; | 532 | failed = GNUNET_YES; |
530 | } | 533 | } |
531 | if (adv_arrived != GNUNET_YES) | 534 | if (adv_arrived != GNUNET_YES) |
532 | { | 535 | { |
533 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 536 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
534 | "Learning peer did not receive advertisement from server\n"); | 537 | "Learning peer did not receive advertisement from server\n"); |
535 | failed = GNUNET_YES; | 538 | failed = GNUNET_YES; |
536 | } | 539 | } |
537 | if (learned_hostlist_saved == GNUNET_NO) | 540 | if (learned_hostlist_saved == GNUNET_NO) |
538 | { | 541 | { |
539 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 542 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
540 | "Advertised hostlist was not saved in datastore\n"); | 543 | "Advertised hostlist was not saved in datastore\n"); |
541 | failed = GNUNET_YES; | 544 | failed = GNUNET_YES; |
542 | } | 545 | } |
543 | if (learned_hostlist_downloaded == GNUNET_NO) | 546 | if (learned_hostlist_downloaded == GNUNET_NO) |
544 | { | 547 | { |
545 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 548 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
546 | "Advertised hostlist could not be downloaded from server\n"); | 549 | "Advertised hostlist could not be downloaded from server\n"); |
547 | failed = GNUNET_YES; | 550 | failed = GNUNET_YES; |
548 | } | 551 | } |
549 | if (adv_sent == GNUNET_NO) | 552 | if (adv_sent == GNUNET_NO) |
550 | { | 553 | { |
551 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 554 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
552 | "Advertised was not sent from server to client\n"); | 555 | "Advertised was not sent from server to client\n"); |
553 | failed = GNUNET_YES; | 556 | failed = GNUNET_YES; |
554 | } | 557 | } |
555 | if (GNUNET_YES == failed) | 558 | if (GNUNET_YES == failed) |
556 | return GNUNET_YES; | 559 | return GNUNET_YES; |
557 | return GNUNET_NO; | 560 | return GNUNET_NO; |
@@ -559,29 +562,29 @@ check() | |||
559 | 562 | ||
560 | 563 | ||
561 | int | 564 | int |
562 | main(int argc, char *argv[]) | 565 | main (int argc, char *argv[]) |
563 | { | 566 | { |
564 | int ret; | 567 | int ret; |
565 | 568 | ||
566 | GNUNET_DISK_purge_cfg_dir("test_learning_learn_peer.conf", | 569 | GNUNET_DISK_purge_cfg_dir ("test_learning_learn_peer.conf", |
567 | "GNUNET_TEST_HOME"); | 570 | "GNUNET_TEST_HOME"); |
568 | GNUNET_DISK_purge_cfg_dir("test_learning_adv_peer.conf", | 571 | GNUNET_DISK_purge_cfg_dir ("test_learning_adv_peer.conf", |
569 | "GNUNET_TEST_HOME"); | 572 | "GNUNET_TEST_HOME"); |
570 | GNUNET_log_setup("test-gnunet-daemon-hostlist", | 573 | GNUNET_log_setup ("test-gnunet-daemon-hostlist", |
571 | "WARNING", | 574 | "WARNING", |
572 | NULL); | 575 | NULL); |
573 | ret = check(); | 576 | ret = check (); |
574 | GNUNET_DISK_purge_cfg_dir("test_learning_learn_peer.conf", | 577 | GNUNET_DISK_purge_cfg_dir ("test_learning_learn_peer.conf", |
575 | "GNUNET_TEST_HOME"); | 578 | "GNUNET_TEST_HOME"); |
576 | GNUNET_DISK_purge_cfg_dir("test_learning_adv_peer.conf", | 579 | GNUNET_DISK_purge_cfg_dir ("test_learning_adv_peer.conf", |
577 | "GNUNET_TEST_HOME"); | 580 | "GNUNET_TEST_HOME"); |
578 | if (GNUNET_YES == | 581 | if (GNUNET_YES == |
579 | GNUNET_DISK_file_test("hostlists_learn_peer.file")) | 582 | GNUNET_DISK_file_test ("hostlists_learn_peer.file")) |
580 | { | 583 | { |
581 | if (0 == unlink("hostlists_learn_peer.file")) | 584 | if (0 == unlink ("hostlists_learn_peer.file")) |
582 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 585 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
583 | "Hostlist file hostlists_learn_peer.file was removed\n"); | 586 | "Hostlist file hostlists_learn_peer.file was removed\n"); |
584 | } | 587 | } |
585 | return ret; | 588 | return ret; |
586 | } | 589 | } |
587 | 590 | ||