gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r17693 - gnunet/src/transport
Date: Sun, 23 Oct 2011 17:18:48 +0200

Author: grothoff
Date: 2011-10-23 17:18:48 +0200 (Sun, 23 Oct 2011)
New Revision: 17693

Modified:
   gnunet/src/transport/plugin_transport_http.c
   gnunet/src/transport/plugin_transport_http_client.c
   gnunet/src/transport/plugin_transport_http_server.c
   gnunet/src/transport/plugin_transport_tcp.c
   gnunet/src/transport/plugin_transport_udp.c
   gnunet/src/transport/plugin_transport_wlan.c
Log:
Adding FIXMEs: if delay is FOREVER, session should be terminated

Modified: gnunet/src/transport/plugin_transport_http.c
===================================================================
--- gnunet/src/transport/plugin_transport_http.c        2011-10-23 15:07:09 UTC 
(rev 17692)
+++ gnunet/src/transport/plugin_transport_http.c        2011-10-23 15:18:48 UTC 
(rev 17693)
@@ -248,6 +248,7 @@
   return GNUNET_OK;
 }
 
+
 struct GNUNET_TIME_Relative
 http_plugin_receive (void *cls, const struct GNUNET_PeerIdentity * peer,
     const struct  GNUNET_MessageHeader * message,

Modified: gnunet/src/transport/plugin_transport_http_client.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_client.c 2011-10-23 15:07:09 UTC 
(rev 17692)
+++ gnunet/src/transport/plugin_transport_http_client.c 2011-10-23 15:18:48 UTC 
(rev 17693)
@@ -322,7 +322,11 @@
   struct GNUNET_TIME_Relative delay;
 
   delay = http_plugin_receive (s, &s->target, message, s, s->addr, s->addrlen);
-  s->next_receive = GNUNET_TIME_absolute_add(GNUNET_TIME_absolute_get(), 
delay);
+  if (delay.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
+  {
+    // FIXME: terminate connection!
+  }
+  s->next_receive = GNUNET_TIME_relative_to_absolute (delay);
 
   if (GNUNET_TIME_absolute_get().abs_value < s->next_receive.abs_value)
   {

Modified: gnunet/src/transport/plugin_transport_http_server.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_server.c 2011-10-23 15:07:09 UTC 
(rev 17692)
+++ gnunet/src/transport/plugin_transport_http_server.c 2011-10-23 15:18:48 UTC 
(rev 17693)
@@ -278,9 +278,12 @@
   struct GNUNET_TIME_Relative delay;
 
   delay = http_plugin_receive (s, &s->target, message, s, s->addr, s->addrlen);
+  if (delay.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
+  {
+    // FIXME: terminate connection!
+  }
+  s->next_receive = GNUNET_TIME_relative_to_absolute (delay);
 
-  s->next_receive = GNUNET_TIME_absolute_add(GNUNET_TIME_absolute_get(), 
delay);
-
   if (delay.rel_value > 0)
   {
 #if VERBOSE_CLIENT

Modified: gnunet/src/transport/plugin_transport_tcp.c
===================================================================
--- gnunet/src/transport/plugin_transport_tcp.c 2011-10-23 15:07:09 UTC (rev 
17692)
+++ gnunet/src/transport/plugin_transport_tcp.c 2011-10-23 15:18:48 UTC (rev 
17693)
@@ -1685,6 +1685,8 @@
                                      NULL, 0);
   if (delay.rel_value == 0)
     GNUNET_SERVER_receive_done (session->client, GNUNET_OK);
+  else if (delay.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
+    GNUNET_SERVER_receive_done (session->client, GNUNET_SYSERR);
   else
     session->receive_delay_task =
         GNUNET_SCHEDULER_add_delayed (delay, &delayed_done, session);

Modified: gnunet/src/transport/plugin_transport_udp.c
===================================================================
--- gnunet/src/transport/plugin_transport_udp.c 2011-10-23 15:07:09 UTC (rev 
17692)
+++ gnunet/src/transport/plugin_transport_udp.c 2011-10-23 15:18:48 UTC (rev 
17693)
@@ -861,6 +861,10 @@
                    "Giving Session %X %s  to transport\n", si->session, 
GNUNET_i2s(&si->session->target));
   delay = plugin->env->receive (plugin->env->cls, &si->sender, hdr, &distance, 
1, si->session,
                         si->arg, si->args);
+  if (delay.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
+  {
+    // FIXME: terminate session!
+  }
   si->session->flow_delay_for_other_peer = delay;
 }
 

Modified: gnunet/src/transport/plugin_transport_wlan.c
===================================================================
--- gnunet/src/transport/plugin_transport_wlan.c        2011-10-23 15:07:09 UTC 
(rev 17692)
+++ gnunet/src/transport/plugin_transport_wlan.c        2011-10-23 15:18:48 UTC 
(rev 17693)
@@ -2333,7 +2333,7 @@
   GNUNET_assert (cls != NULL);
   struct Session *session = (struct Session *) client;
   struct Plugin *plugin = (struct Plugin *) cls;
-
+  struct GNUNET_TIME_Relative delay;
   struct GNUNET_ATS_Information distance;
 
   distance.type = htonl (GNUNET_ATS_QUALITY_NET_DISTANCE);
@@ -2348,11 +2348,16 @@
                    htons (hdr->size));
 #endif
 
-  plugin->env->receive (plugin->env->cls, &(session->target), hdr,
-                        (const struct GNUNET_ATS_Information *)
-                        &distance, 1, session,
-                        (const char *) &session->mac->addr,
-                        sizeof (session->mac->addr));
+  delay = plugin->env->receive (plugin->env->cls, &(session->target), hdr,
+                               (const struct GNUNET_ATS_Information *)
+                               &distance, 1, session,
+                               (const char *) &session->mac->addr,
+                               sizeof (session->mac->addr));
+  if (delay.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
+  {
+    // FIXME: terminate session!
+  }
+
 }
 
 /**




reply via email to

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