xfrm: SA lookups signature with mark
pass mark to all SA lookups to prepare them for when we add code to have them search. Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
bf825f81b4
commit
bd55775c8d
@ -43,6 +43,8 @@ struct netns_pfkey {
|
||||
};
|
||||
static DEFINE_MUTEX(pfkey_mutex);
|
||||
|
||||
#define DUMMY_MARK 0
|
||||
static struct xfrm_mark dummy_mark = {0, 0};
|
||||
struct pfkey_sock {
|
||||
/* struct sock must be the first member of struct pfkey_sock */
|
||||
struct sock sk;
|
||||
@ -647,7 +649,7 @@ static struct xfrm_state *pfkey_xfrm_state_lookup(struct net *net, struct sadb_
|
||||
if (!xaddr)
|
||||
return NULL;
|
||||
|
||||
return xfrm_state_lookup(net, xaddr, sa->sadb_sa_spi, proto, family);
|
||||
return xfrm_state_lookup(net, DUMMY_MARK, xaddr, sa->sadb_sa_spi, proto, family);
|
||||
}
|
||||
|
||||
#define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1)))
|
||||
@ -1316,7 +1318,7 @@ static int pfkey_getspi(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
|
||||
}
|
||||
|
||||
if (hdr->sadb_msg_seq) {
|
||||
x = xfrm_find_acq_byseq(net, hdr->sadb_msg_seq);
|
||||
x = xfrm_find_acq_byseq(net, DUMMY_MARK, hdr->sadb_msg_seq);
|
||||
if (x && xfrm_addr_cmp(&x->id.daddr, xdaddr, family)) {
|
||||
xfrm_state_put(x);
|
||||
x = NULL;
|
||||
@ -1324,7 +1326,7 @@ static int pfkey_getspi(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
|
||||
}
|
||||
|
||||
if (!x)
|
||||
x = xfrm_find_acq(net, mode, reqid, proto, xdaddr, xsaddr, 1, family);
|
||||
x = xfrm_find_acq(net, &dummy_mark, mode, reqid, proto, xdaddr, xsaddr, 1, family);
|
||||
|
||||
if (x == NULL)
|
||||
return -ENOENT;
|
||||
@ -1373,7 +1375,7 @@ static int pfkey_acquire(struct sock *sk, struct sk_buff *skb, struct sadb_msg *
|
||||
if (hdr->sadb_msg_seq == 0 || hdr->sadb_msg_errno == 0)
|
||||
return 0;
|
||||
|
||||
x = xfrm_find_acq_byseq(net, hdr->sadb_msg_seq);
|
||||
x = xfrm_find_acq_byseq(net, DUMMY_MARK, hdr->sadb_msg_seq);
|
||||
if (x == NULL)
|
||||
return 0;
|
||||
|
||||
@ -2572,8 +2574,8 @@ static int pfkey_spdget(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
|
||||
return -EINVAL;
|
||||
|
||||
delete = (hdr->sadb_msg_type == SADB_X_SPDDELETE2);
|
||||
xp = xfrm_policy_byid(net, XFRM_POLICY_TYPE_MAIN, dir,
|
||||
pol->sadb_x_policy_id, delete, &err);
|
||||
xp = xfrm_policy_byid(net, XFRM_POLICY_TYPE_MAIN,
|
||||
dir, pol->sadb_x_policy_id, delete, &err);
|
||||
if (xp == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
Reference in New Issue
Block a user