sctp: update the route for non-active transports after addresses are added

Update the route and saddr entries for the non-active transports as some
of the added addresses can be used as better source addresses, or may
be there is a better route.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
This commit is contained in:
Wei Yongjun 2009-06-16 10:07:23 +08:00 committed by Vlad Yasevich
parent 44e65c1ef1
commit 3cd9749c0b

View File

@ -3134,6 +3134,14 @@ static void sctp_asconf_param_success(struct sctp_association *asoc,
saddr->state = SCTP_ADDR_SRC;
}
local_bh_enable();
list_for_each_entry(transport, &asoc->peer.transport_addr_list,
transports) {
if (transport->state == SCTP_ACTIVE)
continue;
dst_release(transport->dst);
sctp_transport_route(transport, NULL,
sctp_sk(asoc->base.sk));
}
break;
case SCTP_PARAM_DEL_IP:
local_bh_disable();