aboutsummaryrefslogtreecommitdiff
path: root/src/mesh
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2011-04-08 01:01:18 +0000
committerBart Polot <bart@net.in.tum.de>2011-04-08 01:01:18 +0000
commit612f0fee557bddd00245a67726aa3c978c07f5c8 (patch)
treeda50edf44731623afa03ff3ff976bb4603a91458 /src/mesh
parente3a9e2740e43c7c4d2432685b8aff243db7c4098 (diff)
downloadgnunet-612f0fee557bddd00245a67726aa3c978c07f5c8.tar.gz
gnunet-612f0fee557bddd00245a67726aa3c978c07f5c8.zip
Work in progress
Diffstat (limited to 'src/mesh')
-rw-r--r--src/mesh/gnunet-service-mesh.c84
1 files changed, 47 insertions, 37 deletions
diff --git a/src/mesh/gnunet-service-mesh.c b/src/mesh/gnunet-service-mesh.c
index 145807338..f6be64457 100644
--- a/src/mesh/gnunet-service-mesh.c
+++ b/src/mesh/gnunet-service-mesh.c
@@ -279,6 +279,7 @@ struct Path
279}; 279};
280 280
281 281
282struct Client; /* FWD declaration */
282/** 283/**
283 * Struct containing all information regarding a tunnel 284 * Struct containing all information regarding a tunnel
284 * For an intermediate node the improtant info used will be: 285 * For an intermediate node the improtant info used will be:
@@ -338,6 +339,11 @@ struct MESH_tunnel
338 struct Path *paths; 339 struct Path *paths;
339 340
340 /** 341 /**
342 * If this tunnel was created by a local client, what's its handle?
343 */
344 struct Client *client;
345
346 /**
341 * Messages ready to transmit??? -- FIXME real queues needed 347 * Messages ready to transmit??? -- FIXME real queues needed
342 */ 348 */
343 struct GNUNET_MessageHeader *msg_out; 349 struct GNUNET_MessageHeader *msg_out;
@@ -347,10 +353,6 @@ struct MESH_tunnel
347 */ 353 */
348 struct GNUNET_MessageHeader *msg_in; 354 struct GNUNET_MessageHeader *msg_in;
349 355
350 /**
351 * If this tunnel was created by a local client, what's its handle?
352 */
353 struct GNUNET_SERVER_Client *initiator;
354}; 356};
355 357
356/** 358/**
@@ -391,8 +393,8 @@ struct Client
391/** 393/**
392 * All the clients 394 * All the clients
393 */ 395 */
394// static struct Client clients_head; 396//static struct Client clients_head;
395// static struct Client clients_tail; 397//static struct Client clients_tail;
396 398
397/** 399/**
398 * All the tunnels 400 * All the tunnels
@@ -522,7 +524,20 @@ handle_local_new_client (void *cls,
522 struct GNUNET_SERVER_Client *client, 524 struct GNUNET_SERVER_Client *client,
523 const struct GNUNET_MessageHeader *message) 525 const struct GNUNET_MessageHeader *message)
524{ 526{
525 return; 527 struct Client *c;
528 c = GNUNET_malloc(sizeof(struct Client));
529 c->handle = client;
530 //c->messages_subscribed = message->;
531
532 /*client *c;
533 tunnel *t;
534
535 t = new;
536 GNUNET_CONTAINER_DLL_insert (c->my_tunnels_head,
537 c->my_tunnels_tail,
538 t);*/
539
540
526} 541}
527 542
528/** 543/**
@@ -558,29 +573,23 @@ handle_local_network_traffic (void *cls,
558/** 573/**
559 * Functions to handle messages from clients 574 * Functions to handle messages from clients
560 */ 575 */
561/* MESSAGES DEFINED:
562#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT 272
563#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ANY 273
564#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ALL 274
565#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ADD 275
566#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_DEL 276
567#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_BY_TYPE 277
568#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_CANCEL 278
569#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TRANSMIT_READY 279
570#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_CREATED 280
571#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_DESTROYED 281
572#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA 282
573#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA_BROADCAST 283
574 */
575static struct GNUNET_SERVER_MessageHandler plugin_handlers[] = { 576static struct GNUNET_SERVER_MessageHandler plugin_handlers[] = {
576 {&handle_local_new_client, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT, 0}, 577 {&handle_local_new_client, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT, 0},
577 {&handle_local_connect, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ADD, 0}, 578 {&handle_local_connect, NULL,
578 {&handle_local_connect, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_DEL, 0}, 579 GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ADD, 0},
579 {&handle_local_connect, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_BY_TYPE, sizeof(struct GNUNET_MESH_ConnectPeerByType)}, 580 {&handle_local_connect, NULL,
580 {&handle_local_connect, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_CANCEL, 0}, 581 GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_DEL, 0},
581 {&handle_local_network_traffic, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_TRANSMIT_READY, 0}, 582 {&handle_local_connect, NULL,
582 {&handle_local_network_traffic, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA, 0}, /* FIXME needed? */ 583 GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_BY_TYPE,
583 {&handle_local_network_traffic, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA_BROADCAST, 0}, /* FIXME needed? */ 584 sizeof(struct GNUNET_MESH_ConnectPeerByType)},
585 {&handle_local_connect, NULL,
586 GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_CANCEL, 0},
587 {&handle_local_network_traffic, NULL,
588 GNUNET_MESSAGE_TYPE_MESH_LOCAL_TRANSMIT_READY, 0},
589 {&handle_local_network_traffic, NULL,
590 GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA, 0}, /* FIXME needed? */
591 {&handle_local_network_traffic, NULL,
592 GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA_BROADCAST, 0}, /* FIXME needed? */
584 {NULL, NULL, 0, 0} 593 {NULL, NULL, 0, 0}
585}; 594};
586 595
@@ -678,12 +687,13 @@ run (void *cls,
678int 687int
679main (int argc, char *const *argv) 688main (int argc, char *const *argv)
680{ 689{
681 int ret; 690 int ret;
682 691
683 ret = (GNUNET_OK == 692 ret = (GNUNET_OK ==
684 GNUNET_SERVICE_run (argc, 693 GNUNET_SERVICE_run (argc,
685 argv, 694 argv,
686 "mesh", 695 "mesh",
687 GNUNET_SERVICE_OPTION_NONE, &run, NULL)) ? 0 : 1; 696 GNUNET_SERVICE_OPTION_NONE,
688 return ret; 697 &run, NULL)) ? 0 : 1;
689} 698 return ret;
699 }