|
@@ -762,7 +762,8 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
|
|
|
asoc->peer.retran_path = peer;
|
|
|
}
|
|
|
|
|
|
- if (asoc->peer.active_path == asoc->peer.retran_path) {
|
|
|
+ if (asoc->peer.active_path == asoc->peer.retran_path &&
|
|
|
+ peer->state != SCTP_UNCONFIRMED) {
|
|
|
asoc->peer.retran_path = peer;
|
|
|
}
|
|
|
|
|
@@ -1318,7 +1319,7 @@ void sctp_assoc_update_retran_path(struct sctp_association *asoc)
|
|
|
/* Keep track of the next transport in case
|
|
|
* we don't find any active transport.
|
|
|
*/
|
|
|
- if (!next)
|
|
|
+ if (t->state != SCTP_UNCONFIRMED && !next)
|
|
|
next = t;
|
|
|
}
|
|
|
}
|