gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r5634 - in GNUnet/src: server transports


From: gnunet
Subject: [GNUnet-SVN] r5634 - in GNUnet/src: server transports
Date: Mon, 10 Sep 2007 20:39:52 -0600 (MDT)

Author: grothoff
Date: 2007-09-10 20:39:52 -0600 (Mon, 10 Sep 2007)
New Revision: 5634

Modified:
   GNUnet/src/server/connection.c
   GNUnet/src/transports/udp.c
   GNUnet/src/transports/udp6.c
   GNUnet/src/transports/udp_helper.c
Log:
fix

Modified: GNUnet/src/server/connection.c
===================================================================
--- GNUnet/src/server/connection.c      2007-09-10 16:05:25 UTC (rev 5633)
+++ GNUnet/src/server/connection.c      2007-09-11 02:39:52 UTC (rev 5634)
@@ -1643,7 +1643,8 @@
       /* transport session is gone! re-establish! */
       tsession = be->session.tsession;
       be->session.tsession = NULL;
-      transport->disconnect (tsession, __FILE__);
+      if (tsession != NULL)
+       transport->disconnect (tsession, __FILE__);
       ensureTransportConnected (be);
       if (be->session.tsession == NULL)
         {
@@ -2693,6 +2694,7 @@
   unsigned long long total_send_buffer_size;
   int load_nup;
   int load_cpu;
+  TSession * tsession;
 
   ENTRY ();
   load_cpu = os_cpu_get_load (ectx, cfg);
@@ -2762,19 +2764,19 @@
                   if ((alternative != NULL)
                       && (transport->getMTU (alternative->ttype) == 0))
                     {
-                      transport->disconnect (root->session.tsession,
-                                             __FILE__);
+                     tsession = root->session.tsession;
                       root->session.mtu = 0;
                       root->session.tsession = alternative;
                       alternative = NULL;
                       root->consider_transport_switch = NO;
+                     if (tsession != NULL)
+                       transport->disconnect (tsession,
+                                              __FILE__);
                       if (stats != NULL)
                         stats->change (stat_transport_switches, 1);
                     }
-                  if (alternative != NULL)
-                    {
-                      transport->disconnect (alternative, __FILE__);
-                    }
+                  if (alternative != NULL)                    
+                      transport->disconnect (alternative, __FILE__);           
         
                 }
               if ((root->available_send_window > 35 * 1024) &&
                   (root->sendBufferSize < 4) &&

Modified: GNUnet/src/transports/udp.c
===================================================================
--- GNUnet/src/transports/udp.c 2007-09-10 16:05:25 UTC (rev 5633)
+++ GNUnet/src/transports/udp.c 2007-09-11 02:39:52 UTC (rev 5634)
@@ -536,6 +536,8 @@
       stat_bytesSent = stats->create (gettext_noop ("# bytes sent via UDP"));
       stat_bytesDropped
         = stats->create (gettext_noop ("# bytes dropped by UDP (outgoing)"));
+      stat_udpConnected
+        = stats->create (gettext_noop ("# UDP connections (right now)"));
     }
   configLock = MUTEX_CREATE (NO);
   reloadConfiguration ();

Modified: GNUnet/src/transports/udp6.c
===================================================================
--- GNUnet/src/transports/udp6.c        2007-09-10 16:05:25 UTC (rev 5633)
+++ GNUnet/src/transports/udp6.c        2007-09-11 02:39:52 UTC (rev 5634)
@@ -469,7 +469,17 @@
     GE_LOG (ectx,
             GE_ERROR | GE_USER | GE_IMMEDIATE,
             _("MTU %llu for `%s' is probably too low!\n"), mtu, "UDP6");
-
+  stats = coreAPI->requestService ("stats");
+  if (stats != NULL)
+    {
+      stat_bytesReceived
+        = stats->create (gettext_noop ("# bytes received via UDP6"));
+      stat_bytesSent = stats->create (gettext_noop ("# bytes sent via UDP6"));
+      stat_bytesDropped
+        = stats->create (gettext_noop ("# bytes dropped by UDP6 (outgoing)"));
+      stat_udpConnected
+        = stats->create (gettext_noop ("# UDP6 connections (right now)"));
+    }
   udpAPI.protocolNumber = UDP6_PROTOCOL_NUMBER;
   udpAPI.mtu = mtu - sizeof (UDPMessage);
   udpAPI.cost = 19950;
@@ -490,6 +500,11 @@
 void
 donetransport_udp6 ()
 {
+  if (stats != NULL)
+    {
+      coreAPI->releaseService (stats);
+      stats = NULL;
+    }
   MUTEX_DESTROY (configLock);
   FREENONNULL (filteredNetworks_);
 }

Modified: GNUnet/src/transports/udp_helper.c
===================================================================
--- GNUnet/src/transports/udp_helper.c  2007-09-10 16:05:25 UTC (rev 5633)
+++ GNUnet/src/transports/udp_helper.c  2007-09-11 02:39:52 UTC (rev 5634)
@@ -57,6 +57,8 @@
 
 static int stat_bytesDropped;
 
+static int stat_udpConnected;
+
 static struct GE_Context *ectx;
 
 /**
@@ -156,6 +158,8 @@
   tsession->ttype = udpAPI.protocolNumber;
   tsession->peer = hello->senderIdentity;
   *tsessionPtr = tsession;
+  if (stats != NULL)
+    stats->change (stat_udpConnected, 1);
   return OK;
 }
 
@@ -190,6 +194,8 @@
       if (tsession->internal != NULL)
         FREE (tsession->internal);
       FREE (tsession);
+      if (stats != NULL)
+        stats->change (stat_udpConnected, -1);
     }
   return OK;
 }





reply via email to

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