Loading net/sctp/ipv6.c +2 −2 Original line number Diff line number Diff line Loading @@ -292,9 +292,9 @@ static void sctp_v6_get_saddr(struct sctp_association *asoc, if ((laddr->use_as_src) && (laddr->a_h.sa.sa_family == AF_INET6) && (scope <= sctp_scope(&laddr->a_h))) { bmatchlen = sctp_v6_addr_match_len(daddr, &laddr->a_h); bmatchlen = sctp_v6_addr_match_len(daddr, &laddr->a); if (!baddr || (matchlen < bmatchlen)) { baddr = &laddr->a_h; baddr = &laddr->a; matchlen = bmatchlen; } } Loading net/sctp/protocol.c +1 −1 Original line number Diff line number Diff line Loading @@ -539,7 +539,7 @@ static void sctp_v4_get_saddr(struct sctp_association *asoc, if (rt) { saddr->v4.sin_family = AF_INET; saddr->v4.sin_port = asoc->base.bind_addr.port; saddr->v4.sin_port = htons(asoc->base.bind_addr.port); saddr->v4.sin_addr.s_addr = rt->rt_src; } } Loading net/sctp/transport.c +6 −4 Original line number Diff line number Diff line Loading @@ -256,11 +256,13 @@ void sctp_transport_route(struct sctp_transport *transport, dst = af->get_dst(asoc, daddr, saddr); if (saddr) if (saddr) { memcpy(&transport->saddr_h, saddr, sizeof(union sctp_addr)); else af->get_saddr(asoc, dst, daddr, &transport->saddr_h); flip_to_n(&transport->saddr, &transport->saddr_h); } else { af->get_saddr(asoc, dst, &transport->ipaddr, &transport->saddr); flip_to_h(&transport->saddr_h, &transport->saddr); } transport->dst = dst; if ((transport->param_flags & SPP_PMTUD_DISABLE) && transport->pathmtu) { Loading Loading
net/sctp/ipv6.c +2 −2 Original line number Diff line number Diff line Loading @@ -292,9 +292,9 @@ static void sctp_v6_get_saddr(struct sctp_association *asoc, if ((laddr->use_as_src) && (laddr->a_h.sa.sa_family == AF_INET6) && (scope <= sctp_scope(&laddr->a_h))) { bmatchlen = sctp_v6_addr_match_len(daddr, &laddr->a_h); bmatchlen = sctp_v6_addr_match_len(daddr, &laddr->a); if (!baddr || (matchlen < bmatchlen)) { baddr = &laddr->a_h; baddr = &laddr->a; matchlen = bmatchlen; } } Loading
net/sctp/protocol.c +1 −1 Original line number Diff line number Diff line Loading @@ -539,7 +539,7 @@ static void sctp_v4_get_saddr(struct sctp_association *asoc, if (rt) { saddr->v4.sin_family = AF_INET; saddr->v4.sin_port = asoc->base.bind_addr.port; saddr->v4.sin_port = htons(asoc->base.bind_addr.port); saddr->v4.sin_addr.s_addr = rt->rt_src; } } Loading
net/sctp/transport.c +6 −4 Original line number Diff line number Diff line Loading @@ -256,11 +256,13 @@ void sctp_transport_route(struct sctp_transport *transport, dst = af->get_dst(asoc, daddr, saddr); if (saddr) if (saddr) { memcpy(&transport->saddr_h, saddr, sizeof(union sctp_addr)); else af->get_saddr(asoc, dst, daddr, &transport->saddr_h); flip_to_n(&transport->saddr, &transport->saddr_h); } else { af->get_saddr(asoc, dst, &transport->ipaddr, &transport->saddr); flip_to_h(&transport->saddr_h, &transport->saddr); } transport->dst = dst; if ((transport->param_flags & SPP_PMTUD_DISABLE) && transport->pathmtu) { Loading