gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r27929 - gnunet/src/transport
Date: Thu, 11 Jul 2013 17:04:18 +0200

Author: wachs
Date: 2013-07-11 17:04:18 +0200 (Thu, 11 Jul 2013)
New Revision: 27929

Modified:
   gnunet/src/transport/gnunet-service-transport.c
   gnunet/src/transport/gnunet-service-transport.h
Log:
notify ATS about a session (used for for validation) if we receive payload from 
a remote peer on this session


Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2013-07-11 14:48:28 UTC 
(rev 27928)
+++ gnunet/src/transport/gnunet-service-transport.c     2013-07-11 15:04:18 UTC 
(rev 27929)
@@ -171,6 +171,8 @@
     return ret;
   }
 
+  GST_ats_add_address ((struct GNUNET_HELLO_Address *) address, session);
+
   if (do_forward != GNUNET_YES)
     return ret;
   im = (struct InboundMessage *) buf;
@@ -400,8 +402,8 @@
  * @param session the session
  */
 void
-GST_ats_add_address (struct GNUNET_HELLO_Address *address,
-                                                void *session)
+GST_ats_add_address (const struct GNUNET_HELLO_Address *address,
+                                                                               
 struct Session *session)
 {
   struct GNUNET_TRANSPORT_PluginFunctions *papi;
        struct GNUNET_ATS_Information ats;
@@ -420,7 +422,10 @@
        return;
   }
 
-       net = papi->get_network (NULL, session);
+  if (GNUNET_YES == GNUNET_ATS_session_known (GST_ats, address, session))
+       return;
+
+       net = papi->get_network (NULL, (void *) session);
   if (GNUNET_ATS_NET_UNSPECIFIED == net)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -458,6 +463,10 @@
                        uint32_t ats_count)
 {
        struct GNUNET_ATS_Information *ats_new;
+
+  if (GNUNET_NO == GNUNET_ATS_session_known (GST_ats, address, session))
+       return;
+
        /* Call to manipulation to manipulate ATS information */
        ats_new = GST_manipulation_manipulate_metrics (peer, address, session, 
ats, ats_count);
        if (NULL == ats_new)

Modified: gnunet/src/transport/gnunet-service-transport.h
===================================================================
--- gnunet/src/transport/gnunet-service-transport.h     2013-07-11 14:48:28 UTC 
(rev 27928)
+++ gnunet/src/transport/gnunet-service-transport.h     2013-07-11 15:04:18 UTC 
(rev 27929)
@@ -105,7 +105,8 @@
  * @param session the session
  */
 void
-GST_ats_add_address (struct GNUNET_HELLO_Address *address, void *session);
+GST_ats_add_address (const struct GNUNET_HELLO_Address *address,
+                                                                               
 struct Session *session);
 
 
 /**




reply via email to

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