@@ -11,8 +11,9 @@ struct nf_conn *nfqnl_ct_get(struct sk_buff *entskb, size_t *size,
struct nf_conn *nfqnl_ct_parse(const struct sk_buff *skb,
const struct nlattr *attr,
enum ip_conntrack_info *ctinfo);
-int nfqnl_ct_put(struct sk_buff *skb, struct nf_conn *ct,
- enum ip_conntrack_info ctinfo);
+int nfqnl_ct_put(struct sk_buff *skb,
+ struct nf_conn *ct, int type,
+ enum ip_conntrack_info ctinfo, int info_type);
void nfqnl_ct_seq_adjust(struct sk_buff *skb, struct nf_conn *ct,
enum ip_conntrack_info ctinfo, int diff);
int nfqnl_attach_expect(struct nf_conn *ct, const struct nlattr *attr,
@@ -32,7 +33,8 @@ inline struct nf_conn *nfqnl_ct_parse(const struct sk_buff *skb,
}
inline int
-nfqnl_ct_put(struct sk_buff *skb, struct nf_conn *ct, enum ip_conntrack_info ctinfo)
+nfqnl_ct_put(struct sk_buff *skb, struct nf_conn *ct, int type,
+ enum ip_conntrack_info ctinfo, int info_type)
{
return 0;
}
@@ -507,7 +507,7 @@ nfqnl_build_packet_message(struct net *net, struct nfqnl_instance *queue,
if (seclen && nla_put(skb, NFQA_SECCTX, seclen, secdata))
goto nla_put_failure;
- if (ct && nfqnl_ct_put(skb, ct, ctinfo) < 0)
+ if (ct && nfqnl_ct_put(skb, ct, NFQA_CT, ctinfo, NFQA_CT_INFO) < 0)
goto nla_put_failure;
if (cap_len > data_len &&
@@ -54,8 +54,9 @@ nfqnl_ct_parse(const struct sk_buff *skb, const struct nlattr *attr,
return ct;
}
-int nfqnl_ct_put(struct sk_buff *skb, struct nf_conn *ct,
- enum ip_conntrack_info ctinfo)
+int nfqnl_ct_put(struct sk_buff *skb,
+ struct nf_conn *ct, int type,
+ enum ip_conntrack_info ctinfo, int info_type)
{
struct nfq_ct_hook *nfq_ct;
struct nlattr *nest_parms;
@@ -65,7 +66,7 @@ int nfqnl_ct_put(struct sk_buff *skb, struct nf_conn *ct,
if (nfq_ct == NULL)
return 0;
- nest_parms = nla_nest_start(skb, NFQA_CT | NLA_F_NESTED);
+ nest_parms = nla_nest_start(skb, type | NLA_F_NESTED);
if (!nest_parms)
goto nla_put_failure;
@@ -75,7 +76,7 @@ int nfqnl_ct_put(struct sk_buff *skb, struct nf_conn *ct,
nla_nest_end(skb, nest_parms);
tmp = ctinfo;
- if (nla_put_be32(skb, NFQA_CT_INFO, htonl(tmp)))
+ if (nla_put_be32(skb, info_type, htonl(tmp)))
goto nla_put_failure;
return 0;
This patch updates nfqnl_ct_put() signature to put not only queue related attributes. Signed-off-by: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp> --- include/net/netfilter/nfnetlink_queue.h | 8 +++++--- net/netfilter/nfnetlink_queue_core.c | 2 +- net/netfilter/nfnetlink_queue_ct.c | 9 +++++---- 3 files changed, 11 insertions(+), 8 deletions(-)