gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r22011 - gnunet/src/mesh
Date: Fri, 15 Jun 2012 00:40:01 +0200

Author: bartpolot
Date: 2012-06-15 00:40:01 +0200 (Fri, 15 Jun 2012)
New Revision: 22011

Modified:
   gnunet/src/mesh/gnunet-service-mesh_new.c
Log:
- blacklist api calls, service side

Modified: gnunet/src/mesh/gnunet-service-mesh_new.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_new.c   2012-06-14 17:54:02 UTC (rev 
22010)
+++ gnunet/src/mesh/gnunet-service-mesh_new.c   2012-06-14 22:40:01 UTC (rev 
22011)
@@ -4245,7 +4245,6 @@
                           const struct GNUNET_MessageHeader *message)
 {
   struct GNUNET_MESH_PeerControl *peer_msg;
-
   struct MeshClient *c;
   struct MeshTunnel *t;
   MESH_TunnelNumber tid;
@@ -4279,7 +4278,8 @@
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  on tunnel %X\n", t->id.tid);
 
-//   GNUNET_array_append(t->blacklisted, t->nblacklisted, 
GNUNET_PEER_intern(peer));
+  GNUNET_array_append(t->blacklisted, t->nblacklisted,
+                      GNUNET_PEER_intern(&peer_msg->peer));
 }
 
 
@@ -4298,8 +4298,8 @@
   struct MeshClient *c;
   struct MeshTunnel *t;
   MESH_TunnelNumber tid;
-//   GNUNET_PEER_Id pid;
-//   unsigned int i;
+  GNUNET_PEER_Id pid;
+  unsigned int i;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got a PEER UNBLACKLIST request\n");
   /* Sanity check for client registration */
@@ -4330,11 +4330,27 @@
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  on tunnel %X\n", t->id.tid);
 
-//   pid = GNUNET_PEER_search (peer);
-//   for (i = 0; i < t->nblacklisted; i++)
-//   {
-//     if (t->blacklisted[i]
-//   }
+  /* if peer is not known, complain */
+  pid = GNUNET_PEER_search (&peer_msg->peer);
+  if (0 == pid)
+  {
+    GNUNET_break (0);
+    return;
+  }
+
+  /* search and remove from list */
+  for (i = 0; i < t->nblacklisted; i++)
+  {
+    if (t->blacklisted[i] == pid)
+    {
+      t->blacklisted[i] = t->blacklisted[t->nblacklisted - 1];
+      GNUNET_array_grow (t->blacklisted, t->nblacklisted, t->nblacklisted - 1);
+      return;
+    }
+  }
+
+  /* if peer hasn't been blacklisted, complain */
+  GNUNET_break (0);
 }
 
 




reply via email to

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