diff options
-rw-r--r-- | src/transport/gnunet-service-transport_neighbours.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c index d8da8235b..a0f9e1fd7 100644 --- a/src/transport/gnunet-service-transport_neighbours.c +++ b/src/transport/gnunet-service-transport_neighbours.c | |||
@@ -3554,6 +3554,18 @@ GST_neighbours_handle_session_ack (const struct GNUNET_MessageHeader *message, | |||
3554 | GNUNET_TRANSPORT_PS_CONNECTED, | 3554 | GNUNET_TRANSPORT_PS_CONNECTED, |
3555 | GNUNET_TIME_relative_to_absolute (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT)); | 3555 | GNUNET_TIME_relative_to_absolute (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT)); |
3556 | 3556 | ||
3557 | if (NULL == n->primary_address.address) { | ||
3558 | /* See issue #3693. | ||
3559 | * We are in state = PSY_SYN_RECV_ACK or ack_state = ACK_SEND_ACK, which | ||
3560 | * really means we did try (and succeed) to send a SYN and are waiting for | ||
3561 | * an ACK. | ||
3562 | * That suggests that the primary_address used to be non-NULL, but maybe it | ||
3563 | * got reset to NULL without the state being changed appropriately? | ||
3564 | */ | ||
3565 | GNUNET_break (0); | ||
3566 | return GNUNET_OK; | ||
3567 | } | ||
3568 | |||
3557 | /* Reset backoff for primary address */ | 3569 | /* Reset backoff for primary address */ |
3558 | GST_ats_block_reset (n->primary_address.address, | 3570 | GST_ats_block_reset (n->primary_address.address, |
3559 | n->primary_address.session); | 3571 | n->primary_address.session); |