[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r18689 - in gnunet/src: ats transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r18689 - in gnunet/src: ats transport |
Date: |
Mon, 19 Dec 2011 15:25:34 +0100 |
Author: wachs
Date: 2011-12-19 15:25:34 +0100 (Mon, 19 Dec 2011)
New Revision: 18689
Modified:
gnunet/src/ats/ats_api_scheduling.c
gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
fixes for mantis #1988
and cleanup
Modified: gnunet/src/ats/ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/ats_api_scheduling.c 2011-12-19 14:10:15 UTC (rev 18688)
+++ gnunet/src/ats/ats_api_scheduling.c 2011-12-19 14:25:34 UTC (rev 18689)
@@ -1018,6 +1018,11 @@
size_t namelen;
size_t msize;
+ if ((address == NULL) && (session == NULL))
+ {
+ GNUNET_break (0);
+ }
+
namelen =
(address->transport_name ==
NULL) ? 0 : strlen (address->transport_name) + 1;
Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c 2011-12-19
14:10:15 UTC (rev 18688)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c 2011-12-19
14:25:34 UTC (rev 18689)
@@ -874,9 +874,8 @@
if (is_disconnecting (n))
return;
-
/* send DISCONNECT MESSAGE */
- if ((previous_state == S_CONNECTED) || is_connecting (n))
+ if (previous_state == S_CONNECTED)
{
if (GNUNET_OK == send_disconnect (&n->id, n->address, n->session))
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sent DISCONNECT_MSG to `%s'\n",
@@ -926,22 +925,22 @@
switch (previous_state)
{
case S_CONNECTED:
-// GNUNET_assert (neighbours_connected > 0);
+ GNUNET_assert (neighbours_connected > 0);
neighbours_connected--;
GNUNET_assert (GNUNET_SCHEDULER_NO_TASK != n->keepalive_task);
GNUNET_SCHEDULER_cancel (n->keepalive_task);
n->keepalive_task = GNUNET_SCHEDULER_NO_TASK;
+ n->expect_latency_response = GNUNET_NO;
GNUNET_STATISTICS_update (GST_stats, gettext_noop ("# peers connected"),
-1,
GNUNET_NO);
disconnect_notify_cb (callback_cls, &n->id);
break;
case S_FAST_RECONNECT:
- GNUNET_STATISTICS_update (GST_stats, gettext_noop ("# peers connected"),
-1,
- GNUNET_NO);
GNUNET_STATISTICS_update (GST_stats,
gettext_noop ("# fast reconnects failed"), 1,
GNUNET_NO);
disconnect_notify_cb (callback_cls, &n->id);
+ break;
default:
break;
}
@@ -1014,11 +1013,11 @@
struct GNUNET_MessageHeader m;
int ret;
+ GNUNET_assert (S_CONNECTED == n->state);
n->keepalive_task =
GNUNET_SCHEDULER_add_delayed (KEEPALIVE_FREQUENCY,
&neighbour_keepalive_task, n);
- GNUNET_assert (S_CONNECTED == n->state);
GNUNET_STATISTICS_update (GST_stats, gettext_noop ("# keepalives sent"), 1,
GNUNET_NO);
m.size = htons (sizeof (struct GNUNET_MessageHeader));
@@ -1716,31 +1715,37 @@
if (S_CONNECTED != n->state)
return;
+ if (n->keepalive_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (n->keepalive_task);
+ n->keepalive_task = GNUNET_SCHEDULER_NO_TASK;
+ n->expect_latency_response = GNUNET_NO;
+ }
+
/* connected, try fast reconnect */
+ /* statistics "transport" : "# peers connected" -= 1
+ * neighbours_connected -= 1
+ * BUT: no disconnect_cb to notify clients about disconnect
+ */
#if DEBUG_TRANSPORT
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying fast reconnect to peer `%s'\n",
GNUNET_i2s (peer));
#endif
+ GNUNET_assert (neighbours_connected > 0);
change_state (n, S_FAST_RECONNECT);
- GNUNET_assert (neighbours_connected > 0);
neighbours_connected--;
+ GNUNET_STATISTICS_update (GST_stats, gettext_noop ("# peers connected"), -1,
+ GNUNET_NO);
- if (n->keepalive_task != GNUNET_SCHEDULER_NO_TASK)
- {
- GNUNET_SCHEDULER_cancel (n->keepalive_task);
- n->keepalive_task = GNUNET_SCHEDULER_NO_TASK;
- }
/* We are connected, so ask ATS to switch addresses */
GNUNET_SCHEDULER_cancel (n->timeout_task);
- n->timeout_task =
- GNUNET_SCHEDULER_add_delayed
(GNUNET_CONSTANTS_DISCONNECT_SESSION_TIMEOUT,
+ n->timeout_task = GNUNET_SCHEDULER_add_delayed
(GNUNET_CONSTANTS_DISCONNECT_SESSION_TIMEOUT,
&neighbour_timeout_task, n);
/* try QUICKLY to re-establish a connection, reduce timeout! */
if (n->ats_suggest != GNUNET_SCHEDULER_NO_TASK)
GNUNET_SCHEDULER_cancel (n->ats_suggest);
- n->ats_suggest =
- GNUNET_SCHEDULER_add_delayed (ATS_RESPONSE_TIMEOUT, &ats_suggest_cancel,
+ n->ats_suggest = GNUNET_SCHEDULER_add_delayed (ATS_RESPONSE_TIMEOUT,
&ats_suggest_cancel,
n);
GNUNET_ATS_suggest_address (GST_ats, peer);
}
@@ -1995,7 +2000,7 @@
}
n = lookup_neighbour (neighbour);
- if (NULL == n)
+ if ((NULL == n) || (n->state != S_CONNECTED))
{
GNUNET_STATISTICS_update (GST_stats,
gettext_noop
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18689 - in gnunet/src: ats transport,
gnunet <=