static int icmp_init_net(struct net *net, u_int16_t proto) { struct nf_icmp_net *in = icmp_pernet(net); struct nf_proto_net *pn = &in->pn; in->timeout = nf_ct_icmp_timeout; return icmp_kmemdup_sysctl_table(pn, in); }
static int icmp_timeout_nlattr_to_obj(struct nlattr *tb[], struct net *net, void *data) { unsigned int *timeout = data; struct nf_icmp_net *in = icmp_pernet(net); if (tb[CTA_TIMEOUT_ICMP_TIMEOUT]) { *timeout = ntohl(nla_get_be32(tb[CTA_TIMEOUT_ICMP_TIMEOUT])) * HZ; } else { /* Set default ICMP timeout. */ *timeout = in->timeout; } return 0; }
static int icmp_init_net(struct net *net, u_int16_t proto) { int ret; struct nf_icmp_net *in = icmp_pernet(net); struct nf_proto_net *pn = &in->pn; in->timeout = nf_ct_icmp_timeout; ret = icmp_kmemdup_compat_sysctl_table(pn, in); if (ret < 0) return ret; ret = icmp_kmemdup_sysctl_table(pn, in); if (ret < 0) nf_ct_kfree_compat_sysctl_table(pn); return ret; }
static unsigned int *icmp_get_timeouts(struct net *net) { return &icmp_pernet(net)->timeout; }