[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r5514 - GNUnet/src/server
From: |
gnunet |
Subject: |
[GNUnet-SVN] r5514 - GNUnet/src/server |
Date: |
Sat, 18 Aug 2007 22:15:26 -0600 (MDT) |
Author: grothoff
Date: 2007-08-18 22:15:14 -0600 (Sat, 18 Aug 2007)
New Revision: 5514
Modified:
GNUnet/src/server/connection.c
Log:
fixing leak from STRICT_STAT_DOWN
Modified: GNUnet/src/server/connection.c
===================================================================
--- GNUnet/src/server/connection.c 2007-08-18 13:01:23 UTC (rev 5513)
+++ GNUnet/src/server/connection.c 2007-08-19 04:15:14 UTC (rev 5514)
@@ -1618,11 +1618,19 @@
/* transport session is gone! re-establish! */
tsession = be->session.tsession;
be->session.tsession = NULL;
-#if STRICT_STAT_DOWN
- be->status = STAT_DOWN;
-#endif
transport->disconnect (tsession, __FILE__);
ensureTransportConnected (be);
+ if (be->session.tsession == NULL) {
+#if STRICT_STAT_DOWN
+ be->status = STAT_DOWN;
+#endif
+ for (i = 0; i < be->sendBufferSize; i++)
+ {
+ FREENONNULL (be->sendBuffer[i]->closure);
+ FREE (be->sendBuffer[i]);
+ }
+ GROW (be->sendBuffer, be->sendBufferSize, 0);
+ }
/* This may have changed the MTU => need to re-do
everything. Since we don't want to possibly
loop forever, give it another shot later;
@@ -1796,6 +1804,12 @@
be->status = STAT_DOWN;
#endif
transport->disconnect (tsession, __FILE__);
+ for (i = 0; i < be->sendBufferSize; i++)
+ {
+ FREENONNULL (be->sendBuffer[i]->closure);
+ FREE (be->sendBuffer[i]);
+ }
+ GROW (be->sendBuffer, be->sendBufferSize, 0);
}
FREE (encryptedMsg);
@@ -3203,9 +3217,6 @@
if (ts != NULL)
{
be->session.tsession = NULL;
-#if STRICT_STAT_DOWN
- be->status = STAT_DOWN;
-#endif
transport->disconnect (ts, __FILE__);
}
be->session.tsession = tsession;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r5514 - GNUnet/src/server,
gnunet <=