[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r16615 - in gnunet/src: include util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r16615 - in gnunet/src: include util |
Date: |
Fri, 26 Aug 2011 13:42:39 +0200 |
Author: wachs
Date: 2011-08-26 13:42:39 +0200 (Fri, 26 Aug 2011)
New Revision: 16615
Modified:
gnunet/src/include/gnunet_server_lib.h
gnunet/src/util/server.c
Log:
changes to server lib
Added a unique ID to struct GNUNET_SERVER_Client to be able to distinguish
between different clients
Modified: gnunet/src/include/gnunet_server_lib.h
===================================================================
--- gnunet/src/include/gnunet_server_lib.h 2011-08-25 15:10:42 UTC (rev
16614)
+++ gnunet/src/include/gnunet_server_lib.h 2011-08-26 11:42:39 UTC (rev
16615)
@@ -326,6 +326,16 @@
/**
+ * Retrieve the unique id from the opaque defined GNUNET_SERVER_Client
+ *
+ * @param client the client
+ * @return the unique id
+ */
+uint64_t
+GNUNET_SERVER_client_get_id (struct GNUNET_SERVER_Client *client);
+
+
+/**
* Functions with this signature are called whenever a client
* is disconnected on the network level.
*
Modified: gnunet/src/util/server.c
===================================================================
--- gnunet/src/util/server.c 2011-08-25 15:10:42 UTC (rev 16614)
+++ gnunet/src/util/server.c 2011-08-26 11:42:39 UTC (rev 16615)
@@ -247,6 +247,11 @@
* Type of last message processed (for warn_no_receive_done).
*/
uint16_t warn_type;
+
+ /**
+ * unique identifier to distinguish between clients
+ */
+ uint64_t id;
};
@@ -933,6 +938,18 @@
/**
+ * Get a unique identifier for each GNUNET_SERVER_Client
+ */
+static uint64_t
+get_client_id (void)
+{
+ static uint64_t id;
+
+ GNUNET_assert (id < ULONG_LONG_MAX);
+ return (id++);
+}
+
+/**
* Add a TCP socket-based connection to the set of handles managed by
* this server. Use this function for outgoing (P2P) connections that
* we initiated (and where this server should process incoming
@@ -963,6 +980,7 @@
client->receive_pending = GNUNET_YES;
client->callback = NULL;
client->callback_cls = NULL;
+ client->id = get_client_id ();
GNUNET_CONNECTION_receive (client->connection,
GNUNET_SERVER_MAX_MESSAGE_SIZE - 1,
client->idle_timeout, &process_incoming, client);
@@ -1275,6 +1293,18 @@
/**
+ * Retrieve the unique id from the opaque defined GNUNET_SERVER_Client
+ *
+ * @param client the client
+ * @return the unique id
+ */
+uint64_t
+GNUNET_SERVER_client_get_id (struct GNUNET_SERVER_Client *client)
+{
+ return client->id;
+}
+
+/**
* Resume receiving from this client, we are done processing the
* current request. This function must be called from within each
* GNUNET_SERVER_MessageCallback (or its respective continuations).
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r16615 - in gnunet/src: include util,
gnunet <=