diff options
Diffstat (limited to 'net/sctp/transport.c')
| -rw-r--r-- | net/sctp/transport.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/sctp/transport.c b/net/sctp/transport.c index 1f56c9d95739..bacd09448b8e 100644 --- a/net/sctp/transport.c +++ b/net/sctp/transport.c | |||
| @@ -62,10 +62,12 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer, | |||
| 62 | { | 62 | { |
| 63 | /* Copy in the address. */ | 63 | /* Copy in the address. */ |
| 64 | peer->ipaddr_h = *addr; | 64 | peer->ipaddr_h = *addr; |
| 65 | flip_to_n(&peer->ipaddr, &peer->ipaddr_h); | ||
| 65 | peer->af_specific = sctp_get_af_specific(addr->sa.sa_family); | 66 | peer->af_specific = sctp_get_af_specific(addr->sa.sa_family); |
| 66 | peer->asoc = NULL; | 67 | peer->asoc = NULL; |
| 67 | 68 | ||
| 68 | peer->dst = NULL; | 69 | peer->dst = NULL; |
| 70 | memset(&peer->saddr, 0, sizeof(union sctp_addr)); | ||
| 69 | memset(&peer->saddr_h, 0, sizeof(union sctp_addr)); | 71 | memset(&peer->saddr_h, 0, sizeof(union sctp_addr)); |
| 70 | 72 | ||
| 71 | /* From 6.3.1 RTO Calculation: | 73 | /* From 6.3.1 RTO Calculation: |
| @@ -258,6 +260,7 @@ void sctp_transport_route(struct sctp_transport *transport, | |||
| 258 | memcpy(&transport->saddr_h, saddr, sizeof(union sctp_addr)); | 260 | memcpy(&transport->saddr_h, saddr, sizeof(union sctp_addr)); |
| 259 | else | 261 | else |
| 260 | af->get_saddr(asoc, dst, daddr, &transport->saddr_h); | 262 | af->get_saddr(asoc, dst, daddr, &transport->saddr_h); |
| 263 | flip_to_n(&transport->saddr, &transport->saddr_h); | ||
| 261 | 264 | ||
| 262 | transport->dst = dst; | 265 | transport->dst = dst; |
| 263 | if ((transport->param_flags & SPP_PMTUD_DISABLE) && transport->pathmtu) { | 266 | if ((transport->param_flags & SPP_PMTUD_DISABLE) && transport->pathmtu) { |
