diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2011-11-02 09:10:51 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2011-11-02 09:10:51 +0000 |
commit | db654decb01a63fe8e80ed6d03d9a0594d30e3e5 (patch) | |
tree | ff17478723a36896c46210e8921c8b04c1229895 /src/transport/gnunet-service-transport_neighbours.c | |
parent | d7cb39fe2f10129acb2a2f6fdab6c1f0365cf931 (diff) | |
download | gnunet-db654decb01a63fe8e80ed6d03d9a0594d30e3e5.tar.gz gnunet-db654decb01a63fe8e80ed6d03d9a0594d30e3e5.zip |
fixing https://www.gnunet.org/bugs/view.php?id=1867
Diffstat (limited to 'src/transport/gnunet-service-transport_neighbours.c')
-rw-r--r-- | src/transport/gnunet-service-transport_neighbours.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c index 7c2536eb1..93a8c893c 100644 --- a/src/transport/gnunet-service-transport_neighbours.c +++ b/src/transport/gnunet-service-transport_neighbours.c | |||
@@ -579,6 +579,7 @@ send_with_plugin ( const struct GNUNET_PeerIdentity * target, | |||
579 | struct GNUNET_TRANSPORT_PluginFunctions *papi; | 579 | struct GNUNET_TRANSPORT_PluginFunctions *papi; |
580 | size_t ret = GNUNET_SYSERR; | 580 | size_t ret = GNUNET_SYSERR; |
581 | 581 | ||
582 | GNUNET_assert (plugin_name != NULL); | ||
582 | papi = GST_plugins_find (plugin_name); | 583 | papi = GST_plugins_find (plugin_name); |
583 | if (papi == NULL) | 584 | if (papi == NULL) |
584 | { | 585 | { |
@@ -1033,6 +1034,7 @@ send_connect_continuation (void *cls, | |||
1033 | 1034 | ||
1034 | if (is_disconnecting(n)) | 1035 | if (is_disconnecting(n)) |
1035 | return; /* neighbour is going away */ | 1036 | return; /* neighbour is going away */ |
1037 | |||
1036 | if (GNUNET_YES != success) | 1038 | if (GNUNET_YES != success) |
1037 | { | 1039 | { |
1038 | #if DEBUG_TRANSPORT | 1040 | #if DEBUG_TRANSPORT |
@@ -1052,13 +1054,16 @@ send_connect_continuation (void *cls, | |||
1052 | n->addrlen, | 1054 | n->addrlen, |
1053 | NULL); | 1055 | NULL); |
1054 | 1056 | ||
1057 | change_state(n, S_NOT_CONNECTED); | ||
1058 | |||
1055 | if (n->ats_suggest!= GNUNET_SCHEDULER_NO_TASK) | 1059 | if (n->ats_suggest!= GNUNET_SCHEDULER_NO_TASK) |
1056 | GNUNET_SCHEDULER_cancel(n->ats_suggest); | 1060 | GNUNET_SCHEDULER_cancel(n->ats_suggest); |
1057 | n->ats_suggest = GNUNET_SCHEDULER_add_delayed (ATS_RESPONSE_TIMEOUT, ats_suggest_cancel, n); | 1061 | n->ats_suggest = GNUNET_SCHEDULER_add_delayed (ATS_RESPONSE_TIMEOUT, ats_suggest_cancel, n); |
1058 | GNUNET_ATS_suggest_address(GST_ats, &n->id); | 1062 | GNUNET_ATS_suggest_address(GST_ats, &n->id); |
1059 | return; | 1063 | return; |
1060 | } | 1064 | } |
1061 | change_state(n, S_CONNECT_SENT); | 1065 | |
1066 | |||
1062 | } | 1067 | } |
1063 | 1068 | ||
1064 | 1069 | ||
@@ -1275,6 +1280,8 @@ GST_neighbours_switch_to_address_3way (const struct GNUNET_PeerIdentity *peer, | |||
1275 | connect_msg.timestamp = | 1280 | connect_msg.timestamp = |
1276 | GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ()); | 1281 | GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ()); |
1277 | 1282 | ||
1283 | change_state (n, S_CONNECT_SENT); | ||
1284 | |||
1278 | ret = send_with_plugin (peer, (const char *) &connect_msg, msg_len, UINT32_MAX, GNUNET_TIME_UNIT_FOREVER_REL, | 1285 | ret = send_with_plugin (peer, (const char *) &connect_msg, msg_len, UINT32_MAX, GNUNET_TIME_UNIT_FOREVER_REL, |
1279 | session, plugin_name, address, address_len, | 1286 | session, plugin_name, address, address_len, |
1280 | GNUNET_YES, &send_connect_continuation, n); | 1287 | GNUNET_YES, &send_connect_continuation, n); |
@@ -1324,7 +1331,6 @@ GST_neighbours_switch_to_address_3way (const struct GNUNET_PeerIdentity *peer, | |||
1324 | } | 1331 | } |
1325 | else if (n->state == S_CONNECT_SENT) | 1332 | else if (n->state == S_CONNECT_SENT) |
1326 | { | 1333 | { |
1327 | //FIXME | ||
1328 | return GNUNET_NO; | 1334 | return GNUNET_NO; |
1329 | } | 1335 | } |
1330 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Invalid connection state to switch addresses %u \n", n->state); | 1336 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Invalid connection state to switch addresses %u \n", n->state); |