aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2013-03-15 12:34:08 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2013-03-15 12:34:08 +0000
commitd8e8c984562aaa22d2db7d178fb1e544a87f8222 (patch)
tree483f84fd79b079ad52fba0e37bfb9183c064b8e3 /src/transport
parentad3f4ba6364c7c798c5b3549402fc77c6f8bb7c6 (diff)
downloadgnunet-d8e8c984562aaa22d2db7d178fb1e544a87f8222.tar.gz
gnunet-d8e8c984562aaa22d2db7d178fb1e544a87f8222.zip
manipulation recv side
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/gnunet-service-transport_manipulation.c32
-rw-r--r--src/transport/plugin_transport_tcp.c10
2 files changed, 14 insertions, 28 deletions
diff --git a/src/transport/gnunet-service-transport_manipulation.c b/src/transport/gnunet-service-transport_manipulation.c
index fa8621e3d..5e52799df 100644
--- a/src/transport/gnunet-service-transport_manipulation.c
+++ b/src/transport/gnunet-service-transport_manipulation.c
@@ -288,10 +288,16 @@ GST_manipulation_recv (void *cls, const struct GNUNET_PeerIdentity *peer,
288 struct TM_Peer *tmp; 288 struct TM_Peer *tmp;
289 int d; 289 int d;
290 struct GNUNET_ATS_Information ats_new[ats_count]; 290 struct GNUNET_ATS_Information ats_new[ats_count];
291 struct GNUNET_TIME_Relative q_delay; 291 struct GNUNET_TIME_Relative quota_delay;
292 struct GNUNET_TIME_Relative m_delay; 292 struct GNUNET_TIME_Relative m_delay;
293 293
294 if (man_handle.delay_in.rel_value > GNUNET_TIME_UNIT_ZERO.rel_value)
295 m_delay = man_handle.delay_in; /* Global delay */
296 else
297 m_delay = GNUNET_TIME_UNIT_ZERO;
298
294 for (d = 0; d < ats_count; d++) 299 for (d = 0; d < ats_count; d++)
300 ats_new[d] = ats[d];
295 301
296 if (NULL != (tmp = GNUNET_CONTAINER_multihashmap_get (man_handle.peers, &peer->hashPubKey))) 302 if (NULL != (tmp = GNUNET_CONTAINER_multihashmap_get (man_handle.peers, &peer->hashPubKey)))
297 { 303 {
@@ -306,27 +312,15 @@ GST_manipulation_recv (void *cls, const struct GNUNET_PeerIdentity *peer,
306 } 312 }
307 /* Manipulate receive delay */ 313 /* Manipulate receive delay */
308 if (UINT32_MAX != tmp->metrics[TM_RECEIVE][DELAY]) 314 if (UINT32_MAX != tmp->metrics[TM_RECEIVE][DELAY])
309 { 315 m_delay.rel_value = tmp->metrics[TM_RECEIVE][DELAY]; /* Peer specific delay */
310 m_delay.rel_value = tmp->metrics[TM_RECEIVE][DELAY];
311 q_delay = GST_receive_callback (cls, peer, message, &ats_new[0], ats_count,
312 session, sender_address, sender_address_len);
313
314 if (q_delay.rel_value >= m_delay.rel_value)
315 {
316 return q_delay;
317 }
318 else
319 {
320 return m_delay;
321 }
322 }
323 else
324 return GST_receive_callback (cls, peer, message, &ats_new[0], ats_count,
325 session, sender_address, sender_address_len);
326 } 316 }
327 317
328 return GST_receive_callback (cls, peer, message, ats, ats_count, 318 quota_delay = GST_receive_callback (cls, peer, message, ats_new, ats_count,
329 session, sender_address, sender_address_len); 319 session, sender_address, sender_address_len);
320 if (quota_delay.rel_value > m_delay.rel_value)
321 return quota_delay;
322 else
323 return m_delay;
330} 324}
331 325
332void 326void
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c
index 07abc46cf..4417c89ab 100644
--- a/src/transport/plugin_transport_tcp.c
+++ b/src/transport/plugin_transport_tcp.c
@@ -1960,17 +1960,9 @@ delayed_done (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
1960 struct GNUNET_ATS_Information ats; 1960 struct GNUNET_ATS_Information ats;
1961 1961
1962 session->receive_delay_task = GNUNET_SCHEDULER_NO_TASK; 1962 session->receive_delay_task = GNUNET_SCHEDULER_NO_TASK;
1963 delay =
1964 session->plugin->env->receive (session->plugin->env->cls,
1965 &session->target, NULL, &ats, 0, session,
1966 NULL, 0);
1967 reschedule_session_timeout (session); 1963 reschedule_session_timeout (session);
1968 1964
1969 if (delay.rel_value == 0) 1965 GNUNET_SERVER_receive_done (session->client, GNUNET_OK);
1970 GNUNET_SERVER_receive_done (session->client, GNUNET_OK);
1971 else
1972 session->receive_delay_task =
1973 GNUNET_SCHEDULER_add_delayed (delay, &delayed_done, session);
1974} 1966}
1975 1967
1976 1968