[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r15717 - gnunet/src/util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r15717 - gnunet/src/util |
Date: |
Mon, 20 Jun 2011 09:47:16 +0200 |
Author: grothoff
Date: 2011-06-20 09:47:16 +0200 (Mon, 20 Jun 2011)
New Revision: 15717
Modified:
gnunet/src/util/connection.c
Log:
tolerate partial writes better
Modified: gnunet/src/util/connection.c
===================================================================
--- gnunet/src/util/connection.c 2011-06-20 07:39:00 UTC (rev 15716)
+++ gnunet/src/util/connection.c 2011-06-20 07:47:16 UTC (rev 15717)
@@ -1502,8 +1502,11 @@
GNUNET_a2s (sock->addr, sock->addrlen), sock);
#endif
notify = sock->nth.notify_ready;
- sock->nth.notify_ready = NULL;
- notify (sock->nth.notify_ready_cls, 0, NULL);
+ if (NULL != notify)
+ {
+ sock->nth.notify_ready = NULL;
+ notify (sock->nth.notify_ready_cls, 0, NULL);
+ }
return;
}
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_TIMEOUT))
@@ -1514,6 +1517,7 @@
GNUNET_a2s (sock->addr, sock->addrlen), sock);
#endif
notify = sock->nth.notify_ready;
+ GNUNET_assert (NULL != notify);
sock->nth.notify_ready = NULL;
notify (sock->nth.notify_ready_cls, 0, NULL);
return;
@@ -1599,12 +1603,14 @@
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Re-scheduling transmit_ready (more to do) (%p).\n", sock);
#endif
- GNUNET_assert (sock->nth.notify_ready != NULL);
+ GNUNET_assert ( (sock->nth.notify_ready != NULL) || (have > 0) );
if (sock->write_task == GNUNET_SCHEDULER_NO_TASK)
sock->write_task =
- GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_absolute_get_remaining
- (sock->nth.transmit_timeout),
- sock->sock, &transmit_ready, sock);
+ GNUNET_SCHEDULER_add_write_net ((have > 0)
+ ? GNUNET_TIME_UNIT_FOREVER_REL
+ : GNUNET_TIME_absolute_get_remaining
(sock->nth.transmit_timeout),
+ sock->sock,
+ &transmit_ready, sock);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r15717 - gnunet/src/util,
gnunet <=