gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r32090 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r32090 - gnunet/src/mesh
Date: Thu, 30 Jan 2014 03:11:24 +0100

Author: bartpolot
Date: 2014-01-30 03:11:24 +0100 (Thu, 30 Jan 2014)
New Revision: 32090

Modified:
   gnunet/src/mesh/mesh_api.c
Log:
- client-side implementation of peer queries

Modified: gnunet/src/mesh/mesh_api.c
===================================================================
--- gnunet/src/mesh/mesh_api.c  2014-01-30 02:11:23 UTC (rev 32089)
+++ gnunet/src/mesh/mesh_api.c  2014-01-30 02:11:24 UTC (rev 32090)
@@ -1033,8 +1033,43 @@
 
 
 
+/**
+ * Process a local reply about info on all tunnels, pass info to the user.
+ *
+ * @param h Mesh handle.
+ * @param message Message itself.
+ */
+static void
+process_get_peers (struct GNUNET_MESH_Handle *h,
+                     const struct GNUNET_MessageHeader *message)
+{
+  struct GNUNET_MESH_LocalInfoPeer *msg;
+  uint16_t size;
 
-/*
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Get Peer messasge received\n");
+
+  if (NULL == h->peers_cb)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  ignored\n");
+    return;
+  }
+
+  size = ntohs (message->size);
+  if (sizeof (struct GNUNET_MESH_LocalInfoPeer) > size)
+  {
+    h->peers_cb (h->peers_cls, NULL, -1, 0, 0);
+    h->peers_cb = NULL;
+    h->peers_cls = NULL;
+    return;
+  }
+
+  msg = (struct GNUNET_MESH_LocalInfoPeer *) message;
+  h->peers_cb (h->peers_cls, &msg->destination,
+               (int) ntohs (msg->tunnel), ntohs (msg->paths), 0);
+}
+
+
+/**
  * Process a local reply about info on all tunnels, pass info to the user.
  *
  * @param h Mesh handle.
@@ -1076,8 +1111,8 @@
 
 
 
-/*
- * Process a local monitor_channel reply, pass info to the user.
+/**
+ * Process a local tunnel info reply, pass info to the user.
  *
  * @param h Mesh handle.
  * @param message Message itself.
@@ -1185,6 +1220,9 @@
 //   case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNEL:
 //     process_show_channel (h, msg);
 //     break;
+  case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEERS:
+    process_get_peers (h, msg);
+    break;
   case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS:
     process_get_tunnels (h, msg);
     break;
@@ -1473,6 +1511,8 @@
       case GNUNET_MESSAGE_TYPE_MESH_CHANNEL_DESTROY:
       case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNELS:
       case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNEL:
+      case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEER:
+      case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEERS:
       case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNEL:
       case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS:
         break;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]