diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2014-03-24 15:26:46 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2014-03-24 15:26:46 +0000 |
commit | a2fb5eb15adad0bf20cd7a495abad2b128d2e8b1 (patch) | |
tree | 202dc5853197478f2dec4c98690ec12907a47814 /src/transport/gnunet-service-transport_neighbours.c | |
parent | 5129c547b91409174c0d6a0c6f9440ae05a43dba (diff) | |
download | gnunet-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.c | 14 |
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); |