aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_neighbours.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-03-24 15:26:46 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-03-24 15:26:46 +0000
commita2fb5eb15adad0bf20cd7a495abad2b128d2e8b1 (patch)
tree202dc5853197478f2dec4c98690ec12907a47814 /src/transport/gnunet-service-transport_neighbours.c
parent5129c547b91409174c0d6a0c6f9440ae05a43dba (diff)
downloadgnunet-a2fb5eb15adad0bf20cd7a495abad2b128d2e8b1.tar.gz
gnunet-a2fb5eb15adad0bf20cd7a495abad2b128d2e8b1.zip
FIX:
In ATS fast reconnect the timeout was not set correctly if reconnect was successful and neighbour was disconnected in master task after 1 second
Diffstat (limited to 'src/transport/gnunet-service-transport_neighbours.c')
-rw-r--r--src/transport/gnunet-service-transport_neighbours.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c
index cd1d7aa1f..daab28191 100644
--- a/src/transport/gnunet-service-transport_neighbours.c
+++ b/src/transport/gnunet-service-transport_neighbours.c
@@ -3063,7 +3063,7 @@ master_task (void *cls,
3063 3063
3064 n->task = GNUNET_SCHEDULER_NO_TASK; 3064 n->task = GNUNET_SCHEDULER_NO_TASK;
3065 delay = GNUNET_TIME_absolute_get_remaining (n->timeout); 3065 delay = GNUNET_TIME_absolute_get_remaining (n->timeout);
3066 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3066 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
3067 "Master task runs for neighbour `%s' in state %s with timeout in %s\n", 3067 "Master task runs for neighbour `%s' in state %s with timeout in %s\n",
3068 GNUNET_i2s (&n->id), 3068 GNUNET_i2s (&n->id),
3069 GNUNET_TRANSPORT_ps2s(n->state), 3069 GNUNET_TRANSPORT_ps2s(n->state),
@@ -3330,7 +3330,8 @@ GST_neighbours_handle_connect_ack (const struct GNUNET_MessageHeader *message,
3330 "CONNECT_ACK ignored as the timestamp does not match our CONNECT request\n"); 3330 "CONNECT_ACK ignored as the timestamp does not match our CONNECT request\n");
3331 return GNUNET_OK; 3331 return GNUNET_OK;
3332 } 3332 }
3333 set_state_and_timeout (n, GNUNET_TRANSPORT_PS_CONNECTED, GNUNET_TIME_relative_to_absolute (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT)); 3333 set_state_and_timeout (n, GNUNET_TRANSPORT_PS_CONNECTED,
3334 GNUNET_TIME_relative_to_absolute (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT));
3334 GNUNET_STATISTICS_set (GST_stats, 3335 GNUNET_STATISTICS_set (GST_stats,
3335 gettext_noop ("# peers connected"), 3336 gettext_noop ("# peers connected"),
3336 ++neighbours_connected, 3337 ++neighbours_connected,
@@ -3374,7 +3375,8 @@ GST_neighbours_handle_connect_ack (const struct GNUNET_MessageHeader *message,
3374 break; 3375 break;
3375 case GNUNET_TRANSPORT_PS_RECONNECT_SENT: 3376 case GNUNET_TRANSPORT_PS_RECONNECT_SENT:
3376 /* new address worked; go back to connected! */ 3377 /* new address worked; go back to connected! */
3377 set_state (n, GNUNET_TRANSPORT_PS_CONNECTED); 3378 set_state_and_timeout (n, GNUNET_TRANSPORT_PS_CONNECTED,
3379 GNUNET_TIME_relative_to_absolute (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT));
3378 send_session_ack_message (n); 3380 send_session_ack_message (n);
3379 break; 3381 break;
3380 case GNUNET_TRANSPORT_PS_CONNECTED_SWITCHING_BLACKLIST: 3382 case GNUNET_TRANSPORT_PS_CONNECTED_SWITCHING_BLACKLIST:
@@ -3660,7 +3662,7 @@ GST_neighbours_set_incoming_quota (const struct GNUNET_PeerIdentity *neighbour,
3660 GNUNET_BANDWIDTH_tracker_update_quota (&n->in_tracker, quota); 3662 GNUNET_BANDWIDTH_tracker_update_quota (&n->in_tracker, quota);
3661 if (0 != ntohl (quota.value__)) 3663 if (0 != ntohl (quota.value__))
3662 return; 3664 return;
3663 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3665 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
3664 "Disconnecting peer `%4s' due to SET_QUOTA\n", 3666 "Disconnecting peer `%4s' due to SET_QUOTA\n",
3665 GNUNET_i2s (&n->id)); 3667 GNUNET_i2s (&n->id));
3666 if (GNUNET_YES == test_connected (n)) 3668 if (GNUNET_YES == test_connected (n))
@@ -3685,7 +3687,7 @@ GST_neighbours_handle_disconnect_message (const struct GNUNET_PeerIdentity *peer
3685 struct NeighbourMapEntry *n; 3687 struct NeighbourMapEntry *n;
3686 const struct SessionDisconnectMessage *sdm; 3688 const struct SessionDisconnectMessage *sdm;
3687 3689
3688 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3690 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
3689 "Received DISCONNECT message from peer `%s'\n", 3691 "Received DISCONNECT message from peer `%s'\n",
3690 GNUNET_i2s (peer)); 3692 GNUNET_i2s (peer));
3691 if (ntohs (msg->size) != sizeof (struct SessionDisconnectMessage)) 3693 if (ntohs (msg->size) != sizeof (struct SessionDisconnectMessage))
@@ -3845,7 +3847,7 @@ GST_neighbours_force_disconnect (const struct GNUNET_PeerIdentity *target)
3845 gettext_noop 3847 gettext_noop
3846 ("# disconnected from peer upon explicit request"), 1, 3848 ("# disconnected from peer upon explicit request"), 1,
3847 GNUNET_NO); 3849 GNUNET_NO);
3848 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3850 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
3849 "Forced disconnect from peer %s\n", 3851 "Forced disconnect from peer %s\n",
3850 GNUNET_i2s (target)); 3852 GNUNET_i2s (target));
3851 disconnect_neighbour (n); 3853 disconnect_neighbour (n);