aboutsummaryrefslogtreecommitdiff
path: root/src/chat/test_chat_private.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/chat/test_chat_private.c')
-rw-r--r--src/chat/test_chat_private.c308
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
163static void 164static void
164abort_test (void *cls, 165abort_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
186static void 186static void
187timeout_kill (void *cls, 187timeout_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,
283static int 282static int
284receive_cb (void *cls, 283receive_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
330static void 329static void
331wait_until_all_ready (void *cls, 330wait_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
353static void 350static void
354set_alice_ready (void *cls, 351set_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
361static void 357static void
362set_bob_ready (void *cls, 358set_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
369static void 364static void
370disconnect_alice (void *cls, 365disconnect_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
385static void 379static void
386disconnect_bob (void *cls, 380disconnect_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
405static void 398static void
406disconnect_carol (void *cls, 399disconnect_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
478static void 469static void
479prepare_carol_for_alice_and_bob_task (void *cls, 470prepare_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
495static void 487static void
496join_carol_task (void *cls, 488join_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
538static void 529static void
539join_bob_task (void *cls, 530join_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
573static void 562static void
574join_alice_task (void *cls, 563join_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
598static void 586static void
599run (void *cls, 587run (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,
648int 631int
649main (int argc, char *argv[]) 632main (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;