diff options
author | Bart Polot <bart@net.in.tum.de> | 2011-04-08 01:01:18 +0000 |
---|---|---|
committer | Bart Polot <bart@net.in.tum.de> | 2011-04-08 01:01:18 +0000 |
commit | 612f0fee557bddd00245a67726aa3c978c07f5c8 (patch) | |
tree | da50edf44731623afa03ff3ff976bb4603a91458 /src/mesh | |
parent | e3a9e2740e43c7c4d2432685b8aff243db7c4098 (diff) | |
download | gnunet-612f0fee557bddd00245a67726aa3c978c07f5c8.tar.gz gnunet-612f0fee557bddd00245a67726aa3c978c07f5c8.zip |
Work in progress
Diffstat (limited to 'src/mesh')
-rw-r--r-- | src/mesh/gnunet-service-mesh.c | 84 |
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 | ||
282 | struct 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 | */ | ||
575 | static struct GNUNET_SERVER_MessageHandler plugin_handlers[] = { | 576 | static 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, | |||
678 | int | 687 | int |
679 | main (int argc, char *const *argv) | 688 | main (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 | } | ||