sctp: simplify addr copy

Make it a bit easier to read.

Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Marcelo Ricardo Leitner 2016-12-28 09:26:33 -02:00 committed by David S. Miller
parent 1ff0156167
commit 0630c56e40
2 changed files with 14 additions and 20 deletions

View file

@ -412,22 +412,20 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
static void sctp_v6_from_skb(union sctp_addr *addr, struct sk_buff *skb,
int is_saddr)
{
__be16 *port;
struct sctphdr *sh;
/* Always called on head skb, so this is safe */
struct sctphdr *sh = sctp_hdr(skb);
struct sockaddr_in6 *sa = &addr->v6;
port = &addr->v6.sin6_port;
addr->v6.sin6_family = AF_INET6;
addr->v6.sin6_flowinfo = 0; /* FIXME */
addr->v6.sin6_scope_id = ((struct inet6_skb_parm *)skb->cb)->iif;
/* Always called on head skb, so this is safe */
sh = sctp_hdr(skb);
if (is_saddr) {
*port = sh->source;
addr->v6.sin6_addr = ipv6_hdr(skb)->saddr;
sa->sin6_port = sh->source;
sa->sin6_addr = ipv6_hdr(skb)->saddr;
} else {
*port = sh->dest;
addr->v6.sin6_addr = ipv6_hdr(skb)->daddr;
sa->sin6_port = sh->dest;
sa->sin6_addr = ipv6_hdr(skb)->daddr;
}
}