diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2012-07-18 15:42:01 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2012-07-18 15:42:01 +0000 |
commit | 59e9b29052d1fc7813e0d3bad83457fd42ce3b3d (patch) | |
tree | beda32659bf5934eb3634edd82ae666ed36c5b58 | |
parent | 913150a8cd81a0998c34669e877b82de5176f823 (diff) | |
download | gnunet-59e9b29052d1fc7813e0d3bad83457fd42ce3b3d.tar.gz gnunet-59e9b29052d1fc7813e0d3bad83457fd42ce3b3d.zip |
peer create handling at service
-rw-r--r-- | src/testbed/gnunet-service-testbed.c | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/src/testbed/gnunet-service-testbed.c b/src/testbed/gnunet-service-testbed.c index 6aafd1b60..3fef52354 100644 --- a/src/testbed/gnunet-service-testbed.c +++ b/src/testbed/gnunet-service-testbed.c | |||
@@ -1260,6 +1260,8 @@ handle_peer_destroy (void *cls, | |||
1260 | { | 1260 | { |
1261 | GNUNET_break (0); | 1261 | GNUNET_break (0); |
1262 | /* Reply with failure event message */ | 1262 | /* Reply with failure event message */ |
1263 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | ||
1264 | return; | ||
1263 | } | 1265 | } |
1264 | GNUNET_TESTING_peer_destroy (peer_list[peer_id]->peer); | 1266 | GNUNET_TESTING_peer_destroy (peer_list[peer_id]->peer); |
1265 | GNUNET_CONFIGURATION_destroy (peer_list[peer_id]->cfg); | 1267 | GNUNET_CONFIGURATION_destroy (peer_list[peer_id]->cfg); |
@@ -1282,8 +1284,47 @@ handle_peer_destroy (void *cls, | |||
1282 | reply->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_GENERICOPSUCCESS); | 1284 | reply->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_GENERICOPSUCCESS); |
1283 | reply->header.size = htons (reply_size); | 1285 | reply->header.size = htons (reply_size); |
1284 | reply->operation_id = msg->operation_id; | 1286 | reply->operation_id = msg->operation_id; |
1285 | queue_message (client, (struct GNUNET_MessageHeader *) reply); | 1287 | queue_message (client, &reply->header); |
1286 | 1288 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | |
1289 | } | ||
1290 | |||
1291 | |||
1292 | /** | ||
1293 | * Message handler for GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER messages | ||
1294 | * | ||
1295 | * @param cls NULL | ||
1296 | * @param client identification of the client | ||
1297 | * @param message the actual message | ||
1298 | */ | ||
1299 | static void | ||
1300 | handle_peer_start (void *cls, | ||
1301 | struct GNUNET_SERVER_Client *client, | ||
1302 | const struct GNUNET_MessageHeader *message) | ||
1303 | { | ||
1304 | const struct GNUNET_TESTBED_PeerStartMessage *msg; | ||
1305 | struct GNUNET_TESTBED_PeerCreateSuccessEventMessage *reply; | ||
1306 | uint32_t peer_id; | ||
1307 | |||
1308 | GNUNET_assert (ntohs (message->size) | ||
1309 | == sizeof (struct GNUNET_TESTBED_PeerStartMessage)); | ||
1310 | msg = (const struct GNUNET_TESTBED_PeerStartMessage *) message; | ||
1311 | peer_id = ntohl (msg->peer_id); | ||
1312 | if ((peer_id >= peer_list_size) | ||
1313 | || (NULL == peer_list[peer_id]) | ||
1314 | || (GNUNET_OK != GNUNET_TESTING_peer_start (peer_list[peer_id]->peer))) | ||
1315 | { | ||
1316 | GNUNET_break (0); | ||
1317 | /* FIXME: reply with failure message */ | ||
1318 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | ||
1319 | return; | ||
1320 | } | ||
1321 | reply = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerCreateSuccessEventMessage)); | ||
1322 | reply->header.size = htons (sizeof (struct GNUNET_TESTBED_PeerCreateSuccessEventMessage)); | ||
1323 | reply->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_PEERCREATESUCCESS); | ||
1324 | reply->peer_id = htonl (peer_id); | ||
1325 | reply->operation_id = msg->operation_id; | ||
1326 | queue_message (client, &reply->header); | ||
1327 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | ||
1287 | } | 1328 | } |
1288 | 1329 | ||
1289 | 1330 | ||
@@ -1451,6 +1492,8 @@ testbed_run (void *cls, | |||
1451 | {&handle_peer_create, NULL, GNUNET_MESSAGE_TYPE_TESTBED_CREATEPEER, 0}, | 1492 | {&handle_peer_create, NULL, GNUNET_MESSAGE_TYPE_TESTBED_CREATEPEER, 0}, |
1452 | {&handle_peer_destroy, NULL, GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER, | 1493 | {&handle_peer_destroy, NULL, GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER, |
1453 | sizeof (struct GNUNET_TESTBED_PeerDestroyMessage)}, | 1494 | sizeof (struct GNUNET_TESTBED_PeerDestroyMessage)}, |
1495 | {&handle_peer_start, NULL, GNUNET_MESSAGE_TYPE_TESTBED_STARTPEER, | ||
1496 | sizeof (struct GNUNET_TESTBED_PeerStartMessage)}, | ||
1454 | {NULL} | 1497 | {NULL} |
1455 | }; | 1498 | }; |
1456 | 1499 | ||