gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r17455 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r17455 - gnunet/src/ats
Date: Thu, 13 Oct 2011 21:33:50 +0200

Author: wachs
Date: 2011-10-13 21:33:50 +0200 (Thu, 13 Oct 2011)
New Revision: 17455

Modified:
   gnunet/src/ats/Makefile.am
   gnunet/src/ats/gnunet-service-ats.c
Log:


Modified: gnunet/src/ats/Makefile.am
===================================================================
--- gnunet/src/ats/Makefile.am  2011-10-13 19:14:04 UTC (rev 17454)
+++ gnunet/src/ats/Makefile.am  2011-10-13 19:33:50 UTC (rev 17455)
@@ -18,14 +18,14 @@
  $(top_builddir)/src/util/libgnunetutil.la
 
 
-#bin_PROGRAMS = \
-# gnunet-service-ats
+bin_PROGRAMS = \
+ gnunet-service-ats
 
-#gnunet_service_ats_SOURCES = \
-# gnunet-service-ats.c         
-#gnunet_service_ats_LDADD = \
-#  $(top_builddir)/src/util/libgnunetutil.la \
-#  $(GN_LIBINTL)
+gnunet_service_ats_SOURCES = \
+ gnunet-service-ats.c         
+gnunet_service_ats_LDADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(GN_LIBINTL)
 
 
 #check_PROGRAMS = \

Modified: gnunet/src/ats/gnunet-service-ats.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats.c 2011-10-13 19:14:04 UTC (rev 17454)
+++ gnunet/src/ats/gnunet-service-ats.c 2011-10-13 19:33:50 UTC (rev 17455)
@@ -27,10 +27,15 @@
 #include "gnunet_getopt_lib.h"
 #include "gnunet_service_lib.h"
 #include "gnunet_container_lib.h"
+#include "gnunet_ats_service.h"
 #include "ats.h"
 
 struct ATS_Clients
 {
+  struct ATS_Clients * next;
+
+  struct ATS_Clients * prev;
+
   struct GNUNET_SERVER_Client *client;
 
   uint32_t flags;
@@ -71,7 +76,7 @@
 {
   struct ATS_Address * aa = cls;
   GNUNET_free (aa);
-  GNUNET_OK;
+  return GNUNET_OK;
 }
 
 /**
@@ -89,14 +94,26 @@
   {
     t = ac_head;
     GNUNET_CONTAINER_DLL_remove(ac_head,ac_tail, t);
-    GNUNET_free (ac);
+    GNUNET_free (t);
   }
 
-  GNUNET_CONTAINER_multihashmap_iterate(addresses, address_it, NULL);
+  GNUNET_CONTAINER_multihashmap_iterate (addresses, address_it, NULL);
 
-  GNUNET_CONTAINER_multihashmap_create(addresses);
+  GNUNET_CONTAINER_multihashmap_destroy (addresses);
 }
 
+static struct ATS_Clients * find_client (struct GNUNET_SERVER_Client *client)
+{
+  struct ATS_Clients * ac = ac_head;
+  while (ac != NULL)
+  {
+  if (ac->client == client)
+    break;
+  ac = ac->next;
+  }
+  return ac;
+}
+
 static void
 handle_ats_start (void *cls, struct GNUNET_SERVER_Client *client,
                       const struct GNUNET_MessageHeader *message)
@@ -138,32 +155,34 @@
   struct GNUNET_TRANSPORT_ATS_Information *am;
   char *pm;
 
+  size_t size = ntohs (msg->header.size);
   if (size <= sizeof (struct AddressUpdateMessage))
       GNUNET_break (0);
 
+  size_t ats_count = ntohs (msg->ats_count);
+  size_t addr_len = ntohs (msg->address_length);
+  size_t plugin_len = ntohs (msg->plugin_name_length) + 1 ;
+
   struct ATS_Address * aa = GNUNET_malloc (sizeof (struct ATS_Address) +
                                            ats_count * sizeof (struct 
GNUNET_TRANSPORT_ATS_Information) +
                                            addr_len +
                                            plugin_len);
 
-  size_t size = ntohs (msg->header.size);
-  size_t ats_count = ntohs (msg->ats_count);
-  size_t addr_len = ntohs (msg->address_length);
-  size_t plugin_len = ntohs (msg->plugin_name_length) + 1 ;
 
+
   memcpy (&aa->peer, &msg->peer, sizeof (struct GNUNET_PeerIdentity));
   aa->addr_len = addr_len;
   aa->ats_count = ats_count;
-  aa->ats = &aa[1];
+  aa->ats = (struct GNUNET_TRANSPORT_ATS_Information *) &aa[1];
 
   am = (struct GNUNET_TRANSPORT_ATS_Information*) &msg[1];
   memcpy (&aa->ats, am, ats_count * sizeof (struct 
GNUNET_TRANSPORT_ATS_Information));
   pm = (char *) &am[ats_count];
   memcpy (aa->addr, pm, addr_len);
-  memcpy (aa->plugin, &pm[plugin_addr_len], plugin_len);
+  memcpy (aa->plugin, &pm[plugin_len], plugin_len);
   aa->session_id = ntohl(msg->session_id);
 
-  GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put(addresses, 
aa->peer.hashPubKey, aa, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
+  GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put(addresses, 
&aa->peer.hashPubKey, aa, GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE));
 }
 
 static void
@@ -234,7 +253,7 @@
 main (int argc, char *const *argv)
 {
   return (GNUNET_OK ==
-          GNUNET_SERVICE_run (argc, argv, "gnunet-service-ats",
+          GNUNET_SERVICE_run (argc, argv, "ats",
                               GNUNET_SERVICE_OPTION_NONE, &run, NULL)) ? 0 : 1;
 }
 




reply via email to

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