aboutsummaryrefslogtreecommitdiff
path: root/src/cadet/gnunet-service-cadet.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cadet/gnunet-service-cadet.c')
-rw-r--r--src/cadet/gnunet-service-cadet.c112
1 files changed, 69 insertions, 43 deletions
diff --git a/src/cadet/gnunet-service-cadet.c b/src/cadet/gnunet-service-cadet.c
index ba83fe0fc..03af3d5c0 100644
--- a/src/cadet/gnunet-service-cadet.c
+++ b/src/cadet/gnunet-service-cadet.c
@@ -580,6 +580,7 @@ handle_channel_create (void *cls,
580 if (ntohl (tcm->ccn.channel_of_client) < GNUNET_CADET_LOCAL_CHANNEL_ID_CLI) 580 if (ntohl (tcm->ccn.channel_of_client) < GNUNET_CADET_LOCAL_CHANNEL_ID_CLI)
581 { 581 {
582 /* Channel ID not in allowed range. */ 582 /* Channel ID not in allowed range. */
583 LOG (GNUNET_ERROR_TYPE_DEBUG,"Channel ID not in allowed range.");
583 GNUNET_break (0); 584 GNUNET_break (0);
584 GNUNET_SERVICE_client_drop (c->client); 585 GNUNET_SERVICE_client_drop (c->client);
585 return; 586 return;
@@ -589,6 +590,7 @@ handle_channel_create (void *cls,
589 if (NULL != ch) 590 if (NULL != ch)
590 { 591 {
591 /* Channel ID already in use. Not allowed. */ 592 /* Channel ID already in use. Not allowed. */
593 LOG (GNUNET_ERROR_TYPE_DEBUG,"Channel ID already in use. Not allowed.");
592 GNUNET_break (0); 594 GNUNET_break (0);
593 GNUNET_SERVICE_client_drop (c->client); 595 GNUNET_SERVICE_client_drop (c->client);
594 return; 596 return;
@@ -1008,6 +1010,26 @@ handle_info_tunnels (void *cls,
1008 GNUNET_SERVICE_client_continue (c->client); 1010 GNUNET_SERVICE_client_continue (c->client);
1009} 1011}
1010 1012
1013/**
1014 * Handler for client's #GNUNET_MESSAGE_TYPE_CADET_DROP_CADET_MESSAGE request.
1015 *
1016 * @param cls client Identification of the client.
1017 * @param message The actual message.
1018 */
1019static void
1020handle_drop_message (void *cls,
1021 const struct GNUNET_CADET_RequestDropCadetMessage *message)
1022{
1023 struct CadetClient *c = cls;
1024 struct CadetChannel *ch;
1025
1026 ch = lookup_channel (c,
1027 message->ccn);
1028
1029 GCCH_assign_type_to_drop(ch, message);
1030
1031 GNUNET_SERVICE_client_continue (c->client);
1032}
1011 1033
1012/** 1034/**
1013 * Callback called when a client connects to the service. 1035 * Callback called when a client connects to the service.
@@ -1305,48 +1327,52 @@ run (void *cls,
1305 * Define "main" method using service macro. 1327 * Define "main" method using service macro.
1306 */ 1328 */
1307GNUNET_SERVICE_MAIN 1329GNUNET_SERVICE_MAIN
1308 ("cadet", 1330("cadet",
1309 GNUNET_SERVICE_OPTION_NONE, 1331 GNUNET_SERVICE_OPTION_NONE,
1310 &run, 1332 &run,
1311 &client_connect_cb, 1333 &client_connect_cb,
1312 &client_disconnect_cb, 1334 &client_disconnect_cb,
1313 NULL, 1335 NULL,
1314 GNUNET_MQ_hd_fixed_size (port_open, 1336 GNUNET_MQ_hd_fixed_size (port_open,
1315 GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_OPEN, 1337 GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_OPEN,
1316 struct GNUNET_CADET_PortMessage, 1338 struct GNUNET_CADET_PortMessage,
1317 NULL), 1339 NULL),
1318 GNUNET_MQ_hd_fixed_size (port_close, 1340 GNUNET_MQ_hd_fixed_size (port_close,
1319 GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE, 1341 GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE,
1320 struct GNUNET_CADET_PortMessage, 1342 struct GNUNET_CADET_PortMessage,
1321 NULL), 1343 NULL),
1322 GNUNET_MQ_hd_fixed_size (channel_create, 1344 GNUNET_MQ_hd_fixed_size (channel_create,
1323 GNUNET_MESSAGE_TYPE_CADET_LOCAL_CHANNEL_CREATE, 1345 GNUNET_MESSAGE_TYPE_CADET_LOCAL_CHANNEL_CREATE,
1324 struct GNUNET_CADET_LocalChannelCreateMessage, 1346 struct GNUNET_CADET_LocalChannelCreateMessage,
1325 NULL), 1347 NULL),
1326 GNUNET_MQ_hd_fixed_size (channel_destroy, 1348 GNUNET_MQ_hd_fixed_size (channel_destroy,
1327 GNUNET_MESSAGE_TYPE_CADET_LOCAL_CHANNEL_DESTROY, 1349 GNUNET_MESSAGE_TYPE_CADET_LOCAL_CHANNEL_DESTROY,
1328 struct GNUNET_CADET_LocalChannelDestroyMessage, 1350 struct GNUNET_CADET_LocalChannelDestroyMessage,
1329 NULL), 1351 NULL),
1330 GNUNET_MQ_hd_var_size (local_data, 1352 GNUNET_MQ_hd_var_size (local_data,
1331 GNUNET_MESSAGE_TYPE_CADET_LOCAL_DATA, 1353 GNUNET_MESSAGE_TYPE_CADET_LOCAL_DATA,
1332 struct GNUNET_CADET_LocalData, 1354 struct GNUNET_CADET_LocalData,
1333 NULL), 1355 NULL),
1334 GNUNET_MQ_hd_fixed_size (local_ack, 1356 GNUNET_MQ_hd_fixed_size (local_ack,
1335 GNUNET_MESSAGE_TYPE_CADET_LOCAL_ACK, 1357 GNUNET_MESSAGE_TYPE_CADET_LOCAL_ACK,
1336 struct GNUNET_CADET_LocalAck, 1358 struct GNUNET_CADET_LocalAck,
1337 NULL), 1359 NULL),
1338 GNUNET_MQ_hd_fixed_size (get_peers, 1360 GNUNET_MQ_hd_fixed_size (get_peers,
1339 GNUNET_MESSAGE_TYPE_CADET_LOCAL_REQUEST_INFO_PEERS, 1361 GNUNET_MESSAGE_TYPE_CADET_LOCAL_REQUEST_INFO_PEERS,
1340 struct GNUNET_MessageHeader, 1362 struct GNUNET_MessageHeader,
1341 NULL), 1363 NULL),
1342 GNUNET_MQ_hd_fixed_size (show_path, 1364 GNUNET_MQ_hd_fixed_size (show_path,
1343 GNUNET_MESSAGE_TYPE_CADET_LOCAL_REQUEST_INFO_PATH, 1365 GNUNET_MESSAGE_TYPE_CADET_LOCAL_REQUEST_INFO_PATH,
1344 struct GNUNET_CADET_RequestPathInfoMessage, 1366 struct GNUNET_CADET_RequestPathInfoMessage,
1345 NULL), 1367 NULL),
1346 GNUNET_MQ_hd_fixed_size (info_tunnels, 1368 GNUNET_MQ_hd_fixed_size (info_tunnels,
1347 GNUNET_MESSAGE_TYPE_CADET_LOCAL_REQUEST_INFO_TUNNELS, 1369 GNUNET_MESSAGE_TYPE_CADET_LOCAL_REQUEST_INFO_TUNNELS,
1348 struct GNUNET_MessageHeader, 1370 struct GNUNET_MessageHeader,
1349 NULL), 1371 NULL),
1350 GNUNET_MQ_handler_end ()); 1372 GNUNET_MQ_hd_fixed_size (drop_message,
1373 GNUNET_MESSAGE_TYPE_CADET_DROP_CADET_MESSAGE,
1374 struct GNUNET_CADET_RequestDropCadetMessage,
1375 NULL),
1376 GNUNET_MQ_handler_end ());
1351 1377
1352/* end of gnunet-service-cadet-new.c */ 1378/* end of gnunet-service-cadet-new.c */