diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/multicast/Makefile.am | 4 | ||||
-rw-r--r-- | src/multicast/test_multicast.conf | 10 | ||||
-rw-r--r-- | src/multicast/test_multicast_multipeer.c | 77 |
3 files changed, 63 insertions, 28 deletions
diff --git a/src/multicast/Makefile.am b/src/multicast/Makefile.am index 61821d973..9abe38506 100644 --- a/src/multicast/Makefile.am +++ b/src/multicast/Makefile.am | |||
@@ -33,7 +33,8 @@ bin_PROGRAMS = \ | |||
33 | gnunet-multicast | 33 | gnunet-multicast |
34 | 34 | ||
35 | libexec_PROGRAMS = \ | 35 | libexec_PROGRAMS = \ |
36 | gnunet-service-multicast | 36 | gnunet-service-multicast \ |
37 | $(EXP_LIBEXEC) | ||
37 | 38 | ||
38 | gnunet_multicast_SOURCES = \ | 39 | gnunet_multicast_SOURCES = \ |
39 | gnunet-multicast.c | 40 | gnunet-multicast.c |
@@ -49,7 +50,6 @@ gnunet_service_multicast_LDADD = \ | |||
49 | $(top_builddir)/src/statistics/libgnunetstatistics.la \ | 50 | $(top_builddir)/src/statistics/libgnunetstatistics.la \ |
50 | $(GN_LIBINTL) | 51 | $(GN_LIBINTL) |
51 | 52 | ||
52 | |||
53 | check_PROGRAMS = \ | 53 | check_PROGRAMS = \ |
54 | test_multicast \ | 54 | test_multicast \ |
55 | test_multicast_multipeer | 55 | test_multicast_multipeer |
diff --git a/src/multicast/test_multicast.conf b/src/multicast/test_multicast.conf index 675776bbc..3081aeecc 100644 --- a/src/multicast/test_multicast.conf +++ b/src/multicast/test_multicast.conf | |||
@@ -1,4 +1,12 @@ | |||
1 | [testbed] | ||
2 | HOSTNAME = localhost | ||
3 | |||
1 | [arm] | 4 | [arm] |
2 | GLOBAL_POSTFIX=-L ERROR | 5 | GLOBAL_POSTFIX=-L ERROR |
3 | 6 | ||
4 | #PREFIX = sakura -t test-multicast -e cgdb --args | 7 | [multicast] |
8 | #PREFIX = xterm -T peer -e gdb --args | ||
9 | UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-multicast.sock | ||
10 | |||
11 | [vpn] | ||
12 | AUTOSTART = NO | ||
diff --git a/src/multicast/test_multicast_multipeer.c b/src/multicast/test_multicast_multipeer.c index 1b76737f4..0f973517d 100644 --- a/src/multicast/test_multicast_multipeer.c +++ b/src/multicast/test_multicast_multipeer.c | |||
@@ -107,7 +107,6 @@ shutdown_task (void *cls) | |||
107 | static void | 107 | static void |
108 | timeout_task (void *cls) | 108 | timeout_task (void *cls) |
109 | { | 109 | { |
110 | timeout_tid = NULL; | ||
111 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 110 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
112 | "Timeout!\n"); | 111 | "Timeout!\n"); |
113 | result = GNUNET_SYSERR; | 112 | result = GNUNET_SYSERR; |
@@ -126,6 +125,23 @@ member_join_request (void *cls, | |||
126 | 125 | ||
127 | } | 126 | } |
128 | 127 | ||
128 | int notify (void *cls, | ||
129 | size_t *data_size, | ||
130 | void *data) | ||
131 | { | ||
132 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
133 | "Member sents message to origin.\n"); | ||
134 | |||
135 | char text[] = "ping"; | ||
136 | *data_size = strlen(text); | ||
137 | GNUNET_memcpy(data, text, *data_size); | ||
138 | |||
139 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
140 | "len: %i.\n", strlen(text)); | ||
141 | |||
142 | return GNUNET_YES; | ||
143 | } | ||
144 | |||
129 | 145 | ||
130 | static void | 146 | static void |
131 | member_join_decision (void *cls, | 147 | member_join_decision (void *cls, |
@@ -135,11 +151,18 @@ member_join_decision (void *cls, | |||
135 | const struct GNUNET_PeerIdentity *relays, | 151 | const struct GNUNET_PeerIdentity *relays, |
136 | const struct GNUNET_MessageHeader *join_msg) | 152 | const struct GNUNET_MessageHeader *join_msg) |
137 | { | 153 | { |
138 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | 154 | struct GNUNET_MULTICAST_MemberTransmitHandle *req; |
155 | |||
156 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
139 | "Member received a decision from origin: %s\n", (GNUNET_YES == is_admitted)?"accepted":"rejected"); | 157 | "Member received a decision from origin: %s\n", (GNUNET_YES == is_admitted)?"accepted":"rejected"); |
140 | 158 | ||
141 | result = GNUNET_OK; | 159 | if (GNUNET_YES == is_admitted) |
142 | GNUNET_SCHEDULER_shutdown (); | 160 | { |
161 | req = GNUNET_MULTICAST_member_to_origin (member, | ||
162 | 0, | ||
163 | notify, | ||
164 | NULL); | ||
165 | } | ||
143 | } | 166 | } |
144 | 167 | ||
145 | static void | 168 | static void |
@@ -173,14 +196,12 @@ origin_join_request (void *cls, | |||
173 | 196 | ||
174 | uint8_t data_size = ntohs (join_msg->size); | 197 | uint8_t data_size = ntohs (join_msg->size); |
175 | 198 | ||
176 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | 199 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
177 | "Dizzy: Mh, got a join request...\n"); | 200 | "origin: got a join request...\n"); |
178 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | 201 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
179 | "'%s'\n", (char *)&join_msg[1]); | 202 | "member to origin: '%s'\n", (char *)&join_msg[1]); |
180 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
181 | "Dizzy: Oh, it's Bird! Let's get him in.\n"); | ||
182 | 203 | ||
183 | char data[] = "Hi, Bird. Come in!"; | 204 | char data[] = "Come in!"; |
184 | data_size = strlen (data) + 1; | 205 | data_size = strlen (data) + 1; |
185 | join_resp = GNUNET_malloc (sizeof (join_resp) + data_size); | 206 | join_resp = GNUNET_malloc (sizeof (join_resp) + data_size); |
186 | join_resp->size = htons (sizeof (join_resp) + data_size); | 207 | join_resp->size = htons (sizeof (join_resp) + data_size); |
@@ -198,21 +219,21 @@ origin_join_request (void *cls, | |||
198 | 219 | ||
199 | static void | 220 | static void |
200 | origin_replay_frag (void *cls, | 221 | origin_replay_frag (void *cls, |
201 | const struct GNUNET_CRYPTO_EcdsaPublicKey *member_pub_key, | 222 | const struct GNUNET_CRYPTO_EcdsaPublicKey *member_pub_key, |
202 | uint64_t fragment_id, | 223 | uint64_t fragment_id, |
203 | uint64_t flags, | 224 | uint64_t flags, |
204 | struct GNUNET_MULTICAST_ReplayHandle *rh) | 225 | struct GNUNET_MULTICAST_ReplayHandle *rh) |
205 | { | 226 | { |
206 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin replay fraq msg\n"); | 227 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin replay fraq msg\n"); |
207 | } | 228 | } |
208 | 229 | ||
209 | static void | 230 | static void |
210 | origin_replay_msg (void *cls, | 231 | origin_replay_msg (void *cls, |
211 | const struct GNUNET_CRYPTO_EcdsaPublicKey *member_pub_key, | 232 | const struct GNUNET_CRYPTO_EcdsaPublicKey *member_pub_key, |
212 | uint64_t message_id, | 233 | uint64_t message_id, |
213 | uint64_t fragment_offset, | 234 | uint64_t fragment_offset, |
214 | uint64_t flags, | 235 | uint64_t flags, |
215 | struct GNUNET_MULTICAST_ReplayHandle *rh) | 236 | struct GNUNET_MULTICAST_ReplayHandle *rh) |
216 | { | 237 | { |
217 | 238 | ||
218 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin replay msg\n"); | 239 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin replay msg\n"); |
@@ -220,15 +241,21 @@ origin_replay_msg (void *cls, | |||
220 | 241 | ||
221 | static void | 242 | static void |
222 | origin_request (void *cls, | 243 | origin_request (void *cls, |
223 | const struct GNUNET_MULTICAST_RequestHeader *req) | 244 | const struct GNUNET_MULTICAST_RequestHeader *req) |
224 | { | 245 | { |
225 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin request msg\n"); | 246 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin request msg\n"); |
247 | |||
248 | //FIXME: get req content and send a pong | ||
249 | //GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
250 | // "Member sent: '%s'\n", req); | ||
226 | 251 | ||
252 | result = GNUNET_OK; | ||
253 | GNUNET_SCHEDULER_shutdown (); | ||
227 | } | 254 | } |
228 | 255 | ||
229 | static void | 256 | static void |
230 | origin_message (void *cls, | 257 | origin_message (void *cls, |
231 | const struct GNUNET_MULTICAST_MessageHeader *msg) | 258 | const struct GNUNET_MULTICAST_MessageHeader *msg) |
232 | { | 259 | { |
233 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin message msg\n"); | 260 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "origin message msg\n"); |
234 | } | 261 | } |
@@ -268,8 +295,8 @@ multicast_ca1 (void *cls, | |||
268 | // Get members keys | 295 | // Get members keys |
269 | member_key = GNUNET_CRYPTO_ecdsa_key_create (); | 296 | member_key = GNUNET_CRYPTO_ecdsa_key_create (); |
270 | GNUNET_CRYPTO_ecdsa_key_get_public (member_key, &member_pub_key); | 297 | GNUNET_CRYPTO_ecdsa_key_get_public (member_key, &member_pub_key); |
271 | 298 | ||
272 | char data[] = "Whut's up, Dizzy!"; | 299 | char data[] = "Hi, can I enter?"; |
273 | uint8_t data_size = strlen (data) + 1; | 300 | uint8_t data_size = strlen (data) + 1; |
274 | join_msg = GNUNET_malloc (sizeof (join_msg) + data_size); | 301 | join_msg = GNUNET_malloc (sizeof (join_msg) + data_size); |
275 | join_msg->size = htons (sizeof (join_msg) + data_size); | 302 | join_msg->size = htons (sizeof (join_msg) + data_size); |