aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-08-12 13:54:33 +0000
committerChristian Grothoff <christian@grothoff.org>2013-08-12 13:54:33 +0000
commit48d15f62ec7ab68fc8602f2a8db219de3dc7d5d6 (patch)
treeb81629aa82e13b8c9dbc5c7ebd4002d93de04a02 /src
parente1b1446ff25ce0e5cb7871a16b24e88517d10803 (diff)
downloadgnunet-48d15f62ec7ab68fc8602f2a8db219de3dc7d5d6.tar.gz
gnunet-48d15f62ec7ab68fc8602f2a8db219de3dc7d5d6.zip
-more code migration to microseconds:
Diffstat (limited to 'src')
-rw-r--r--src/transport/Makefile.am2
-rw-r--r--src/transport/gnunet-service-transport_manipulation.c145
-rw-r--r--src/transport/test_plugin_transport.c5
-rw-r--r--src/transport/test_transport_api_manipulation_cfg_peer1.conf4
-rw-r--r--src/transport/test_transport_api_manipulation_cfg_peer2.conf4
-rw-r--r--src/transport/transport.conf.in8
6 files changed, 96 insertions, 72 deletions
diff --git a/src/transport/Makefile.am b/src/transport/Makefile.am
index 358eba98b..7b900295b 100644
--- a/src/transport/Makefile.am
+++ b/src/transport/Makefile.am
@@ -593,7 +593,7 @@ test_plugin_tcp_LDADD = \
593 $(top_builddir)/src/hello/libgnunethello.la \ 593 $(top_builddir)/src/hello/libgnunethello.la \
594 $(top_builddir)/src/util/libgnunetutil.la \ 594 $(top_builddir)/src/util/libgnunetutil.la \
595 $(top_builddir)/src/transport/libgnunettransporttesting.la 595 $(top_builddir)/src/transport/libgnunettransporttesting.la
596 596
597test_plugin_udp_SOURCES = \ 597test_plugin_udp_SOURCES = \
598 test_plugin_transport.c 598 test_plugin_transport.c
599test_plugin_udp_LDADD = \ 599test_plugin_udp_LDADD = \
diff --git a/src/transport/gnunet-service-transport_manipulation.c b/src/transport/gnunet-service-transport_manipulation.c
index 0ca732d62..eb75fbb01 100644
--- a/src/transport/gnunet-service-transport_manipulation.c
+++ b/src/transport/gnunet-service-transport_manipulation.c
@@ -578,42 +578,62 @@ GST_manipulation_recv (void *cls,
578void 578void
579GST_manipulation_init (const struct GNUNET_CONFIGURATION_Handle *GST_cfg) 579GST_manipulation_init (const struct GNUNET_CONFIGURATION_Handle *GST_cfg)
580{ 580{
581 unsigned long long tmp; 581 unsigned long long tmp;
582 582 struct GNUNET_TIME_Relative delay;
583 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (GST_cfg, 583
584 "transport", "MANIPULATE_DISTANCE_IN", &tmp) && (tmp > 0)) 584 if ( (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (GST_cfg,
585 { 585 "transport",
586 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Setting inbound distance_in to %u\n", 586 "MANIPULATE_DISTANCE_IN",
587 (unsigned long long) tmp); 587 &tmp)) &&
588 set_metric (&man_handle.general, TM_RECEIVE, GNUNET_ATS_QUALITY_NET_DISTANCE, tmp); 588 (tmp > 0) )
589 } 589 {
590 590 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
591 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (GST_cfg, 591 "Setting inbound distance_in to %llu\n",
592 "transport", "MANIPULATE_DISTANCE_OUT", &tmp) && (tmp > 0)) 592 (unsigned long long) tmp);
593 { 593 set_metric (&man_handle.general, TM_RECEIVE, GNUNET_ATS_QUALITY_NET_DISTANCE, tmp);
594 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Setting outbound distance_in to %u\n", 594 }
595 (unsigned long long) tmp); 595
596 set_metric (&man_handle.general, TM_SEND, GNUNET_ATS_QUALITY_NET_DISTANCE, tmp); 596 if ( (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (GST_cfg,
597 } 597 "transport",
598 598 "MANIPULATE_DISTANCE_OUT",
599 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (GST_cfg, 599 &tmp)) &&
600 "transport", "MANIPULATE_DELAY_IN", &tmp) && (tmp > 0)) 600 (tmp > 0) )
601 { 601 {
602 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Delaying inbound traffic for %llu ms\n", 602 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
603 (unsigned long long) tmp); 603 "Setting outbound distance_in to %llu\n",
604 set_metric (&man_handle.general, TM_RECEIVE, GNUNET_ATS_QUALITY_NET_DELAY, tmp); 604 (unsigned long long) tmp);
605 } 605 set_metric (&man_handle.general, TM_SEND,
606 606 GNUNET_ATS_QUALITY_NET_DISTANCE, tmp);
607 607 }
608 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (GST_cfg, 608
609 "transport", "MANIPULATE_DELAY_OUT", &tmp) && (tmp > 0)) 609 if ( (GNUNET_OK == GNUNET_CONFIGURATION_get_value_time (GST_cfg,
610 { 610 "transport",
611 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Delaying outbound traffic for %llu ms\n", 611 "MANIPULATE_DELAY_IN",
612 (unsigned long long) tmp); 612 &delay)) &&
613 set_metric (&man_handle.general, TM_SEND, GNUNET_ATS_QUALITY_NET_DELAY, tmp); 613 (delay.rel_value_us > 0) )
614 } 614 {
615 615 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
616 man_handle.peers = GNUNET_CONTAINER_multihashmap_create (10, GNUNET_NO); 616 "Delaying inbound traffic for %s\n",
617 GNUNET_STRINGS_relative_time_to_string (delay, GNUNET_YES));
618 set_metric (&man_handle.general, TM_RECEIVE,
619 GNUNET_ATS_QUALITY_NET_DELAY,
620 delay.rel_value_us);
621 }
622 if ( (GNUNET_OK == GNUNET_CONFIGURATION_get_value_time (GST_cfg,
623 "transport",
624 "MANIPULATE_DELAY_OUT",
625 &delay)) &&
626 (delay.rel_value_us > 0) )
627 {
628 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
629 "Delaying outbound traffic for %s\n",
630 GNUNET_STRINGS_relative_time_to_string (delay, GNUNET_YES));
631 set_metric (&man_handle.general,
632 TM_SEND,
633 GNUNET_ATS_QUALITY_NET_DELAY,
634 delay.rel_value_us);
635 }
636 man_handle.peers = GNUNET_CONTAINER_multihashmap_create (10, GNUNET_NO);
617} 637}
618 638
619 639
@@ -622,33 +642,36 @@ free_tmps (void *cls,
622 const struct GNUNET_HashCode * key, 642 const struct GNUNET_HashCode * key,
623 void *value) 643 void *value)
624{ 644{
625 struct DelayQueueEntry *dqe; 645 struct DelayQueueEntry *dqe;
626 struct DelayQueueEntry *next; 646 struct DelayQueueEntry *next;
627 if (NULL != value) 647
628 { 648 if (NULL != value)
629 struct TM_Peer *tmp = (struct TM_Peer *) value; 649 {
630 if (GNUNET_YES != GNUNET_CONTAINER_multihashmap_remove (man_handle.peers, key, value)) 650 struct TM_Peer *tmp = (struct TM_Peer *) value;
631 GNUNET_break (0); 651
632 free_metric (tmp); 652 if (GNUNET_YES != GNUNET_CONTAINER_multihashmap_remove (man_handle.peers, key, value))
633 next = tmp->send_head; 653 GNUNET_break (0);
634 while (NULL != (dqe = next)) 654 free_metric (tmp);
635 { 655 next = tmp->send_head;
636 next = dqe->next; 656 while (NULL != (dqe = next))
637 GNUNET_CONTAINER_DLL_remove (tmp->send_head, tmp->send_tail, dqe); 657 {
638 if (NULL != dqe->cont) 658 next = dqe->next;
639 dqe->cont (dqe->cont_cls, GNUNET_SYSERR, dqe->msg_size, 0); 659 GNUNET_CONTAINER_DLL_remove (tmp->send_head, tmp->send_tail, dqe);
640 GNUNET_free (dqe); 660 if (NULL != dqe->cont)
641 } 661 dqe->cont (dqe->cont_cls, GNUNET_SYSERR, dqe->msg_size, 0);
642 if (GNUNET_SCHEDULER_NO_TASK != tmp->send_delay_task) 662 GNUNET_free (dqe);
643 { 663 }
644 GNUNET_SCHEDULER_cancel (tmp->send_delay_task); 664 if (GNUNET_SCHEDULER_NO_TASK != tmp->send_delay_task)
645 tmp->send_delay_task = GNUNET_SCHEDULER_NO_TASK; 665 {
646 } 666 GNUNET_SCHEDULER_cancel (tmp->send_delay_task);
647 GNUNET_free (tmp); 667 tmp->send_delay_task = GNUNET_SCHEDULER_NO_TASK;
648 } 668 }
649 return GNUNET_OK; 669 GNUNET_free (tmp);
670 }
671 return GNUNET_OK;
650} 672}
651 673
674
652/** 675/**
653 * Notify manipulation about disconnect so it can discard queued messages 676 * Notify manipulation about disconnect so it can discard queued messages
654 * 677 *
diff --git a/src/transport/test_plugin_transport.c b/src/transport/test_plugin_transport.c
index ffaad19ff..60cc3c941 100644
--- a/src/transport/test_plugin_transport.c
+++ b/src/transport/test_plugin_transport.c
@@ -197,6 +197,7 @@ end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
197{ 197{
198 struct AddressWrapper *w; 198 struct AddressWrapper *w;
199 int c = 0; 199 int c = 0;
200
200 timeout_endbadly = GNUNET_SCHEDULER_NO_TASK; 201 timeout_endbadly = GNUNET_SCHEDULER_NO_TASK;
201 if (GNUNET_SCHEDULER_NO_TASK != timeout_wait) 202 if (GNUNET_SCHEDULER_NO_TASK != timeout_wait)
202 { 203 {
@@ -350,7 +351,7 @@ env_notify_address (void *cls,
350 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 351 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
351 "Adding address of length %u\n", addrlen); 352 "Adding address of length %u\n", addrlen);
352 353
353 w = GNUNET_malloc (sizeof (struct AddressWrapper)); 354 w = GNUNET_new (struct AddressWrapper);
354 w->addr = GNUNET_malloc (addrlen); 355 w->addr = GNUNET_malloc (addrlen);
355 w->addrlen = addrlen; 356 w->addrlen = addrlen;
356 memcpy (w->addr, addr, addrlen); 357 memcpy (w->addr, addr, addrlen);
@@ -523,7 +524,6 @@ setup_plugin_environment ()
523 env.my_identity = &my_identity; 524 env.my_identity = &my_identity;
524 env.max_connections = max_connect_per_transport; 525 env.max_connections = max_connect_per_transport;
525 env.stats = stats; 526 env.stats = stats;
526
527 env.receive = &env_receive; 527 env.receive = &env_receive;
528 env.notify_address = &env_notify_address; 528 env.notify_address = &env_notify_address;
529 env.get_address_type = &env_get_address_type; 529 env.get_address_type = &env_get_address_type;
@@ -532,6 +532,7 @@ setup_plugin_environment ()
532 env.session_end = &env_session_end; 532 env.session_end = &env_session_end;
533} 533}
534 534
535
535static int 536static int
536handle_helper_message (void *cls, void *client, 537handle_helper_message (void *cls, void *client,
537 const struct GNUNET_MessageHeader *hdr) 538 const struct GNUNET_MessageHeader *hdr)
diff --git a/src/transport/test_transport_api_manipulation_cfg_peer1.conf b/src/transport/test_transport_api_manipulation_cfg_peer1.conf
index bfd01d5d8..df5d4c368 100644
--- a/src/transport/test_transport_api_manipulation_cfg_peer1.conf
+++ b/src/transport/test_transport_api_manipulation_cfg_peer1.conf
@@ -27,5 +27,5 @@ UNIXPATH = /tmp/gnunet-p1-service-peerinfo.sock
27PORT = 12001 27PORT = 12001
28UNIXPATH = /tmp/gnunet-p1-service-transport.sock 28UNIXPATH = /tmp/gnunet-p1-service-transport.sock
29PLUGINS = tcp 29PLUGINS = tcp
30MANIPULATE_DELAY_IN = 100 30MANIPULATE_DELAY_IN = 100 ms
31MANIPULATE_DELAY_OUT = 100 \ No newline at end of file 31MANIPULATE_DELAY_OUT = 100 ms \ No newline at end of file
diff --git a/src/transport/test_transport_api_manipulation_cfg_peer2.conf b/src/transport/test_transport_api_manipulation_cfg_peer2.conf
index d56e906fe..1e16f7838 100644
--- a/src/transport/test_transport_api_manipulation_cfg_peer2.conf
+++ b/src/transport/test_transport_api_manipulation_cfg_peer2.conf
@@ -27,5 +27,5 @@ UNIXPATH = /tmp/gnunet-p2-service-peerinfo.sock
27PORT = 12010 27PORT = 12010
28PLUGINS = tcp 28PLUGINS = tcp
29UNIXPATH = /tmp/gnunet-p2-service-transport.sock 29UNIXPATH = /tmp/gnunet-p2-service-transport.sock
30#MANIPULATE_DELAY_IN = 0 30#MANIPULATE_DELAY_IN = 0 ms
31#MANIPULATE_DELAY_OUT = 0 31#MANIPULATE_DELAY_OUT = 0 ms
diff --git a/src/transport/transport.conf.in b/src/transport/transport.conf.in
index d9e8e3324..fd8b5dbbb 100644
--- a/src/transport/transport.conf.in
+++ b/src/transport/transport.conf.in
@@ -26,10 +26,10 @@ UNIX_MATCH_GID = YES
26# Configuration settings related to traffic manipulation for testing purposes 26# Configuration settings related to traffic manipulation for testing purposes
27# Distance 27# Distance
28# MANIPULATE_DISTANCE_IN = 1 28# MANIPULATE_DISTANCE_IN = 1
29# MANIPULATE_DISTANCE_OUT = 1 29# MANIPULATE_DISTANCE_OUT = 1
30# Delay in ms; WARNING: to large values may lead to peers not connecting! 30# Delay; WARNING: to large values may lead to peers not connecting!
31# MANIPULATE_DELAY_IN = 1 31# MANIPULATE_DELAY_IN = 1 ms
32# MANIPULATE_DELAY_OUT = 1 32# MANIPULATE_DELAY_OUT = 1 ms
33 33
34 34
35[transport-unix] 35[transport-unix]