diff options
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r-- | net/sctp/associola.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 33ae9b01131e..61bebb9b96e6 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -730,6 +730,23 @@ struct sctp_transport *sctp_assoc_lookup_paddr( | |||
730 | return NULL; | 730 | return NULL; |
731 | } | 731 | } |
732 | 732 | ||
733 | /* Remove all transports except a give one */ | ||
734 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *asoc, | ||
735 | struct sctp_transport *primary) | ||
736 | { | ||
737 | struct sctp_transport *temp; | ||
738 | struct sctp_transport *t; | ||
739 | |||
740 | list_for_each_entry_safe(t, temp, &asoc->peer.transport_addr_list, | ||
741 | transports) { | ||
742 | /* if the current transport is not the primary one, delete it */ | ||
743 | if (t != primary) | ||
744 | sctp_assoc_rm_peer(asoc, t); | ||
745 | } | ||
746 | |||
747 | return; | ||
748 | } | ||
749 | |||
733 | /* Engage in transport control operations. | 750 | /* Engage in transport control operations. |
734 | * Mark the transport up or down and send a notification to the user. | 751 | * Mark the transport up or down and send a notification to the user. |
735 | * Select and update the new active and retran paths. | 752 | * Select and update the new active and retran paths. |