Skip to content

Commit 0e43048

Browse files
committed
Clear failing paths.
1 parent a7ca168 commit 0e43048

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

picoquic/sender.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4245,7 +4245,10 @@ void picoquic_select_next_path_tuple(picoquic_cnx_t* cnx, uint64_t current_time,
42454245
if (cnx->path[path_index]->path_is_demoted) {
42464246
continue;
42474247
}
4248-
if ((*next_tuple = picoquic_check_path_control_needed(cnx, cnx->path[path_index], current_time, next_wake_time)) != NULL) {
4248+
else if (cnx->is_multipath_enabled && cnx->path[path_index]->first_tuple->challenge_failed && !cnx->path[path_index]->path_abandon_sent) {
4249+
(void)picoquic_abandon_path(cnx, cnx->path[path_index]->unique_path_id, PICOQUIC_TRANSPORT_UNSTABLE_INTERFACE, NULL, current_time);
4250+
}
4251+
else if ((*next_tuple = picoquic_check_path_control_needed(cnx, cnx->path[path_index], current_time, next_wake_time)) != NULL) {
42494252
*next_path = cnx->path[path_index];
42504253
(*next_path)->challenger++;
42514254
break;

picoquictest/multipath_test.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1825,9 +1825,9 @@ int multipath_tunnel_test()
18251825
* Key values include:
18261826
* cnx->path[i]->status_set_by_peer
18271827
* cnx->path[i]->path_is_demoted
1828-
* cnx->path[i]->challenge_failed (leads to demotion)
1829-
* cnx->path[i]->response_required (set challenge path)
1830-
* cnx->path[i]->challenge_verified (and next challenge time)
1828+
* cnx->path[i]->first_tuple->challenge_failed (leads to demotion)
1829+
* cnx->path[i]->first_tuple->response_required (set challenge path)
1830+
* cnx->path[i]->first_tuple->challenge_verified (and next challenge time)
18311831
* cnx->path[i]->challenge_repeat_count
18321832
* cnx->path[i]->nb_retransmit
18331833
* cnx->path[i]->rtt_min

0 commit comments

Comments
 (0)