[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25373 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25373 - gnunet/src/fs |
Date: |
Mon, 10 Dec 2012 16:52:05 +0100 |
Author: grothoff
Date: 2012-12-10 16:52:05 +0100 (Mon, 10 Dec 2012)
New Revision: 25373
Modified:
gnunet/src/fs/gnunet-service-fs_stream.c
Log:
-auto reset non-progressing streams after 30s -- hides #2672
Modified: gnunet/src/fs/gnunet-service-fs_stream.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_stream.c 2012-12-10 15:38:18 UTC (rev
25372)
+++ gnunet/src/fs/gnunet-service-fs_stream.c 2012-12-10 15:52:05 UTC (rev
25373)
@@ -38,7 +38,12 @@
*/
#define IDLE_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES,
2)
+/**
+ * After how long do we reset connections without replies?
+ */
+#define CLIENT_RETRY_TIMEOUT GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_SECONDS, 30)
+
/**
* A message in the queue to be written to the stream.
*/
@@ -524,9 +529,10 @@
static void
reset_stream_async (struct StreamHandle *sh)
{
- if (GNUNET_SCHEDULER_NO_TASK == sh->reset_task)
- sh->reset_task = GNUNET_SCHEDULER_add_now (&reset_stream_task,
- sh);
+ if (GNUNET_SCHEDULER_NO_TASK != sh->reset_task)
+ GNUNET_SCHEDULER_cancel (sh->reset_task);
+ sh->reset_task = GNUNET_SCHEDULER_add_now (&reset_stream_task,
+ sh);
}
@@ -549,6 +555,10 @@
struct StreamHandle *sh = cls;
sh->rh = NULL;
+ GNUNET_SCHEDULER_cancel (sh->reset_task);
+ sh->reset_task = GNUNET_SCHEDULER_add_delayed (CLIENT_RETRY_TIMEOUT,
+ &reset_stream_task,
+ sh);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received %u bytes from stream to %s\n",
(unsigned int) size,
@@ -811,6 +821,9 @@
"Creating stream to %s\n",
GNUNET_i2s (target));
sh = GNUNET_malloc (sizeof (struct StreamHandle));
+ sh->reset_task = GNUNET_SCHEDULER_add_delayed (CLIENT_RETRY_TIMEOUT,
+ &reset_stream_task,
+ sh);
sh->mst = GNUNET_SERVER_mst_create (&reply_cb,
sh);
sh->waiting_map = GNUNET_CONTAINER_multihashmap_create (512, GNUNET_YES);
@@ -1128,6 +1141,9 @@
struct StreamClient *sc = cls;
sc->wh = NULL;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Write continuation called on 'server' side with status %d\n",
+ status);
if ( (GNUNET_STREAM_OK != status) ||
(size != sc->reply_size) )
{
@@ -1177,6 +1193,10 @@
GNUNET_TIME_UNIT_FOREVER_REL,
&write_continuation,
sc);
+ if (NULL != sc->wh)
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Gave %u bytes for stream for transmission\n",
+ (unsigned int) wqi->msize);
GNUNET_free (wqi);
if (NULL == sc->wh)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25373 - gnunet/src/fs,
gnunet <=