[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r14927 - in gnunet/src: include mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r14927 - in gnunet/src: include mesh |
Date: |
Fri, 8 Apr 2011 03:01:18 +0200 |
Author: bartpolot
Date: 2011-04-08 03:01:18 +0200 (Fri, 08 Apr 2011)
New Revision: 14927
Modified:
gnunet/src/include/gnunet_mesh_service_new.h
gnunet/src/mesh/gnunet-service-mesh.c
Log:
Work in progress
Modified: gnunet/src/include/gnunet_mesh_service_new.h
===================================================================
--- gnunet/src/include/gnunet_mesh_service_new.h 2011-04-07 21:15:05 UTC
(rev 14926)
+++ gnunet/src/include/gnunet_mesh_service_new.h 2011-04-08 01:01:18 UTC
(rev 14927)
@@ -73,7 +73,8 @@
void **tunnel_ctx,
const struct GNUNET_PeerIdentity *sender,
const struct GNUNET_MessageHeader *message,
- const struct GNUNET_TRANSPORT_ATS_Information
*atsi);
+ const struct GNUNET_TRANSPORT_ATS_Information
+ *atsi);
/**
@@ -108,10 +109,12 @@
*
* @param cls closure (set from GNUNET_MESH_connect)
* @param tunnel connection to the other end (henceforth invalid)
- * @param tunnel_ctx place where local state associated with the tunnel is
stored
+ * @param tunnel_ctx place where local state associated
+ * with the tunnel is stored
*/
typedef void (GNUNET_MESH_TunnelEndHandler)(void *cls,
- const struct GNUNET_MESH_Tunnel
*tunnel,
+ const struct GNUNET_MESH_Tunnel
+ *tunnel,
void **tunnel_ctx);
@@ -125,14 +128,15 @@
* Connect to the mesh service.
*
* @param cfg configuration to use
- * @param cls closure for the various callbacks that follow (including
handlers in the handlers array)
+ * @param cls closure for the various callbacks that follow
+ * (including handlers in the handlers array)
* @param cleaner function called when an *inbound* tunnel is destroyed
* @param handlers callbacks for messages we care about, NULL-terminated
- * note that the mesh is allowed to drop notifications about
inbound
- * messages if the client does not process them fast enough
(for this
- * notification type, a bounded queue is used)
- * @return handle to the mesh service
- * NULL on error (in this case, init is never called)
+ * note that the mesh is allowed to drop notifications about
+ * inbound messages if the client does not process them fast
+ * enough (for this notification type, a bounded queue is used)
+ * @return handle to the mesh service NULL on error
+ * (in this case, init is never called)
*/
struct GNUNET_MESH_Handle *
GNUNET_MESH_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
@@ -157,7 +161,7 @@
* @param peer peer identity the tunnel stopped working with
*/
typedef void (*GNUNET_MESH_TunnelDisconnectHandler) (void *cls,
- const struct
GNUNET_PeerIdentity *peer);
+ const struct GNUNET_PeerIdentity
*peer);
/**
@@ -168,14 +172,14 @@
* @param atsi performance data for the connection
*/
typedef void (*GNUNET_MESH_TunnelConnectHandler) (void *cls,
- const struct
GNUNET_PeerIdentity *peer,
- const struct
GNUNET_TRANSPORT_ATS_Information *atsi);
+ const struct GNUNET_PeerIdentity *peer,
+ const struct GNUNET_TRANSPORT_ATS_Information
*atsi);
/**
- * Create a new tunnel (we're initiator and will be allowed to add/remove
peers and
- * to broadcast).
+ * Create a new tunnel (we're initiator and will be allowed to add/remove peers
+ * and to broadcast).
*
* @param h mesh handle
* @param connect_handler function to call when peers are actually connected
@@ -184,9 +188,11 @@
*/
struct GNUNET_MESH_Tunnel *
GNUNET_MESH_tunnel_create (struct GNUNET_MESH_Handle *h,
- GNUNET_MESH_TunnelConnectHandler connect_handler,
- GNUNET_MESH_TunnelDisconnectHandler
disconnect_handler,
- void *handler_cls);
+ GNUNET_MESH_TunnelConnectHandler
+ connect_handler,
+ GNUNET_MESH_TunnelDisconnectHandler
+ disconnect_handler,
+ void *handler_cls);
/**
* Destroy an existing tunnel.
@@ -229,8 +235,8 @@
*
* @param tunnel handle to existing tunnel
* @param timeout how long to try to establish a connection
- * @param app_type application type that must be supported by the peer (MESH
should
- * discover peer in proximity handling this type)
+ * @param app_type application type that must be supported by the peer
+ * (MESH should discover peer in proximity handling this type)
*/
void
GNUNET_MESH_peer_request_connect_by_type (struct GNUNET_MESH_Tunnel *tunnel,
@@ -254,7 +260,8 @@
* @param cork is corking allowed for this transmission?
* @param priority how important is the message?
* @param maxdelay how long can the message wait?
- * @param target destination for the message, NULL for multicast to all tunnel
targets
+ * @param target destination for the message
+ * NULL for multicast to all tunnel targets
* @param notify_size how many bytes of buffer space does notify want?
* @param notify function to call when buffer space is available;
* will be called with NULL on timeout or if the overall queue
Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c 2011-04-07 21:15:05 UTC (rev
14926)
+++ gnunet/src/mesh/gnunet-service-mesh.c 2011-04-08 01:01:18 UTC (rev
14927)
@@ -279,6 +279,7 @@
};
+struct Client; /* FWD declaration */
/**
* Struct containing all information regarding a tunnel
* For an intermediate node the improtant info used will be:
@@ -338,6 +339,11 @@
struct Path *paths;
/**
+ * If this tunnel was created by a local client, what's its handle?
+ */
+ struct Client *client;
+
+ /**
* Messages ready to transmit??? -- FIXME real queues needed
*/
struct GNUNET_MessageHeader *msg_out;
@@ -347,10 +353,6 @@
*/
struct GNUNET_MessageHeader *msg_in;
- /**
- * If this tunnel was created by a local client, what's its handle?
- */
- struct GNUNET_SERVER_Client *initiator;
};
/**
@@ -391,8 +393,8 @@
/**
* All the clients
*/
-// static struct Client clients_head;
-// static struct Client clients_tail;
+//static struct Client clients_head;
+//static struct Client clients_tail;
/**
* All the tunnels
@@ -522,7 +524,20 @@
struct GNUNET_SERVER_Client *client,
const struct GNUNET_MessageHeader *message)
{
- return;
+ struct Client *c;
+ c = GNUNET_malloc(sizeof(struct Client));
+ c->handle = client;
+ //c->messages_subscribed = message->;
+
+ /*client *c;
+ tunnel *t;
+
+ t = new;
+ GNUNET_CONTAINER_DLL_insert (c->my_tunnels_head,
+ c->my_tunnels_tail,
+ t);*/
+
+
}
/**
@@ -558,29 +573,23 @@
/**
* Functions to handle messages from clients
*/
-/* MESSAGES DEFINED:
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT 272
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ANY 273
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ALL 274
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ADD 275
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_DEL 276
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_BY_TYPE 277
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_CANCEL 278
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TRANSMIT_READY 279
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_CREATED 280
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_DESTROYED 281
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA 282
-#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA_BROADCAST 283
- */
static struct GNUNET_SERVER_MessageHandler plugin_handlers[] = {
{&handle_local_new_client, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT, 0},
- {&handle_local_connect, NULL,
GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ADD, 0},
- {&handle_local_connect, NULL,
GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_DEL, 0},
- {&handle_local_connect, NULL,
GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_BY_TYPE, sizeof(struct
GNUNET_MESH_ConnectPeerByType)},
- {&handle_local_connect, NULL,
GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_CANCEL, 0},
- {&handle_local_network_traffic, NULL,
GNUNET_MESSAGE_TYPE_MESH_LOCAL_TRANSMIT_READY, 0},
- {&handle_local_network_traffic, NULL, GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA,
0}, /* FIXME needed? */
- {&handle_local_network_traffic, NULL,
GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA_BROADCAST, 0}, /* FIXME needed? */
+ {&handle_local_connect, NULL,
+ GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ADD, 0},
+ {&handle_local_connect, NULL,
+ GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_DEL, 0},
+ {&handle_local_connect, NULL,
+ GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_BY_TYPE,
+ sizeof(struct GNUNET_MESH_ConnectPeerByType)},
+ {&handle_local_connect, NULL,
+ GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_CANCEL, 0},
+ {&handle_local_network_traffic, NULL,
+ GNUNET_MESSAGE_TYPE_MESH_LOCAL_TRANSMIT_READY, 0},
+ {&handle_local_network_traffic, NULL,
+ GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA, 0}, /* FIXME needed? */
+ {&handle_local_network_traffic, NULL,
+ GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA_BROADCAST, 0}, /* FIXME needed? */
{NULL, NULL, 0, 0}
};
@@ -678,12 +687,13 @@
int
main (int argc, char *const *argv)
{
- int ret;
+ int ret;
- ret = (GNUNET_OK ==
- GNUNET_SERVICE_run (argc,
- argv,
- "mesh",
- GNUNET_SERVICE_OPTION_NONE, &run, NULL)) ? 0 : 1;
- return ret;
-}
+ ret = (GNUNET_OK ==
+ GNUNET_SERVICE_run (argc,
+ argv,
+ "mesh",
+ GNUNET_SERVICE_OPTION_NONE,
+ &run, NULL)) ? 0 : 1;
+ return ret;
+ }
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r14927 - in gnunet/src: include mesh,
gnunet <=