gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r27947 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r27947 - gnunet/src/transport
Date: Fri, 12 Jul 2013 10:51:22 +0200

Author: wachs
Date: 2013-07-12 10:51:22 +0200 (Fri, 12 Jul 2013)
New Revision: 27947

Modified:
   gnunet/src/transport/gnunet-service-transport_validation.c
Log:
fixed address validation for plugins with client server architecture


Modified: gnunet/src/transport/gnunet-service-transport_validation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_validation.c  2013-07-12 
08:50:45 UTC (rev 27946)
+++ gnunet/src/transport/gnunet-service-transport_validation.c  2013-07-12 
08:51:22 UTC (rev 27947)
@@ -903,10 +903,13 @@
   const struct TransportPingMessage *ping;
   struct TransportPongMessage *pong;
   struct GNUNET_TRANSPORT_PluginFunctions *papi;
+  struct GNUNET_TRANSPORT_PluginFunctions *server_papi;
   struct GNUNET_CRYPTO_EccSignature *sig_cache;
   struct GNUNET_TIME_Absolute *sig_cache_exp;
   const char *addr;
   const char *addrend;
+  char *plugin_name;
+  char *pos;
   size_t alen;
   size_t slen;
   ssize_t ret;
@@ -960,13 +963,26 @@
     {
        GNUNET_break (0);
     }
-    if (NULL == (papi = GST_plugins_find (address.transport_name)))
+
+    if (0 != strstr (address.transport_name, "_client"))
+               {
+       plugin_name = GNUNET_strdup (address.transport_name);
+       pos = strstr (plugin_name, "_client");
+       GNUNET_assert (NULL != pos);
+       GNUNET_snprintf (pos, strlen ("_server") + 1, "%s", "_server");
+               }
+    else
+       plugin_name = GNUNET_strdup (address.transport_name);
+
+    if (NULL == (papi = GST_plugins_find (plugin_name)))
     {
       /* we don't have the plugin for this address */
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Plugin `%s' not available, cannot 
confirm having this address \n",
-               address.transport_name) ;
+               plugin_name);
+      GNUNET_free (plugin_name);
       return;
     }
+    GNUNET_free (plugin_name);
     if (GNUNET_OK != papi->check_address (papi->cls, addrend, alen))
                {
        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Address `%s' is not one of my 
addresses, not confirming PING\n",




reply via email to

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