aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_neighbours.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-03-27 09:05:19 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-03-27 09:05:19 +0000
commitd6f2620f564effbb3a562ec8c47b46a90580d137 (patch)
treef0879385813e9053695f10b708e0d8eb958bea41 /src/transport/gnunet-service-transport_neighbours.c
parent2064d2f3d860a2e381b94f624f76a5262d3fde47 (diff)
downloadgnunet-d6f2620f564effbb3a562ec8c47b46a90580d137.tar.gz
gnunet-d6f2620f564effbb3a562ec8c47b46a90580d137.zip
Address was not deleted if SEND_CONNECT in FAST RECONNECT failed
Therefore alternative inbound session was not suggested ... This was a hard one...
Diffstat (limited to 'src/transport/gnunet-service-transport_neighbours.c')
-rw-r--r--src/transport/gnunet-service-transport_neighbours.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c
index 7378e72e1..c2430e008 100644
--- a/src/transport/gnunet-service-transport_neighbours.c
+++ b/src/transport/gnunet-service-transport_neighbours.c
@@ -1716,9 +1716,10 @@ send_session_connect (struct NeighbourAddress *na)
1716 struct SessionConnectMessage connect_msg; 1716 struct SessionConnectMessage connect_msg;
1717 struct NeighbourMapEntry *n; 1717 struct NeighbourMapEntry *n;
1718 1718
1719 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1719 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1720 "Sending SESSION_CONNECT message to peer %s\n", 1720 "Sending SESSION_CONNECT message to peer `%s'\n",
1721 GNUNET_i2s (&na->address->peer)); 1721 GNUNET_i2s (&na->address->peer));
1722
1722 if (NULL == (papi = GST_plugins_find (na->address->transport_name))) 1723 if (NULL == (papi = GST_plugins_find (na->address->transport_name)))
1723 { 1724 {
1724 GNUNET_break (0); 1725 GNUNET_break (0);
@@ -1860,9 +1861,10 @@ send_connect_ack_message (const struct GNUNET_HELLO_Address *address,
1860 struct SessionConnectMessage connect_msg; 1861 struct SessionConnectMessage connect_msg;
1861 struct NeighbourMapEntry *n; 1862 struct NeighbourMapEntry *n;
1862 1863
1863 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1864 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
1864 "Sending CONNECT_ACK to peer `%s'\n", 1865 "Sending CONNECT_ACK to peer `%s'\n",
1865 GNUNET_i2s (&address->peer)); 1866 GNUNET_i2s (&address->peer));
1867
1866 if (NULL == (papi = GST_plugins_find (address->transport_name))) 1868 if (NULL == (papi = GST_plugins_find (address->transport_name)))
1867 { 1869 {
1868 GNUNET_break (0); 1870 GNUNET_break (0);
@@ -3189,6 +3191,9 @@ send_session_ack_message (struct NeighbourMapEntry *n)
3189{ 3191{
3190 struct GNUNET_MessageHeader msg; 3192 struct GNUNET_MessageHeader msg;
3191 3193
3194 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Sending SESSION_ACK message to peer `%s'\n",
3195 GNUNET_i2s (&n->id));
3196
3192 msg.size = htons (sizeof (struct GNUNET_MessageHeader)); 3197 msg.size = htons (sizeof (struct GNUNET_MessageHeader));
3193 msg.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_SESSION_ACK); 3198 msg.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_SESSION_ACK);
3194 (void) send_with_session(n, 3199 (void) send_with_session(n,
@@ -3408,8 +3413,10 @@ GST_neighbours_session_terminated (const struct GNUNET_PeerIdentity *peer,
3408 /* The session used to send the CONNECT terminated: 3413 /* The session used to send the CONNECT terminated:
3409 * this implies a connect error*/ 3414 * this implies a connect error*/
3410 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 3415 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
3411 "Could not send CONNECT message with address `%s' session %p: session terminated, requesting new address\n", 3416 "Failed to send CONNECT in %s with `%s' %p: session terminated\n",
3412 GST_plugins_a2s (n->primary_address.address), n->primary_address.session, 3417 "CONNECT_SENT",
3418 GST_plugins_a2s (n->primary_address.address),
3419 n->primary_address.session,
3413 GNUNET_i2s (peer)); 3420 GNUNET_i2s (peer));
3414 GNUNET_ATS_address_destroyed (GST_ats, n->primary_address.address, NULL); 3421 GNUNET_ATS_address_destroyed (GST_ats, n->primary_address.address, NULL);
3415 unset_primary_address (n); 3422 unset_primary_address (n);
@@ -3432,7 +3439,16 @@ GST_neighbours_session_terminated (const struct GNUNET_PeerIdentity *peer,
3432 GNUNET_break (0); 3439 GNUNET_break (0);
3433 break; 3440 break;
3434 case GNUNET_TRANSPORT_PS_RECONNECT_SENT: 3441 case GNUNET_TRANSPORT_PS_RECONNECT_SENT:
3435 set_state_and_timeout (n, GNUNET_TRANSPORT_PS_RECONNECT_ATS, GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT)); 3442 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
3443 "Failed to send CONNECT in %s with `%s' %p: session terminated\n",
3444 "RECONNECT_SENT",
3445 GST_plugins_a2s (n->primary_address.address),
3446 n->primary_address.session,
3447 GNUNET_i2s (peer));
3448 GNUNET_ATS_address_destroyed (GST_ats, n->primary_address.address, NULL);
3449 unset_primary_address (n);
3450 set_state_and_timeout (n, GNUNET_TRANSPORT_PS_RECONNECT_ATS,
3451 GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
3436 break; 3452 break;
3437 case GNUNET_TRANSPORT_PS_CONNECTED_SWITCHING_CONNECT_SENT: 3453 case GNUNET_TRANSPORT_PS_CONNECTED_SWITCHING_CONNECT_SENT:
3438 /* primary went down while we were waiting for CONNECT_ACK on secondary; 3454 /* primary went down while we were waiting for CONNECT_ACK on secondary;