forked from luck/tmp_suning_uos_patched
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:
parent
1ff0156167
commit
0630c56e40
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -237,23 +237,19 @@ int sctp_copy_local_addr_list(struct net *net, struct sctp_bind_addr *bp,
|
|||
static void sctp_v4_from_skb(union sctp_addr *addr, struct sk_buff *skb,
|
||||
int is_saddr)
|
||||
{
|
||||
void *from;
|
||||
__be16 *port;
|
||||
struct sctphdr *sh;
|
||||
/* Always called on head skb, so this is safe */
|
||||
struct sctphdr *sh = sctp_hdr(skb);
|
||||
struct sockaddr_in *sa = &addr->v4;
|
||||
|
||||
port = &addr->v4.sin_port;
|
||||
addr->v4.sin_family = AF_INET;
|
||||
|
||||
/* Always called on head skb, so this is safe */
|
||||
sh = sctp_hdr(skb);
|
||||
if (is_saddr) {
|
||||
*port = sh->source;
|
||||
from = &ip_hdr(skb)->saddr;
|
||||
sa->sin_port = sh->source;
|
||||
sa->sin_addr.s_addr = ip_hdr(skb)->saddr;
|
||||
} else {
|
||||
*port = sh->dest;
|
||||
from = &ip_hdr(skb)->daddr;
|
||||
sa->sin_port = sh->dest;
|
||||
sa->sin_addr.s_addr = ip_hdr(skb)->daddr;
|
||||
}
|
||||
memcpy(&addr->v4.sin_addr.s_addr, from, sizeof(struct in_addr));
|
||||
}
|
||||
|
||||
/* Initialize an sctp_addr from a socket. */
|
||||
|
|
Loading…
Reference in New Issue
Block a user