diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2011-08-11 23:32:53 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2011-08-11 23:32:53 +0000 |
commit | 96c4f70b09d1413e2fedba83b2dcbeba13c9b1f7 (patch) | |
tree | 95c39e90930e3e5a725c341093fba98b047beae2 /src/transport | |
parent | cb11932b64344bc9bde5f5163eefdfc059946c9a (diff) | |
download | gnunet-96c4f70b09d1413e2fedba83b2dcbeba13c9b1f7.tar.gz gnunet-96c4f70b09d1413e2fedba83b2dcbeba13c9b1f7.zip |
version with connecting peer working
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/test_transport_testing.c | 78 | ||||
-rw-r--r-- | src/transport/transport-testing.c | 24 |
2 files changed, 77 insertions, 25 deletions
diff --git a/src/transport/test_transport_testing.c b/src/transport/test_transport_testing.c index c67d1b27e..d9789d980 100644 --- a/src/transport/test_transport_testing.c +++ b/src/transport/test_transport_testing.c | |||
@@ -48,7 +48,44 @@ | |||
48 | */ | 48 | */ |
49 | #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30) | 49 | #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30) |
50 | 50 | ||
51 | static struct PeerContext * p; | 51 | GNUNET_SCHEDULER_TaskIdentifier timeout_task; |
52 | |||
53 | static struct PeerContext * p1; | ||
54 | static struct PeerContext * p2; | ||
55 | |||
56 | static int connected = GNUNET_NO; | ||
57 | |||
58 | static int ret = 0; | ||
59 | |||
60 | static void | ||
61 | end () | ||
62 | { | ||
63 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); | ||
64 | |||
65 | if (timeout_task != GNUNET_SCHEDULER_NO_TASK) | ||
66 | GNUNET_SCHEDULER_cancel(timeout_task); | ||
67 | |||
68 | GNUNET_TRANSPORT_TESTING_stop_peer(p1); | ||
69 | GNUNET_TRANSPORT_TESTING_stop_peer(p2); | ||
70 | } | ||
71 | |||
72 | static void | ||
73 | end_badly () | ||
74 | { | ||
75 | timeout_task = GNUNET_SCHEDULER_NO_TASK; | ||
76 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); | ||
77 | |||
78 | GNUNET_TRANSPORT_TESTING_stop_peer(p1); | ||
79 | GNUNET_TRANSPORT_TESTING_stop_peer(p2); | ||
80 | |||
81 | ret = GNUNET_SYSERR; | ||
82 | } | ||
83 | |||
84 | static void | ||
85 | testing_connect_cb (struct PeerContext * p1, struct PeerContext * p2, void *cls) | ||
86 | { | ||
87 | end(); | ||
88 | } | ||
52 | 89 | ||
53 | static void | 90 | static void |
54 | notify_connect (void *cls, | 91 | notify_connect (void *cls, |
@@ -58,6 +95,10 @@ notify_connect (void *cls, | |||
58 | { | 95 | { |
59 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n", | 96 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n", |
60 | GNUNET_i2s (peer)); | 97 | GNUNET_i2s (peer)); |
98 | connected++; | ||
99 | |||
100 | if (connected == 2) | ||
101 | end (); | ||
61 | } | 102 | } |
62 | 103 | ||
63 | static void | 104 | static void |
@@ -83,32 +124,43 @@ run (void *cls, | |||
83 | char *const *args, | 124 | char *const *args, |
84 | const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) | 125 | const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) |
85 | { | 126 | { |
127 | timeout_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_MINUTES, &end_badly, NULL); | ||
128 | |||
86 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting peer\n"); | 129 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting peer\n"); |
87 | p = GNUNET_TRANSPORT_TESTING_start_peer("test_quota_compliance_tcp_peer1.conf", | 130 | p1 = GNUNET_TRANSPORT_TESTING_start_peer("test_transport_api_tcp_peer1.conf", |
88 | ¬ify_receive, | 131 | ¬ify_receive, |
89 | ¬ify_connect, | 132 | ¬ify_connect, |
90 | ¬ify_disconnect, | 133 | ¬ify_disconnect, |
91 | NULL); | 134 | p1); |
92 | 135 | ||
93 | if (p != NULL) | 136 | p2 = GNUNET_TRANSPORT_TESTING_start_peer("test_transport_api_tcp_peer2.conf", |
94 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer was successfully started\n"); | 137 | ¬ify_receive, |
95 | else | 138 | ¬ify_connect, |
96 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer was not started successfully\n"); | 139 | ¬ify_disconnect, |
97 | GNUNET_assert (p != NULL); | 140 | p2); |
98 | GNUNET_assert (p->th != NULL); | ||
99 | 141 | ||
100 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peer\n"); | 142 | if (p1 != NULL) |
143 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer1 was successfully started\n"); | ||
144 | else | ||
145 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer1 was not started successfully\n"); | ||
146 | GNUNET_assert (p1 != NULL); | ||
147 | GNUNET_assert (p1->th != NULL); | ||
101 | 148 | ||
102 | GNUNET_TRANSPORT_TESTING_stop_peer(p); | 149 | if (p2 != NULL) |
150 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer2 was successfully started\n"); | ||
151 | else | ||
152 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer2 was not started successfully\n"); | ||
153 | GNUNET_assert (p2 != NULL); | ||
154 | GNUNET_assert (p2->th != NULL); | ||
103 | 155 | ||
104 | 156 | ||
157 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Connecting peers\n"); | ||
158 | GNUNET_TRANSPORT_TESTING_connect_peers(p1, p2, NULL, NULL); | ||
105 | } | 159 | } |
106 | 160 | ||
107 | int | 161 | int |
108 | main (int argc, char *argv[]) | 162 | main (int argc, char *argv[]) |
109 | { | 163 | { |
110 | int ret = 0; | ||
111 | |||
112 | GNUNET_log_setup ("test_transport_testing", | 164 | GNUNET_log_setup ("test_transport_testing", |
113 | #if VERBOSE | 165 | #if VERBOSE |
114 | "DEBUG", | 166 | "DEBUG", |
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c index 910d9a6d8..25e173b4a 100644 --- a/src/transport/transport-testing.c +++ b/src/transport/transport-testing.c | |||
@@ -40,9 +40,6 @@ notify_connect (void *cls, | |||
40 | const struct GNUNET_TRANSPORT_ATS_Information *ats, | 40 | const struct GNUNET_TRANSPORT_ATS_Information *ats, |
41 | uint32_t ats_count) | 41 | uint32_t ats_count) |
42 | { | 42 | { |
43 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' connected \n", | ||
44 | GNUNET_i2s (peer)); | ||
45 | |||
46 | struct PeerContext * p = cls; | 43 | struct PeerContext * p = cls; |
47 | if (p == NULL) | 44 | if (p == NULL) |
48 | return; | 45 | return; |
@@ -53,9 +50,6 @@ notify_connect (void *cls, | |||
53 | static void | 50 | static void |
54 | notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) | 51 | notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) |
55 | { | 52 | { |
56 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%s' disconnected \n", | ||
57 | GNUNET_i2s (peer)); | ||
58 | |||
59 | struct PeerContext * p = cls; | 53 | struct PeerContext * p = cls; |
60 | if (p == NULL) | 54 | if (p == NULL) |
61 | return; | 55 | return; |
@@ -70,8 +64,6 @@ notify_receive (void *cls, | |||
70 | const struct GNUNET_TRANSPORT_ATS_Information *ats, | 64 | const struct GNUNET_TRANSPORT_ATS_Information *ats, |
71 | uint32_t ats_count) | 65 | uint32_t ats_count) |
72 | { | 66 | { |
73 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Receiving\n"); | ||
74 | |||
75 | struct PeerContext * p = cls; | 67 | struct PeerContext * p = cls; |
76 | if (p == NULL) | 68 | if (p == NULL) |
77 | return; | 69 | return; |
@@ -97,6 +89,7 @@ exchange_hello_last (void *cls, | |||
97 | GNUNET_HELLO_get_id ((const struct GNUNET_HELLO_Message *) | 89 | GNUNET_HELLO_get_id ((const struct GNUNET_HELLO_Message *) |
98 | message, &me->id)); | 90 | message, &me->id)); |
99 | GNUNET_TRANSPORT_offer_hello (p1->th, message, NULL, NULL); | 91 | GNUNET_TRANSPORT_offer_hello (p1->th, message, NULL, NULL); |
92 | GNUNET_TRANSPORT_get_hello_cancel (me->th, &exchange_hello_last, cc); | ||
100 | } | 93 | } |
101 | 94 | ||
102 | 95 | ||
@@ -117,6 +110,7 @@ exchange_hello (void *cls, | |||
117 | (int) GNUNET_HELLO_size((const struct GNUNET_HELLO_Message *)message), | 110 | (int) GNUNET_HELLO_size((const struct GNUNET_HELLO_Message *)message), |
118 | GNUNET_i2s (&me->id)); | 111 | GNUNET_i2s (&me->id)); |
119 | GNUNET_TRANSPORT_offer_hello (p2->th, message, NULL, NULL); | 112 | GNUNET_TRANSPORT_offer_hello (p2->th, message, NULL, NULL); |
113 | GNUNET_TRANSPORT_get_hello_cancel (me->th, &exchange_hello, cc); | ||
120 | } | 114 | } |
121 | 115 | ||
122 | static void | 116 | static void |
@@ -134,9 +128,9 @@ try_connect (void *cls, | |||
134 | &p1->id); | 128 | &p1->id); |
135 | GNUNET_TRANSPORT_try_connect (p1->th, | 129 | GNUNET_TRANSPORT_try_connect (p1->th, |
136 | &p2->id); | 130 | &p2->id); |
137 | cc->tct = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, | 131 | // cc->tct = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, |
138 | &try_connect, | 132 | // &try_connect, |
139 | cc); | 133 | // cc); |
140 | } | 134 | } |
141 | 135 | ||
142 | struct PeerContext * | 136 | struct PeerContext * |
@@ -157,7 +151,13 @@ GNUNET_TRANSPORT_TESTING_start_peer (const char * cfgname, | |||
157 | GNUNET_DISK_directory_remove (p->servicehome); | 151 | GNUNET_DISK_directory_remove (p->servicehome); |
158 | p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", | 152 | p->arm_proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", |
159 | "gnunet-service-arm", | 153 | "gnunet-service-arm", |
160 | "-c", cfgname, NULL); | 154 | "-c", cfgname, |
155 | #if VERBOSE_PEERS | ||
156 | "-L", "DEBUG", | ||
157 | #else | ||
158 | "-L", "ERROR", | ||
159 | #endif | ||
160 | NULL); | ||
161 | p->nc = nc; | 161 | p->nc = nc; |
162 | p->nd = nd; | 162 | p->nd = nd; |
163 | p->rec = rec; | 163 | p->rec = rec; |