gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r26456 - gnunet/src/transport
Date: Fri, 15 Mar 2013 13:34:08 +0100

Author: wachs
Date: 2013-03-15 13:34:08 +0100 (Fri, 15 Mar 2013)
New Revision: 26456

Modified:
   gnunet/src/transport/gnunet-service-transport_manipulation.c
   gnunet/src/transport/plugin_transport_tcp.c
Log:
manipulation recv side


Modified: gnunet/src/transport/gnunet-service-transport_manipulation.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_manipulation.c        
2013-03-15 12:19:33 UTC (rev 26455)
+++ gnunet/src/transport/gnunet-service-transport_manipulation.c        
2013-03-15 12:34:08 UTC (rev 26456)
@@ -288,10 +288,16 @@
        struct TM_Peer *tmp;
        int d;
        struct GNUNET_ATS_Information ats_new[ats_count];
-       struct GNUNET_TIME_Relative q_delay;
+       struct GNUNET_TIME_Relative quota_delay;
        struct GNUNET_TIME_Relative m_delay;
 
+       if (man_handle.delay_in.rel_value > GNUNET_TIME_UNIT_ZERO.rel_value)
+               m_delay = man_handle.delay_in; /* Global delay */
+       else
+               m_delay = GNUNET_TIME_UNIT_ZERO;
+
        for (d = 0; d < ats_count; d++)
+               ats_new[d] = ats[d];
 
        if (NULL != (tmp = GNUNET_CONTAINER_multihashmap_get (man_handle.peers, 
&peer->hashPubKey)))
        {
@@ -306,27 +312,15 @@
                        }
                        /* Manipulate receive delay */
                        if (UINT32_MAX != tmp->metrics[TM_RECEIVE][DELAY])
-                       {
-                                       m_delay.rel_value = 
tmp->metrics[TM_RECEIVE][DELAY];
-                                       q_delay = GST_receive_callback (cls, 
peer, message, &ats_new[0], ats_count,
-                                                       session, 
sender_address, sender_address_len);
-
-                                       if (q_delay.rel_value >= 
m_delay.rel_value)
-                                       {
-                                                       return q_delay;
-                                       }
-                                       else
-                                       {
-                                                       return m_delay;
-                                       }
-                       }
-                       else
-                               return GST_receive_callback (cls, peer, 
message, &ats_new[0], ats_count,
-                                               session, sender_address, 
sender_address_len);
+                                       m_delay.rel_value = 
tmp->metrics[TM_RECEIVE][DELAY]; /* Peer specific delay */
        }
 
-       return GST_receive_callback (cls, peer, message, ats, ats_count,
+       quota_delay = GST_receive_callback (cls, peer, message, ats_new, 
ats_count,
                        session, sender_address, sender_address_len);
+       if (quota_delay.rel_value > m_delay.rel_value)
+               return quota_delay;
+       else
+               return m_delay;
 }
 
 void

Modified: gnunet/src/transport/plugin_transport_tcp.c
===================================================================
--- gnunet/src/transport/plugin_transport_tcp.c 2013-03-15 12:19:33 UTC (rev 
26455)
+++ gnunet/src/transport/plugin_transport_tcp.c 2013-03-15 12:34:08 UTC (rev 
26456)
@@ -1960,17 +1960,9 @@
   struct GNUNET_ATS_Information ats;
 
   session->receive_delay_task = GNUNET_SCHEDULER_NO_TASK;
-  delay =
-      session->plugin->env->receive (session->plugin->env->cls,
-                                     &session->target, NULL, &ats, 0, session,
-                                     NULL, 0);
   reschedule_session_timeout (session);
 
-  if (delay.rel_value == 0)
-    GNUNET_SERVER_receive_done (session->client, GNUNET_OK);
-  else
-    session->receive_delay_task =
-        GNUNET_SCHEDULER_add_delayed (delay, &delayed_done, session);
+  GNUNET_SERVER_receive_done (session->client, GNUNET_OK);
 }
 
 




reply via email to

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