diff options
Diffstat (limited to 'src/chat/test_chat_private.c')
-rw-r--r-- | src/chat/test_chat_private.c | 308 |
1 files changed, 145 insertions, 163 deletions
diff --git a/src/chat/test_chat_private.c b/src/chat/test_chat_private.c index c14de0a88..507e333c9 100644 --- a/src/chat/test_chat_private.c +++ b/src/chat/test_chat_private.c | |||
@@ -133,11 +133,11 @@ setup_peer (struct PeerContext *p, const char *cfgname) | |||
133 | p->cfg = GNUNET_CONFIGURATION_create (); | 133 | p->cfg = GNUNET_CONFIGURATION_create (); |
134 | #if START_ARM | 134 | #if START_ARM |
135 | p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", | 135 | p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", |
136 | "gnunet-service-arm", | 136 | "gnunet-service-arm", |
137 | #if VERBOSE | 137 | #if VERBOSE |
138 | "-L", "DEBUG", | 138 | "-L", "DEBUG", |
139 | #endif | 139 | #endif |
140 | "-c", cfgname, NULL); | 140 | "-c", cfgname, NULL); |
141 | #endif | 141 | #endif |
142 | GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (p->cfg, cfgname)); | 142 | GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (p->cfg, cfgname)); |
143 | } | 143 | } |
@@ -149,10 +149,11 @@ stop_arm (struct PeerContext *p) | |||
149 | #if START_ARM | 149 | #if START_ARM |
150 | if (0 != GNUNET_OS_process_kill (p->arm_proc, SIGTERM)) | 150 | if (0 != GNUNET_OS_process_kill (p->arm_proc, SIGTERM)) |
151 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); | 151 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); |
152 | if (GNUNET_OS_process_wait(p->arm_proc) != GNUNET_OK) | 152 | if (GNUNET_OS_process_wait (p->arm_proc) != GNUNET_OK) |
153 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid"); | 153 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid"); |
154 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 154 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
155 | "ARM process %u stopped\n", GNUNET_OS_process_get_pid (p->arm_proc)); | 155 | "ARM process %u stopped\n", |
156 | GNUNET_OS_process_get_pid (p->arm_proc)); | ||
156 | GNUNET_OS_process_close (p->arm_proc); | 157 | GNUNET_OS_process_close (p->arm_proc); |
157 | p->arm_proc = NULL; | 158 | p->arm_proc = NULL; |
158 | #endif | 159 | #endif |
@@ -161,41 +162,39 @@ stop_arm (struct PeerContext *p) | |||
161 | 162 | ||
162 | 163 | ||
163 | static void | 164 | static void |
164 | abort_test (void *cls, | 165 | abort_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
165 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
166 | { | 166 | { |
167 | if (alice_room != NULL) | 167 | if (alice_room != NULL) |
168 | { | 168 | { |
169 | GNUNET_CHAT_leave_room (alice_room); | 169 | GNUNET_CHAT_leave_room (alice_room); |
170 | alice_room = NULL; | 170 | alice_room = NULL; |
171 | } | 171 | } |
172 | if (bob_room != NULL) | 172 | if (bob_room != NULL) |
173 | { | 173 | { |
174 | GNUNET_CHAT_leave_room (bob_room); | 174 | GNUNET_CHAT_leave_room (bob_room); |
175 | bob_room = NULL; | 175 | bob_room = NULL; |
176 | } | 176 | } |
177 | if (carol_room != NULL) | 177 | if (carol_room != NULL) |
178 | { | 178 | { |
179 | GNUNET_CHAT_leave_room (carol_room); | 179 | GNUNET_CHAT_leave_room (carol_room); |
180 | carol_room = NULL; | 180 | carol_room = NULL; |
181 | } | 181 | } |
182 | err = 1; | 182 | err = 1; |
183 | } | 183 | } |
184 | 184 | ||
185 | 185 | ||
186 | static void | 186 | static void |
187 | timeout_kill (void *cls, | 187 | timeout_kill (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
188 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
189 | { | 188 | { |
190 | #if VERBOSE | 189 | #if VERBOSE |
191 | printf ("Timed out, stopping the test.\n"); | 190 | printf ("Timed out, stopping the test.\n"); |
192 | #endif | 191 | #endif |
193 | kill_task = GNUNET_SCHEDULER_NO_TASK; | 192 | kill_task = GNUNET_SCHEDULER_NO_TASK; |
194 | if (wait_task != GNUNET_SCHEDULER_NO_TASK) | 193 | if (wait_task != GNUNET_SCHEDULER_NO_TASK) |
195 | { | 194 | { |
196 | GNUNET_SCHEDULER_cancel (wait_task); | 195 | GNUNET_SCHEDULER_cancel (wait_task); |
197 | wait_task = GNUNET_SCHEDULER_NO_TASK; | 196 | wait_task = GNUNET_SCHEDULER_NO_TASK; |
198 | } | 197 | } |
199 | GNUNET_SCHEDULER_add_continuation (&abort_test, NULL, | 198 | GNUNET_SCHEDULER_add_continuation (&abort_test, NULL, |
200 | GNUNET_SCHEDULER_REASON_PREREQ_DONE); | 199 | GNUNET_SCHEDULER_REASON_PREREQ_DONE); |
201 | } | 200 | } |
@@ -226,11 +225,11 @@ member_list_cb (void *cls, | |||
226 | 225 | ||
227 | #if VERBOSE | 226 | #if VERBOSE |
228 | printf ("%s - told that %s has %s\n", | 227 | printf ("%s - told that %s has %s\n", |
229 | want->me, | 228 | want->me, |
230 | member_info == NULL ? NULL | 229 | member_info == NULL ? NULL |
231 | : GNUNET_CONTAINER_meta_data_get_by_type (member_info, | 230 | : GNUNET_CONTAINER_meta_data_get_by_type (member_info, |
232 | EXTRACTOR_METATYPE_TITLE), | 231 | EXTRACTOR_METATYPE_TITLE), |
233 | member_info == NULL ? "left" : "joined"); | 232 | member_info == NULL ? "left" : "joined"); |
234 | #endif | 233 | #endif |
235 | GNUNET_CRYPTO_hash (member_id, | 234 | GNUNET_CRYPTO_hash (member_id, |
236 | sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), | 235 | sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), |
@@ -248,34 +247,34 @@ member_list_cb (void *cls, | |||
248 | GNUNET_CONTAINER_meta_data_test_equal (member_info, | 247 | GNUNET_CONTAINER_meta_data_test_equal (member_info, |
249 | want->meta2))))) && | 248 | want->meta2))))) && |
250 | (options == want->opt)) | 249 | (options == want->opt)) |
251 | { | 250 | { |
252 | /* remember Bob's public key, we need it to send private message */ | 251 | /* remember Bob's public key, we need it to send private message */ |
253 | if (NULL == bob_public_key && | 252 | if (NULL == bob_public_key && |
254 | (0 == memcmp (&bob, want->sender, sizeof (GNUNET_HashCode)))) | 253 | (0 == memcmp (&bob, want->sender, sizeof (GNUNET_HashCode)))) |
255 | bob_public_key = | 254 | bob_public_key = |
256 | GNUNET_memdup (member_id, | 255 | GNUNET_memdup (member_id, |
257 | sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded)); | 256 | sizeof (struct |
258 | if (want->sender2 != NULL) | 257 | GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded)); |
259 | { | 258 | if (want->sender2 != NULL) |
260 | /* flush alternative sender */ | ||
261 | if (0 == memcmp (&sender, want->sender, sizeof (GNUNET_HashCode))) | ||
262 | { | ||
263 | want->sender = want->sender2; | ||
264 | want->meta = want->meta2; | ||
265 | } | ||
266 | want->sender2 = NULL; | ||
267 | want->meta2 = NULL; | ||
268 | } | ||
269 | else | ||
270 | if (NULL != want->next_task) | ||
271 | GNUNET_SCHEDULER_add_now (want->next_task, want->next_task_cls); | ||
272 | } | ||
273 | else | ||
274 | { | 259 | { |
275 | GNUNET_SCHEDULER_cancel (kill_task); | 260 | /* flush alternative sender */ |
276 | kill_task = GNUNET_SCHEDULER_NO_TASK; | 261 | if (0 == memcmp (&sender, want->sender, sizeof (GNUNET_HashCode))) |
277 | GNUNET_SCHEDULER_add_now (&abort_test, NULL); | 262 | { |
263 | want->sender = want->sender2; | ||
264 | want->meta = want->meta2; | ||
265 | } | ||
266 | want->sender2 = NULL; | ||
267 | want->meta2 = NULL; | ||
278 | } | 268 | } |
269 | else if (NULL != want->next_task) | ||
270 | GNUNET_SCHEDULER_add_now (want->next_task, want->next_task_cls); | ||
271 | } | ||
272 | else | ||
273 | { | ||
274 | GNUNET_SCHEDULER_cancel (kill_task); | ||
275 | kill_task = GNUNET_SCHEDULER_NO_TASK; | ||
276 | GNUNET_SCHEDULER_add_now (&abort_test, NULL); | ||
277 | } | ||
279 | return GNUNET_OK; | 278 | return GNUNET_OK; |
280 | } | 279 | } |
281 | 280 | ||
@@ -283,7 +282,7 @@ member_list_cb (void *cls, | |||
283 | static int | 282 | static int |
284 | receive_cb (void *cls, | 283 | receive_cb (void *cls, |
285 | struct GNUNET_CHAT_Room *room, | 284 | struct GNUNET_CHAT_Room *room, |
286 | const GNUNET_HashCode *sender, | 285 | const GNUNET_HashCode * sender, |
287 | const struct GNUNET_CONTAINER_MetaData *meta, | 286 | const struct GNUNET_CONTAINER_MetaData *meta, |
288 | const char *message, | 287 | const char *message, |
289 | struct GNUNET_TIME_Absolute timestamp, | 288 | struct GNUNET_TIME_Absolute timestamp, |
@@ -311,25 +310,24 @@ receive_cb (void *cls, | |||
311 | * slightly greater | 310 | * slightly greater |
312 | */ | 311 | */ |
313 | (timestamp.abs_value >= want->timestamp.abs_value)) | 312 | (timestamp.abs_value >= want->timestamp.abs_value)) |
314 | { | 313 | { |
315 | if (NULL != want->next_task) | 314 | if (NULL != want->next_task) |
316 | GNUNET_SCHEDULER_add_now (want->next_task, want->next_task_cls); | 315 | GNUNET_SCHEDULER_add_now (want->next_task, want->next_task_cls); |
317 | } | 316 | } |
318 | else | 317 | else |
319 | { | 318 | { |
320 | GNUNET_SCHEDULER_cancel (kill_task); | 319 | GNUNET_SCHEDULER_cancel (kill_task); |
321 | kill_task = GNUNET_SCHEDULER_NO_TASK; | 320 | kill_task = GNUNET_SCHEDULER_NO_TASK; |
322 | GNUNET_SCHEDULER_cancel (finish_task); | 321 | GNUNET_SCHEDULER_cancel (finish_task); |
323 | finish_task = GNUNET_SCHEDULER_NO_TASK; | 322 | finish_task = GNUNET_SCHEDULER_NO_TASK; |
324 | GNUNET_SCHEDULER_add_now (&abort_test, NULL); | 323 | GNUNET_SCHEDULER_add_now (&abort_test, NULL); |
325 | } | 324 | } |
326 | return GNUNET_OK; | 325 | return GNUNET_OK; |
327 | } | 326 | } |
328 | 327 | ||
329 | 328 | ||
330 | static void | 329 | static void |
331 | wait_until_all_ready (void *cls, | 330 | wait_until_all_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
332 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
333 | { | 331 | { |
334 | GNUNET_SCHEDULER_Task task = cls; | 332 | GNUNET_SCHEDULER_Task task = cls; |
335 | 333 | ||
@@ -337,38 +335,34 @@ wait_until_all_ready (void *cls, | |||
337 | printf ("Waiting...\n"); | 335 | printf ("Waiting...\n"); |
338 | #endif | 336 | #endif |
339 | if (alice_ready && bob_ready) | 337 | if (alice_ready && bob_ready) |
340 | { | 338 | { |
341 | wait_task = GNUNET_SCHEDULER_NO_TASK; | 339 | wait_task = GNUNET_SCHEDULER_NO_TASK; |
342 | GNUNET_SCHEDULER_add_now (task, NULL); | 340 | GNUNET_SCHEDULER_add_now (task, NULL); |
343 | } | 341 | } |
344 | else | 342 | else |
345 | wait_task = | 343 | wait_task = |
346 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, | 344 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply |
347 | 5000), | 345 | (GNUNET_TIME_UNIT_MILLISECONDS, 5000), |
348 | &wait_until_all_ready, | 346 | &wait_until_all_ready, task); |
349 | task); | ||
350 | } | 347 | } |
351 | 348 | ||
352 | 349 | ||
353 | static void | 350 | static void |
354 | set_alice_ready (void *cls, | 351 | set_alice_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
355 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
356 | { | 352 | { |
357 | alice_ready = GNUNET_YES; | 353 | alice_ready = GNUNET_YES; |
358 | } | 354 | } |
359 | 355 | ||
360 | 356 | ||
361 | static void | 357 | static void |
362 | set_bob_ready (void *cls, | 358 | set_bob_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
363 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
364 | { | 359 | { |
365 | bob_ready = GNUNET_YES; | 360 | bob_ready = GNUNET_YES; |
366 | } | 361 | } |
367 | 362 | ||
368 | 363 | ||
369 | static void | 364 | static void |
370 | disconnect_alice (void *cls, | 365 | disconnect_alice (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
371 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
372 | { | 366 | { |
373 | #if VERBOSE | 367 | #if VERBOSE |
374 | printf ("Alice is leaving.\n"); | 368 | printf ("Alice is leaving.\n"); |
@@ -383,8 +377,7 @@ disconnect_alice (void *cls, | |||
383 | 377 | ||
384 | 378 | ||
385 | static void | 379 | static void |
386 | disconnect_bob (void *cls, | 380 | disconnect_bob (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
387 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
388 | { | 381 | { |
389 | #if VERBOSE | 382 | #if VERBOSE |
390 | printf ("Bod is leaving.\n"); | 383 | printf ("Bod is leaving.\n"); |
@@ -403,8 +396,7 @@ disconnect_bob (void *cls, | |||
403 | 396 | ||
404 | 397 | ||
405 | static void | 398 | static void |
406 | disconnect_carol (void *cls, | 399 | disconnect_carol (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
407 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
408 | { | 400 | { |
409 | #if VERBOSE | 401 | #if VERBOSE |
410 | printf ("Carol is leaving.\n"); | 402 | printf ("Carol is leaving.\n"); |
@@ -454,8 +446,7 @@ send_from_alice_to_bob (void *cls, | |||
454 | carol_wanted.next_task_cls = NULL; | 446 | carol_wanted.next_task_cls = NULL; |
455 | GNUNET_CHAT_send_message (alice_room, | 447 | GNUNET_CHAT_send_message (alice_room, |
456 | "Hi Bob!", | 448 | "Hi Bob!", |
457 | GNUNET_CHAT_MSG_PRIVATE, | 449 | GNUNET_CHAT_MSG_PRIVATE, bob_public_key, &seq); |
458 | bob_public_key, &seq); | ||
459 | finish_task = GNUNET_SCHEDULER_add_delayed (PM_TIMEOUT, | 450 | finish_task = GNUNET_SCHEDULER_add_delayed (PM_TIMEOUT, |
460 | &wait_until_all_ready, | 451 | &wait_until_all_ready, |
461 | &disconnect_carol); | 452 | &disconnect_carol); |
@@ -477,12 +468,13 @@ prepare_bob_for_alice_task (void *cls, | |||
477 | 468 | ||
478 | static void | 469 | static void |
479 | prepare_carol_for_alice_and_bob_task (void *cls, | 470 | prepare_carol_for_alice_and_bob_task (void *cls, |
480 | const struct GNUNET_SCHEDULER_TaskContext *tc) | 471 | const struct GNUNET_SCHEDULER_TaskContext |
472 | *tc) | ||
481 | { | 473 | { |
482 | carol_wanted.meta = alice_meta; | 474 | carol_wanted.meta = alice_meta; |
483 | carol_wanted.sender = &alice; | 475 | carol_wanted.sender = &alice; |
484 | /* set alternative meta/sender since we don't know from which peer | 476 | /* set alternative meta/sender since we don't know from which peer |
485 | notification will come first */ | 477 | * notification will come first */ |
486 | carol_wanted.meta2 = bob_meta; | 478 | carol_wanted.meta2 = bob_meta; |
487 | carol_wanted.sender2 = &bob; | 479 | carol_wanted.sender2 = &bob; |
488 | carol_wanted.msg = NULL; | 480 | carol_wanted.msg = NULL; |
@@ -493,8 +485,7 @@ prepare_carol_for_alice_and_bob_task (void *cls, | |||
493 | 485 | ||
494 | 486 | ||
495 | static void | 487 | static void |
496 | join_carol_task (void *cls, | 488 | join_carol_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
497 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
498 | { | 489 | { |
499 | #if VERBOSE | 490 | #if VERBOSE |
500 | printf ("Carol joining\n"); | 491 | printf ("Carol joining\n"); |
@@ -516,28 +507,27 @@ join_carol_task (void *cls, | |||
516 | carol_wanted.next_task = &prepare_carol_for_alice_and_bob_task; | 507 | carol_wanted.next_task = &prepare_carol_for_alice_and_bob_task; |
517 | carol_wanted.next_task_cls = NULL; | 508 | carol_wanted.next_task_cls = NULL; |
518 | carol_room = | 509 | carol_room = |
519 | GNUNET_CHAT_join_room (is_p2p ? p3.cfg : p1.cfg, "carol", carol_meta, | 510 | GNUNET_CHAT_join_room (is_p2p ? p3.cfg : p1.cfg, "carol", carol_meta, |
520 | "test", -1, | 511 | "test", -1, |
521 | &join_cb, &carol_wanted, | 512 | &join_cb, &carol_wanted, |
522 | &receive_cb, &carol_wanted, | 513 | &receive_cb, &carol_wanted, |
523 | &member_list_cb, &carol_wanted, | 514 | &member_list_cb, &carol_wanted, |
524 | NULL, NULL, &carol); | 515 | NULL, NULL, &carol); |
525 | if (NULL == carol_room) | 516 | if (NULL == carol_room) |
526 | { | 517 | { |
527 | GNUNET_SCHEDULER_cancel (kill_task); | 518 | GNUNET_SCHEDULER_cancel (kill_task); |
528 | kill_task = GNUNET_SCHEDULER_NO_TASK; | 519 | kill_task = GNUNET_SCHEDULER_NO_TASK; |
529 | GNUNET_CHAT_leave_room (alice_room); | 520 | GNUNET_CHAT_leave_room (alice_room); |
530 | alice_room = NULL; | 521 | alice_room = NULL; |
531 | GNUNET_CHAT_leave_room (bob_room); | 522 | GNUNET_CHAT_leave_room (bob_room); |
532 | bob_room = NULL; | 523 | bob_room = NULL; |
533 | err = 1; | 524 | err = 1; |
534 | } | 525 | } |
535 | } | 526 | } |
536 | 527 | ||
537 | 528 | ||
538 | static void | 529 | static void |
539 | join_bob_task (void *cls, | 530 | join_bob_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
540 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
541 | { | 531 | { |
542 | #if VERBOSE | 532 | #if VERBOSE |
543 | printf ("Bob joining\n"); | 533 | printf ("Bob joining\n"); |
@@ -553,26 +543,24 @@ join_bob_task (void *cls, | |||
553 | bob_wanted.next_task_cls = NULL; | 543 | bob_wanted.next_task_cls = NULL; |
554 | bob_ready = GNUNET_NO; | 544 | bob_ready = GNUNET_NO; |
555 | bob_room = | 545 | bob_room = |
556 | GNUNET_CHAT_join_room (is_p2p ? p2.cfg : p1.cfg, "bob", bob_meta, | 546 | GNUNET_CHAT_join_room (is_p2p ? p2.cfg : p1.cfg, "bob", bob_meta, |
557 | "test", -1, | 547 | "test", -1, |
558 | &join_cb, &bob_wanted, | 548 | &join_cb, &bob_wanted, |
559 | &receive_cb, &bob_wanted, | 549 | &receive_cb, &bob_wanted, |
560 | &member_list_cb, &bob_wanted, | 550 | &member_list_cb, &bob_wanted, NULL, NULL, &bob); |
561 | NULL, NULL, &bob); | ||
562 | if (NULL == bob_room) | 551 | if (NULL == bob_room) |
563 | { | 552 | { |
564 | GNUNET_SCHEDULER_cancel (kill_task); | 553 | GNUNET_SCHEDULER_cancel (kill_task); |
565 | kill_task = GNUNET_SCHEDULER_NO_TASK; | 554 | kill_task = GNUNET_SCHEDULER_NO_TASK; |
566 | GNUNET_CHAT_leave_room (alice_room); | 555 | GNUNET_CHAT_leave_room (alice_room); |
567 | alice_room = NULL; | 556 | alice_room = NULL; |
568 | err = 1; | 557 | err = 1; |
569 | } | 558 | } |
570 | } | 559 | } |
571 | 560 | ||
572 | 561 | ||
573 | static void | 562 | static void |
574 | join_alice_task (void *cls, | 563 | join_alice_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
575 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
576 | { | 564 | { |
577 | #if VERBOSE | 565 | #if VERBOSE |
578 | printf ("Alice joining\n"); | 566 | printf ("Alice joining\n"); |
@@ -580,33 +568,32 @@ join_alice_task (void *cls, | |||
580 | alice_wanted.next_task = &join_bob_task; | 568 | alice_wanted.next_task = &join_bob_task; |
581 | alice_wanted.next_task_cls = NULL; | 569 | alice_wanted.next_task_cls = NULL; |
582 | alice_room = | 570 | alice_room = |
583 | GNUNET_CHAT_join_room (p1.cfg, "alice", alice_meta, | 571 | GNUNET_CHAT_join_room (p1.cfg, "alice", alice_meta, |
584 | "test", -1, | 572 | "test", -1, |
585 | &join_cb, &alice_wanted, | 573 | &join_cb, &alice_wanted, |
586 | &receive_cb, &alice_wanted, | 574 | &receive_cb, &alice_wanted, |
587 | &member_list_cb, &alice_wanted, | 575 | &member_list_cb, &alice_wanted, |
588 | NULL, NULL, &alice); | 576 | NULL, NULL, &alice); |
589 | if (NULL == alice_room) | 577 | if (NULL == alice_room) |
590 | { | 578 | { |
591 | GNUNET_SCHEDULER_cancel (kill_task); | 579 | GNUNET_SCHEDULER_cancel (kill_task); |
592 | kill_task = GNUNET_SCHEDULER_NO_TASK; | 580 | kill_task = GNUNET_SCHEDULER_NO_TASK; |
593 | err = 1; | 581 | err = 1; |
594 | } | 582 | } |
595 | } | 583 | } |
596 | 584 | ||
597 | 585 | ||
598 | static void | 586 | static void |
599 | run (void *cls, | 587 | run (void *cls, |
600 | char *const *args, | 588 | char *const *args, |
601 | const char *cfgfile, | 589 | const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) |
602 | const struct GNUNET_CONFIGURATION_Handle *cfg) | ||
603 | { | 590 | { |
604 | if (is_p2p) | 591 | if (is_p2p) |
605 | { | 592 | { |
606 | setup_peer (&p1, "test_chat_peer1.conf"); | 593 | setup_peer (&p1, "test_chat_peer1.conf"); |
607 | setup_peer (&p2, "test_chat_peer2.conf"); | 594 | setup_peer (&p2, "test_chat_peer2.conf"); |
608 | setup_peer (&p3, "test_chat_peer3.conf"); | 595 | setup_peer (&p3, "test_chat_peer3.conf"); |
609 | } | 596 | } |
610 | else | 597 | else |
611 | setup_peer (&p1, "test_chat_data.conf"); | 598 | setup_peer (&p1, "test_chat_data.conf"); |
612 | 599 | ||
@@ -622,24 +609,20 @@ run (void *cls, | |||
622 | EXTRACTOR_METATYPE_TITLE, | 609 | EXTRACTOR_METATYPE_TITLE, |
623 | EXTRACTOR_METAFORMAT_UTF8, | 610 | EXTRACTOR_METAFORMAT_UTF8, |
624 | "text/plain", | 611 | "text/plain", |
625 | "Alice", | 612 | "Alice", strlen ("Alice") + 1); |
626 | strlen("Alice")+1); | ||
627 | bob_meta = GNUNET_CONTAINER_meta_data_create (); | 613 | bob_meta = GNUNET_CONTAINER_meta_data_create (); |
628 | GNUNET_CONTAINER_meta_data_insert (bob_meta, | 614 | GNUNET_CONTAINER_meta_data_insert (bob_meta, |
629 | "<gnunet>", | 615 | "<gnunet>", |
630 | EXTRACTOR_METATYPE_TITLE, | 616 | EXTRACTOR_METATYPE_TITLE, |
631 | EXTRACTOR_METAFORMAT_UTF8, | 617 | EXTRACTOR_METAFORMAT_UTF8, |
632 | "text/plain", | 618 | "text/plain", "Bob", strlen ("Bob") + 1); |
633 | "Bob", | ||
634 | strlen("Bob")+1); | ||
635 | carol_meta = GNUNET_CONTAINER_meta_data_create (); | 619 | carol_meta = GNUNET_CONTAINER_meta_data_create (); |
636 | GNUNET_CONTAINER_meta_data_insert (carol_meta, | 620 | GNUNET_CONTAINER_meta_data_insert (carol_meta, |
637 | "<gnunet>", | 621 | "<gnunet>", |
638 | EXTRACTOR_METATYPE_TITLE, | 622 | EXTRACTOR_METATYPE_TITLE, |
639 | EXTRACTOR_METAFORMAT_UTF8, | 623 | EXTRACTOR_METAFORMAT_UTF8, |
640 | "text/plain", | 624 | "text/plain", |
641 | "Carol", | 625 | "Carol", strlen ("Carol") + 1); |
642 | strlen("Carol")+1); | ||
643 | kill_task = GNUNET_SCHEDULER_add_delayed (KILL_TIMEOUT, &timeout_kill, NULL); | 626 | kill_task = GNUNET_SCHEDULER_add_delayed (KILL_TIMEOUT, &timeout_kill, NULL); |
644 | GNUNET_SCHEDULER_add_now (&join_alice_task, NULL); | 627 | GNUNET_SCHEDULER_add_now (&join_alice_task, NULL); |
645 | } | 628 | } |
@@ -648,7 +631,7 @@ run (void *cls, | |||
648 | int | 631 | int |
649 | main (int argc, char *argv[]) | 632 | main (int argc, char *argv[]) |
650 | { | 633 | { |
651 | char *const argvx[] = { | 634 | char *const argvx[] = { |
652 | "test-chat", | 635 | "test-chat", |
653 | "-c", | 636 | "-c", |
654 | "test_chat_data.conf", | 637 | "test_chat_data.conf", |
@@ -661,30 +644,29 @@ main (int argc, char *argv[]) | |||
661 | GNUNET_GETOPT_OPTION_END | 644 | GNUNET_GETOPT_OPTION_END |
662 | }; | 645 | }; |
663 | 646 | ||
664 | GNUNET_log_setup ("test_chat", | 647 | GNUNET_log_setup ("test_chat", |
665 | #if VERBOSE | 648 | #if VERBOSE |
666 | "DEBUG", | 649 | "DEBUG", |
667 | #else | 650 | #else |
668 | "WARNING", | 651 | "WARNING", |
669 | #endif | 652 | #endif |
670 | NULL); | 653 | NULL); |
671 | if (strstr(argv[0], "p2p") != NULL) | 654 | if (strstr (argv[0], "p2p") != NULL) |
672 | { | 655 | { |
673 | is_p2p = GNUNET_YES; | 656 | is_p2p = GNUNET_YES; |
674 | } | 657 | } |
675 | GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, | 658 | GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, |
676 | argvx, "test-chat", | 659 | argvx, "test-chat", "nohelp", options, &run, NULL); |
677 | "nohelp", options, &run, NULL); | ||
678 | stop_arm (&p1); | 660 | stop_arm (&p1); |
679 | GNUNET_CONTAINER_meta_data_destroy (alice_meta); | 661 | GNUNET_CONTAINER_meta_data_destroy (alice_meta); |
680 | GNUNET_CONTAINER_meta_data_destroy (bob_meta); | 662 | GNUNET_CONTAINER_meta_data_destroy (bob_meta); |
681 | GNUNET_CONTAINER_meta_data_destroy (carol_meta); | 663 | GNUNET_CONTAINER_meta_data_destroy (carol_meta); |
682 | if (is_p2p) | 664 | if (is_p2p) |
683 | { | 665 | { |
684 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat-peer-1/"); | 666 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat-peer-1/"); |
685 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat-peer-2/"); | 667 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat-peer-2/"); |
686 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat-peer-3/"); | 668 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat-peer-3/"); |
687 | } | 669 | } |
688 | else | 670 | else |
689 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat/"); | 671 | GNUNET_DISK_directory_remove ("/tmp/gnunet-test-chat/"); |
690 | return err; | 672 | return err; |