diff options
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/associola.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 78d2ddb5ca18..85af1cb70fe8 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -714,8 +714,16 @@ void sctp_assoc_control_transport(struct sctp_association *asoc, | |||
714 | /* Record the transition on the transport. */ | 714 | /* Record the transition on the transport. */ |
715 | switch (command) { | 715 | switch (command) { |
716 | case SCTP_TRANSPORT_UP: | 716 | case SCTP_TRANSPORT_UP: |
717 | /* If we are moving from UNCONFIRMED state due | ||
718 | * to heartbeat success, report the SCTP_ADDR_CONFIRMED | ||
719 | * state to the user, otherwise report SCTP_ADDR_AVAILABLE. | ||
720 | */ | ||
721 | if (SCTP_UNCONFIRMED == transport->state && | ||
722 | SCTP_HEARTBEAT_SUCCESS == error) | ||
723 | spc_state = SCTP_ADDR_CONFIRMED; | ||
724 | else | ||
725 | spc_state = SCTP_ADDR_AVAILABLE; | ||
717 | transport->state = SCTP_ACTIVE; | 726 | transport->state = SCTP_ACTIVE; |
718 | spc_state = SCTP_ADDR_AVAILABLE; | ||
719 | break; | 727 | break; |
720 | 728 | ||
721 | case SCTP_TRANSPORT_DOWN: | 729 | case SCTP_TRANSPORT_DOWN: |