inet_diag: add const to inet_diag_req_v2
diag dumpers should not modify the request. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e31c5e0e48
commit
34160ea3f9
@@ -11,33 +11,34 @@ struct sk_buff;
|
|||||||
struct netlink_callback;
|
struct netlink_callback;
|
||||||
|
|
||||||
struct inet_diag_handler {
|
struct inet_diag_handler {
|
||||||
void (*dump)(struct sk_buff *skb,
|
void (*dump)(struct sk_buff *skb,
|
||||||
struct netlink_callback *cb,
|
struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r,
|
const struct inet_diag_req_v2 *r,
|
||||||
struct nlattr *bc);
|
struct nlattr *bc);
|
||||||
|
|
||||||
int (*dump_one)(struct sk_buff *in_skb,
|
int (*dump_one)(struct sk_buff *in_skb,
|
||||||
const struct nlmsghdr *nlh,
|
const struct nlmsghdr *nlh,
|
||||||
struct inet_diag_req_v2 *req);
|
const struct inet_diag_req_v2 *req);
|
||||||
|
|
||||||
void (*idiag_get_info)(struct sock *sk,
|
void (*idiag_get_info)(struct sock *sk,
|
||||||
struct inet_diag_msg *r,
|
struct inet_diag_msg *r,
|
||||||
void *info);
|
void *info);
|
||||||
__u16 idiag_type;
|
__u16 idiag_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct inet_connection_sock;
|
struct inet_connection_sock;
|
||||||
int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
|
int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
|
||||||
struct sk_buff *skb, struct inet_diag_req_v2 *req,
|
struct sk_buff *skb, const struct inet_diag_req_v2 *req,
|
||||||
struct user_namespace *user_ns,
|
struct user_namespace *user_ns,
|
||||||
u32 pid, u32 seq, u16 nlmsg_flags,
|
u32 pid, u32 seq, u16 nlmsg_flags,
|
||||||
const struct nlmsghdr *unlh);
|
const struct nlmsghdr *unlh);
|
||||||
void inet_diag_dump_icsk(struct inet_hashinfo *h, struct sk_buff *skb,
|
void inet_diag_dump_icsk(struct inet_hashinfo *h, struct sk_buff *skb,
|
||||||
struct netlink_callback *cb, struct inet_diag_req_v2 *r,
|
struct netlink_callback *cb,
|
||||||
struct nlattr *bc);
|
const struct inet_diag_req_v2 *r,
|
||||||
|
struct nlattr *bc);
|
||||||
int inet_diag_dump_one_icsk(struct inet_hashinfo *hashinfo,
|
int inet_diag_dump_one_icsk(struct inet_hashinfo *hashinfo,
|
||||||
struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
||||||
struct inet_diag_req_v2 *req);
|
const struct inet_diag_req_v2 *req);
|
||||||
|
|
||||||
int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk);
|
int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk);
|
||||||
|
|
||||||
|
|||||||
@@ -49,13 +49,14 @@ static void dccp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void dccp_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
static void dccp_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r, struct nlattr *bc)
|
const struct inet_diag_req_v2 *r, struct nlattr *bc)
|
||||||
{
|
{
|
||||||
inet_diag_dump_icsk(&dccp_hashinfo, skb, cb, r, bc);
|
inet_diag_dump_icsk(&dccp_hashinfo, skb, cb, r, bc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dccp_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
static int dccp_diag_dump_one(struct sk_buff *in_skb,
|
||||||
struct inet_diag_req_v2 *req)
|
const struct nlmsghdr *nlh,
|
||||||
|
const struct inet_diag_req_v2 *req)
|
||||||
{
|
{
|
||||||
return inet_diag_dump_one_icsk(&dccp_hashinfo, in_skb, nlh, req);
|
return inet_diag_dump_one_icsk(&dccp_hashinfo, in_skb, nlh, req);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ static void inet_diag_unlock_handler(const struct inet_diag_handler *handler)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
|
int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
|
||||||
struct sk_buff *skb, struct inet_diag_req_v2 *req,
|
struct sk_buff *skb, const struct inet_diag_req_v2 *req,
|
||||||
struct user_namespace *user_ns,
|
struct user_namespace *user_ns,
|
||||||
u32 portid, u32 seq, u16 nlmsg_flags,
|
u32 portid, u32 seq, u16 nlmsg_flags,
|
||||||
const struct nlmsghdr *unlh)
|
const struct nlmsghdr *unlh)
|
||||||
@@ -212,7 +212,7 @@ EXPORT_SYMBOL_GPL(inet_sk_diag_fill);
|
|||||||
|
|
||||||
static int inet_csk_diag_fill(struct sock *sk,
|
static int inet_csk_diag_fill(struct sock *sk,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
struct inet_diag_req_v2 *req,
|
const struct inet_diag_req_v2 *req,
|
||||||
struct user_namespace *user_ns,
|
struct user_namespace *user_ns,
|
||||||
u32 portid, u32 seq, u16 nlmsg_flags,
|
u32 portid, u32 seq, u16 nlmsg_flags,
|
||||||
const struct nlmsghdr *unlh)
|
const struct nlmsghdr *unlh)
|
||||||
@@ -223,7 +223,7 @@ static int inet_csk_diag_fill(struct sock *sk,
|
|||||||
|
|
||||||
static int inet_twsk_diag_fill(struct inet_timewait_sock *tw,
|
static int inet_twsk_diag_fill(struct inet_timewait_sock *tw,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
struct inet_diag_req_v2 *req,
|
const struct inet_diag_req_v2 *req,
|
||||||
u32 portid, u32 seq, u16 nlmsg_flags,
|
u32 portid, u32 seq, u16 nlmsg_flags,
|
||||||
const struct nlmsghdr *unlh)
|
const struct nlmsghdr *unlh)
|
||||||
{
|
{
|
||||||
@@ -277,7 +277,7 @@ static int inet_twsk_diag_fill(struct inet_timewait_sock *tw,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int sk_diag_fill(struct sock *sk, struct sk_buff *skb,
|
static int sk_diag_fill(struct sock *sk, struct sk_buff *skb,
|
||||||
struct inet_diag_req_v2 *r,
|
const struct inet_diag_req_v2 *r,
|
||||||
struct user_namespace *user_ns,
|
struct user_namespace *user_ns,
|
||||||
u32 portid, u32 seq, u16 nlmsg_flags,
|
u32 portid, u32 seq, u16 nlmsg_flags,
|
||||||
const struct nlmsghdr *unlh)
|
const struct nlmsghdr *unlh)
|
||||||
@@ -293,7 +293,7 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb,
|
|||||||
int inet_diag_dump_one_icsk(struct inet_hashinfo *hashinfo,
|
int inet_diag_dump_one_icsk(struct inet_hashinfo *hashinfo,
|
||||||
struct sk_buff *in_skb,
|
struct sk_buff *in_skb,
|
||||||
const struct nlmsghdr *nlh,
|
const struct nlmsghdr *nlh,
|
||||||
struct inet_diag_req_v2 *req)
|
const struct inet_diag_req_v2 *req)
|
||||||
{
|
{
|
||||||
struct net *net = sock_net(in_skb->sk);
|
struct net *net = sock_net(in_skb->sk);
|
||||||
struct sk_buff *rep;
|
struct sk_buff *rep;
|
||||||
@@ -358,7 +358,7 @@ EXPORT_SYMBOL_GPL(inet_diag_dump_one_icsk);
|
|||||||
|
|
||||||
static int inet_diag_get_exact(struct sk_buff *in_skb,
|
static int inet_diag_get_exact(struct sk_buff *in_skb,
|
||||||
const struct nlmsghdr *nlh,
|
const struct nlmsghdr *nlh,
|
||||||
struct inet_diag_req_v2 *req)
|
const struct inet_diag_req_v2 *req)
|
||||||
{
|
{
|
||||||
const struct inet_diag_handler *handler;
|
const struct inet_diag_handler *handler;
|
||||||
int err;
|
int err;
|
||||||
@@ -626,7 +626,7 @@ static int inet_diag_bc_audit(const void *bytecode, int bytecode_len)
|
|||||||
static int inet_csk_diag_dump(struct sock *sk,
|
static int inet_csk_diag_dump(struct sock *sk,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
struct netlink_callback *cb,
|
struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r,
|
const struct inet_diag_req_v2 *r,
|
||||||
const struct nlattr *bc)
|
const struct nlattr *bc)
|
||||||
{
|
{
|
||||||
if (!inet_diag_bc_sk(bc, sk))
|
if (!inet_diag_bc_sk(bc, sk))
|
||||||
@@ -667,7 +667,7 @@ static void twsk_build_assert(void)
|
|||||||
static int inet_twsk_diag_dump(struct sock *sk,
|
static int inet_twsk_diag_dump(struct sock *sk,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
struct netlink_callback *cb,
|
struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r,
|
const struct inet_diag_req_v2 *r,
|
||||||
const struct nlattr *bc)
|
const struct nlattr *bc)
|
||||||
{
|
{
|
||||||
twsk_build_assert();
|
twsk_build_assert();
|
||||||
@@ -770,7 +770,7 @@ static int inet_diag_fill_req(struct sk_buff *skb, struct sock *sk,
|
|||||||
|
|
||||||
static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk,
|
static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk,
|
||||||
struct netlink_callback *cb,
|
struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r,
|
const struct inet_diag_req_v2 *r,
|
||||||
const struct nlattr *bc)
|
const struct nlattr *bc)
|
||||||
{
|
{
|
||||||
struct inet_connection_sock *icsk = inet_csk(sk);
|
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||||
@@ -842,7 +842,7 @@ out:
|
|||||||
|
|
||||||
void inet_diag_dump_icsk(struct inet_hashinfo *hashinfo, struct sk_buff *skb,
|
void inet_diag_dump_icsk(struct inet_hashinfo *hashinfo, struct sk_buff *skb,
|
||||||
struct netlink_callback *cb,
|
struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r, struct nlattr *bc)
|
const struct inet_diag_req_v2 *r, struct nlattr *bc)
|
||||||
{
|
{
|
||||||
struct net *net = sock_net(skb->sk);
|
struct net *net = sock_net(skb->sk);
|
||||||
int i, num, s_i, s_num;
|
int i, num, s_i, s_num;
|
||||||
@@ -978,7 +978,7 @@ out:
|
|||||||
EXPORT_SYMBOL_GPL(inet_diag_dump_icsk);
|
EXPORT_SYMBOL_GPL(inet_diag_dump_icsk);
|
||||||
|
|
||||||
static int __inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
static int __inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r,
|
const struct inet_diag_req_v2 *r,
|
||||||
struct nlattr *bc)
|
struct nlattr *bc)
|
||||||
{
|
{
|
||||||
const struct inet_diag_handler *handler;
|
const struct inet_diag_handler *handler;
|
||||||
|
|||||||
@@ -34,13 +34,13 @@ static void tcp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void tcp_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
static void tcp_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r, struct nlattr *bc)
|
const struct inet_diag_req_v2 *r, struct nlattr *bc)
|
||||||
{
|
{
|
||||||
inet_diag_dump_icsk(&tcp_hashinfo, skb, cb, r, bc);
|
inet_diag_dump_icsk(&tcp_hashinfo, skb, cb, r, bc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tcp_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
static int tcp_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
||||||
struct inet_diag_req_v2 *req)
|
const struct inet_diag_req_v2 *req)
|
||||||
{
|
{
|
||||||
return inet_diag_dump_one_icsk(&tcp_hashinfo, in_skb, nlh, req);
|
return inet_diag_dump_one_icsk(&tcp_hashinfo, in_skb, nlh, req);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,9 @@
|
|||||||
#include <linux/sock_diag.h>
|
#include <linux/sock_diag.h>
|
||||||
|
|
||||||
static int sk_diag_dump(struct sock *sk, struct sk_buff *skb,
|
static int sk_diag_dump(struct sock *sk, struct sk_buff *skb,
|
||||||
struct netlink_callback *cb, struct inet_diag_req_v2 *req,
|
struct netlink_callback *cb,
|
||||||
struct nlattr *bc)
|
const struct inet_diag_req_v2 *req,
|
||||||
|
struct nlattr *bc)
|
||||||
{
|
{
|
||||||
if (!inet_diag_bc_sk(bc, sk))
|
if (!inet_diag_bc_sk(bc, sk))
|
||||||
return 0;
|
return 0;
|
||||||
@@ -31,7 +32,8 @@ static int sk_diag_dump(struct sock *sk, struct sk_buff *skb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int udp_dump_one(struct udp_table *tbl, struct sk_buff *in_skb,
|
static int udp_dump_one(struct udp_table *tbl, struct sk_buff *in_skb,
|
||||||
const struct nlmsghdr *nlh, struct inet_diag_req_v2 *req)
|
const struct nlmsghdr *nlh,
|
||||||
|
const struct inet_diag_req_v2 *req)
|
||||||
{
|
{
|
||||||
int err = -EINVAL;
|
int err = -EINVAL;
|
||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
@@ -90,8 +92,9 @@ out_nosk:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void udp_dump(struct udp_table *table, struct sk_buff *skb, struct netlink_callback *cb,
|
static void udp_dump(struct udp_table *table, struct sk_buff *skb,
|
||||||
struct inet_diag_req_v2 *r, struct nlattr *bc)
|
struct netlink_callback *cb,
|
||||||
|
const struct inet_diag_req_v2 *r, struct nlattr *bc)
|
||||||
{
|
{
|
||||||
int num, s_num, slot, s_slot;
|
int num, s_num, slot, s_slot;
|
||||||
struct net *net = sock_net(skb->sk);
|
struct net *net = sock_net(skb->sk);
|
||||||
@@ -144,13 +147,13 @@ done:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void udp_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
static void udp_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r, struct nlattr *bc)
|
const struct inet_diag_req_v2 *r, struct nlattr *bc)
|
||||||
{
|
{
|
||||||
udp_dump(&udp_table, skb, cb, r, bc);
|
udp_dump(&udp_table, skb, cb, r, bc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int udp_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
static int udp_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
||||||
struct inet_diag_req_v2 *req)
|
const struct inet_diag_req_v2 *req)
|
||||||
{
|
{
|
||||||
return udp_dump_one(&udp_table, in_skb, nlh, req);
|
return udp_dump_one(&udp_table, in_skb, nlh, req);
|
||||||
}
|
}
|
||||||
@@ -170,13 +173,14 @@ static const struct inet_diag_handler udp_diag_handler = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void udplite_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
static void udplite_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
||||||
struct inet_diag_req_v2 *r, struct nlattr *bc)
|
const struct inet_diag_req_v2 *r,
|
||||||
|
struct nlattr *bc)
|
||||||
{
|
{
|
||||||
udp_dump(&udplite_table, skb, cb, r, bc);
|
udp_dump(&udplite_table, skb, cb, r, bc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int udplite_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
static int udplite_diag_dump_one(struct sk_buff *in_skb, const struct nlmsghdr *nlh,
|
||||||
struct inet_diag_req_v2 *req)
|
const struct inet_diag_req_v2 *req)
|
||||||
{
|
{
|
||||||
return udp_dump_one(&udplite_table, in_skb, nlh, req);
|
return udp_dump_one(&udplite_table, in_skb, nlh, req);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user