projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
netfilter: ipset: options and flags support added to the kernel API
[deliverable/linux.git]
/
net
/
netfilter
/
ipset
/
ip_set_bitmap_ip.c
diff --git
a/net/netfilter/ipset/ip_set_bitmap_ip.c
b/net/netfilter/ipset/ip_set_bitmap_ip.c
index ba2d16607f48f3a0cd4a3c0a99f20150924971a3..75990b37ca379bca6bf808a2ecb443b49a92e807 100644
(file)
--- a/
net/netfilter/ipset/ip_set_bitmap_ip.c
+++ b/
net/netfilter/ipset/ip_set_bitmap_ip.c
@@
-54,7
+54,7
@@
ip_to_id(const struct bitmap_ip *m, u32 ip)
}
static int
}
static int
-bitmap_ip_test(struct ip_set *set, void *value, u32 timeout)
+bitmap_ip_test(struct ip_set *set, void *value, u32 timeout
, u32 flags
)
{
const struct bitmap_ip *map = set->data;
u16 id = *(u16 *)value;
{
const struct bitmap_ip *map = set->data;
u16 id = *(u16 *)value;
@@
-63,7
+63,7
@@
bitmap_ip_test(struct ip_set *set, void *value, u32 timeout)
}
static int
}
static int
-bitmap_ip_add(struct ip_set *set, void *value, u32 timeout)
+bitmap_ip_add(struct ip_set *set, void *value, u32 timeout
, u32 flags
)
{
struct bitmap_ip *map = set->data;
u16 id = *(u16 *)value;
{
struct bitmap_ip *map = set->data;
u16 id = *(u16 *)value;
@@
-75,7
+75,7
@@
bitmap_ip_add(struct ip_set *set, void *value, u32 timeout)
}
static int
}
static int
-bitmap_ip_del(struct ip_set *set, void *value, u32 timeout)
+bitmap_ip_del(struct ip_set *set, void *value, u32 timeout
, u32 flags
)
{
struct bitmap_ip *map = set->data;
u16 id = *(u16 *)value;
{
struct bitmap_ip *map = set->data;
u16 id = *(u16 *)value;
@@
-131,7
+131,7
@@
nla_put_failure:
/* Timeout variant */
static int
/* Timeout variant */
static int
-bitmap_ip_ttest(struct ip_set *set, void *value, u32 timeout)
+bitmap_ip_ttest(struct ip_set *set, void *value, u32 timeout
, u32 flags
)
{
const struct bitmap_ip *map = set->data;
const unsigned long *members = map->members;
{
const struct bitmap_ip *map = set->data;
const unsigned long *members = map->members;
@@
-141,13
+141,13
@@
bitmap_ip_ttest(struct ip_set *set, void *value, u32 timeout)
}
static int
}
static int
-bitmap_ip_tadd(struct ip_set *set, void *value, u32 timeout)
+bitmap_ip_tadd(struct ip_set *set, void *value, u32 timeout
, u32 flags
)
{
struct bitmap_ip *map = set->data;
unsigned long *members = map->members;
u16 id = *(u16 *)value;
{
struct bitmap_ip *map = set->data;
unsigned long *members = map->members;
u16 id = *(u16 *)value;
- if (ip_set_timeout_test(members[id]))
+ if (ip_set_timeout_test(members[id])
&& !(flags & IPSET_FLAG_EXIST)
)
return -IPSET_ERR_EXIST;
members[id] = ip_set_timeout_set(timeout);
return -IPSET_ERR_EXIST;
members[id] = ip_set_timeout_set(timeout);
@@
-156,7
+156,7
@@
bitmap_ip_tadd(struct ip_set *set, void *value, u32 timeout)
}
static int
}
static int
-bitmap_ip_tdel(struct ip_set *set, void *value, u32 timeout)
+bitmap_ip_tdel(struct ip_set *set, void *value, u32 timeout
, u32 flags
)
{
struct bitmap_ip *map = set->data;
unsigned long *members = map->members;
{
struct bitmap_ip *map = set->data;
unsigned long *members = map->members;
@@
-219,19
+219,19
@@
nla_put_failure:
static int
bitmap_ip_kadt(struct ip_set *set, const struct sk_buff *skb,
static int
bitmap_ip_kadt(struct ip_set *set, const struct sk_buff *skb,
- enum ipset_adt adt,
u8 pf, u8 dim, u8 flags
)
+ enum ipset_adt adt,
const struct ip_set_adt_opt *opt
)
{
struct bitmap_ip *map = set->data;
ipset_adtfn adtfn = set->variant->adt[adt];
u32 ip;
{
struct bitmap_ip *map = set->data;
ipset_adtfn adtfn = set->variant->adt[adt];
u32 ip;
- ip = ntohl(ip4addr(skb, flags & IPSET_DIM_ONE_SRC));
+ ip = ntohl(ip4addr(skb,
opt->
flags & IPSET_DIM_ONE_SRC));
if (ip < map->first_ip || ip > map->last_ip)
return -IPSET_ERR_BITMAP_RANGE;
ip = ip_to_id(map, ip);
if (ip < map->first_ip || ip > map->last_ip)
return -IPSET_ERR_BITMAP_RANGE;
ip = ip_to_id(map, ip);
- return adtfn(set, &ip,
map->timeout
);
+ return adtfn(set, &ip,
opt_timeout(opt, map), opt->cmdflags
);
}
static int
}
static int
@@
-266,7
+266,7
@@
bitmap_ip_uadt(struct ip_set *set, struct nlattr *tb[],
if (adt == IPSET_TEST) {
id = ip_to_id(map, ip);
if (adt == IPSET_TEST) {
id = ip_to_id(map, ip);
- return adtfn(set, &id, timeout);
+ return adtfn(set, &id, timeout
, flags
);
}
if (tb[IPSET_ATTR_IP_TO]) {
}
if (tb[IPSET_ATTR_IP_TO]) {
@@
-293,7
+293,7
@@
bitmap_ip_uadt(struct ip_set *set, struct nlattr *tb[],
for (; !before(ip_to, ip); ip += map->hosts) {
id = ip_to_id(map, ip);
for (; !before(ip_to, ip); ip += map->hosts) {
id = ip_to_id(map, ip);
- ret = adtfn(set, &id, timeout);
+ ret = adtfn(set, &id, timeout
, flags
);
if (ret && !ip_set_eexist(ret, flags))
return ret;
if (ret && !ip_set_eexist(ret, flags))
return ret;
This page took
0.024899 seconds
and
5
git commands to generate.