aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/multicast/Makefile.am4
-rw-r--r--src/multicast/test_multicast.conf10
-rw-r--r--src/multicast/test_multicast_multipeer.c77
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
35libexec_PROGRAMS = \ 35libexec_PROGRAMS = \
36 gnunet-service-multicast 36 gnunet-service-multicast \
37 $(EXP_LIBEXEC)
37 38
38gnunet_multicast_SOURCES = \ 39gnunet_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
53check_PROGRAMS = \ 53check_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]
2HOSTNAME = localhost
3
1[arm] 4[arm]
2GLOBAL_POSTFIX=-L ERROR 5GLOBAL_POSTFIX=-L ERROR
3 6
4#PREFIX = sakura -t test-multicast -e cgdb --args 7[multicast]
8#PREFIX = xterm -T peer -e gdb --args
9UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-multicast.sock
10
11[vpn]
12AUTOSTART = 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)
107static void 107static void
108timeout_task (void *cls) 108timeout_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
128int 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
130static void 146static void
131member_join_decision (void *cls, 147member_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
145static void 168static 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
199static void 220static void
200origin_replay_frag (void *cls, 221origin_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
209static void 230static void
210origin_replay_msg (void *cls, 231origin_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
221static void 242static void
222origin_request (void *cls, 243origin_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
229static void 256static void
230origin_message (void *cls, 257origin_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);