summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2010-12-20 11:54:26 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2010-12-20 11:54:35 +0100
commit57d871ad46bfaed44e556cb872f4bfab1004d9e1 (patch)
tree05aba4c451f5d6a7025db633d22c556f55d9f351 /lib
parent06366c172c487b3038b52e8fe640747b4092a544 (diff)
parent95b9dfb393232f384ccfc671971a0a9387e138d4 (diff)
Merge branch 'master' of git://dev.medozas.de/ipset into ipset-5
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Diffstat (limited to 'lib')
-rw-r--r--lib/data.c92
-rw-r--r--lib/mnl.c2
-rw-r--r--lib/parse.c10
-rw-r--r--lib/print.c2
-rw-r--r--lib/session.c24
-rw-r--r--lib/types.c10
6 files changed, 70 insertions, 70 deletions
diff --git a/lib/data.c b/lib/data.c
index 2872c0d..022e4b4 100644
--- a/lib/data.c
+++ b/lib/data.c
@@ -72,20 +72,20 @@ struct ipset_data {
char name[IPSET_MAXNAMELEN];
char nameref[IPSET_MAXNAMELEN];
} adt;
- } u;
+ };
};
static void
copy_addr(uint8_t family, union nf_inet_addr *ip, const void *value)
{
if (family == AF_INET)
- in4cpy(&ip->in, (const struct in_addr *)value);
+ in4cpy(&ip->in, value);
else
- in6cpy(&ip->in6, (const struct in6_addr *)value);
+ in6cpy(&ip->in6, value);
}
/**
- * ipset_strncpy - copy the string from src to dst
+ * ipset_strlcpy - copy the string from src to dst
* @dst: the target string buffer
* @src: the source string buffer
* @len: the length of bytes to copy, including the terminating null byte.
@@ -94,7 +94,7 @@ copy_addr(uint8_t family, union nf_inet_addr *ip, const void *value)
* copied. The target is unconditionally terminated by the null byte.
*/
void
-ipset_strncpy(char *dst, const char *src, size_t len)
+ipset_strlcpy(char *dst, const char *src, size_t len)
{
assert(dst);
assert(src);
@@ -199,7 +199,7 @@ ipset_data_set(struct ipset_data *data, enum ipset_opt opt, const void *value)
switch (opt) {
/* Common ones */
case IPSET_SETNAME:
- ipset_strncpy(data->setname, value, IPSET_MAXNAMELEN);
+ ipset_strlcpy(data->setname, value, IPSET_MAXNAMELEN);
break;
case IPSET_OPT_TYPE:
data->type = value;
@@ -233,71 +233,71 @@ ipset_data_set(struct ipset_data *data, enum ipset_opt opt, const void *value)
break;
/* Create-specific options */
case IPSET_OPT_GC:
- data->u.create.gc = *(const uint32_t *) value;
+ data->create.gc = *(const uint32_t *) value;
break;
case IPSET_OPT_HASHSIZE:
- data->u.create.hashsize = *(const uint32_t *) value;
+ data->create.hashsize = *(const uint32_t *) value;
break;
case IPSET_OPT_MAXELEM:
- data->u.create.maxelem = *(const uint32_t *) value;
+ data->create.maxelem = *(const uint32_t *) value;
break;
case IPSET_OPT_NETMASK:
- data->u.create.netmask = *(const uint8_t *) value;
+ data->create.netmask = *(const uint8_t *) value;
break;
case IPSET_OPT_PROBES:
- data->u.create.probes = *(const uint8_t *) value;
+ data->create.probes = *(const uint8_t *) value;
break;
case IPSET_OPT_RESIZE:
- data->u.create.resize = *(const uint8_t *) value;
+ data->create.resize = *(const uint8_t *) value;
break;
case IPSET_OPT_SIZE:
- data->u.create.size = *(const uint32_t *) value;
+ data->create.size = *(const uint32_t *) value;
break;
/* Create-specific options, filled out by the kernel */
case IPSET_OPT_ELEMENTS:
- data->u.create.elements = *(const uint32_t *) value;
+ data->create.elements = *(const uint32_t *) value;
break;
case IPSET_OPT_REFERENCES:
- data->u.create.references = *(const uint32_t *) value;
+ data->create.references = *(const uint32_t *) value;
break;
case IPSET_OPT_MEMSIZE:
- data->u.create.memsize = *(const uint32_t *) value;
+ data->create.memsize = *(const uint32_t *) value;
break;
/* Create-specific options, type */
case IPSET_OPT_TYPENAME:
- ipset_strncpy(data->u.create.typename, value,
+ ipset_strlcpy(data->create.typename, value,
IPSET_MAXNAMELEN);
break;
case IPSET_OPT_REVISION:
- data->u.create.revision = *(const uint8_t *) value;
+ data->create.revision = *(const uint8_t *) value;
break;
case IPSET_OPT_REVISION_MIN:
- data->u.create.revision_min = *(const uint8_t *) value;
+ data->create.revision_min = *(const uint8_t *) value;
break;
/* ADT-specific options */
case IPSET_OPT_ETHER:
- memcpy(data->u.adt.ether, value, ETH_ALEN);
+ memcpy(data->adt.ether, value, ETH_ALEN);
break;
case IPSET_OPT_NAME:
- ipset_strncpy(data->u.adt.name, value, IPSET_MAXNAMELEN);
+ ipset_strlcpy(data->adt.name, value, IPSET_MAXNAMELEN);
break;
case IPSET_OPT_NAMEREF:
- ipset_strncpy(data->u.adt.nameref, value, IPSET_MAXNAMELEN);
+ ipset_strlcpy(data->adt.nameref, value, IPSET_MAXNAMELEN);
break;
case IPSET_OPT_IP2:
if (!(data->family == AF_INET || data->family == AF_INET6))
return -1;
- copy_addr(data->family, &data->u.adt.ip2, value);
+ copy_addr(data->family, &data->adt.ip2, value);
break;
case IPSET_OPT_CIDR2:
- data->u.adt.cidr2 = *(const uint8_t *) value;
+ data->adt.cidr2 = *(const uint8_t *) value;
break;
case IPSET_OPT_PROTO:
- data->u.adt.proto = *(const uint8_t *) value;
+ data->adt.proto = *(const uint8_t *) value;
break;
/* Swap/rename */
case IPSET_OPT_SETNAME2:
- ipset_strncpy(data->u.setname2, value, IPSET_MAXNAMELEN);
+ ipset_strlcpy(data->setname2, value, IPSET_MAXNAMELEN);
break;
/* flags */
case IPSET_OPT_EXIST:
@@ -348,7 +348,7 @@ ipset_data_get(const struct ipset_data *data, enum ipset_opt opt)
if (ipset_data_test(data, IPSET_OPT_TYPE))
return data->type->name;
else if (ipset_data_test(data, IPSET_OPT_TYPENAME))
- return data->u.create.typename;
+ return data->create.typename;
return NULL;
case IPSET_OPT_FAMILY:
return &data->family;
@@ -367,47 +367,47 @@ ipset_data_get(const struct ipset_data *data, enum ipset_opt opt)
return &data->timeout;
/* Create-specific options */
case IPSET_OPT_GC:
- return &data->u.create.gc;
+ return &data->create.gc;
case IPSET_OPT_HASHSIZE:
- return &data->u.create.hashsize;
+ return &data->create.hashsize;
case IPSET_OPT_MAXELEM:
- return &data->u.create.maxelem;
+ return &data->create.maxelem;
case IPSET_OPT_NETMASK:
- return &data->u.create.netmask;
+ return &data->create.netmask;
case IPSET_OPT_PROBES:
- return &data->u.create.probes;
+ return &data->create.probes;
case IPSET_OPT_RESIZE:
- return &data->u.create.resize;
+ return &data->create.resize;
case IPSET_OPT_SIZE:
- return &data->u.create.size;
+ return &data->create.size;
/* Create-specific options, filled out by the kernel */
case IPSET_OPT_ELEMENTS:
- return &data->u.create.elements;
+ return &data->create.elements;
case IPSET_OPT_REFERENCES:
- return &data->u.create.references;
+ return &data->create.references;
case IPSET_OPT_MEMSIZE:
- return &data->u.create.memsize;
+ return &data->create.memsize;
/* Create-specific options, TYPE */
case IPSET_OPT_REVISION:
- return &data->u.create.revision;
+ return &data->create.revision;
case IPSET_OPT_REVISION_MIN:
- return &data->u.create.revision_min;
+ return &data->create.revision_min;
/* ADT-specific options */
case IPSET_OPT_ETHER:
- return data->u.adt.ether;
+ return data->adt.ether;
case IPSET_OPT_NAME:
- return data->u.adt.name;
+ return data->adt.name;
case IPSET_OPT_NAMEREF:
- return data->u.adt.nameref;
+ return data->adt.nameref;
case IPSET_OPT_IP2:
- return &data->u.adt.ip2;
+ return &data->adt.ip2;
case IPSET_OPT_CIDR2:
- return &data->u.adt.cidr2;
+ return &data->adt.cidr2;
case IPSET_OPT_PROTO:
- return &data->u.adt.proto;
+ return &data->adt.proto;
/* Swap/rename */
case IPSET_OPT_SETNAME2:
- return data->u.setname2;
+ return data->setname2;
/* flags */
case IPSET_OPT_FLAGS:
case IPSET_OPT_EXIST:
diff --git a/lib/mnl.c b/lib/mnl.c
index aa98a7c..683dba2 100644
--- a/lib/mnl.c
+++ b/lib/mnl.c
@@ -31,7 +31,7 @@ struct ipset_handle {
};
/* Netlink flags of the commands */
-static uint16_t cmdflags[] = {
+static const uint16_t cmdflags[] = {
[IPSET_CMD_CREATE-1] = NLM_F_REQUEST|NLM_F_ACK|NLM_F_CREATE|NLM_F_EXCL,
[IPSET_CMD_DESTROY-1] = NLM_F_REQUEST|NLM_F_ACK,
[IPSET_CMD_FLUSH-1] = NLM_F_REQUEST|NLM_F_ACK,
diff --git a/lib/parse.c b/lib/parse.c
index 01b0ccf..169d2e0 100644
--- a/lib/parse.c
+++ b/lib/parse.c
@@ -48,7 +48,7 @@ ipset_strchr(const char *str, const char *sep)
assert(sep);
for (; *sep != '\0'; sep++)
- if ((match = strchr(str, (int)sep[0])) != NULL
+ if ((match = strchr(str, sep[0])) != NULL
&& str[0] != sep[0]
&& str[strlen(str)-1] != sep[0])
return match;
@@ -103,7 +103,7 @@ string_to_u8(struct ipset_session *session,
unsigned long long num = 0;
err = string_to_number_ll(session, str, 0, 255, &num);
- *ret = (uint8_t) num;
+ *ret = num;
return err;
}
@@ -129,7 +129,7 @@ string_to_u16(struct ipset_session *session,
unsigned long long num = 0;
err = string_to_number_ll(session, str, 0, USHRT_MAX, &num);
- *ret = (uint16_t) num;
+ *ret = num;
return err;
}
@@ -142,7 +142,7 @@ string_to_u32(struct ipset_session *session,
unsigned long long num = 0;
err = string_to_number_ll(session, str, 0, UINT_MAX, &num);
- *ret = (uint32_t) num;
+ *ret = num;
return err;
}
@@ -345,7 +345,7 @@ int
ipset_parse_proto(struct ipset_session *session,
enum ipset_opt opt, const char *str)
{
- struct protoent *protoent;
+ const struct protoent *protoent;
uint8_t proto = 0;
assert(session);
diff --git a/lib/print.c b/lib/print.c
index 87a9f2b..767fd04 100644
--- a/lib/print.c
+++ b/lib/print.c
@@ -454,7 +454,7 @@ ipset_print_proto(char *buf, unsigned int len,
const struct ipset_data *data, enum ipset_opt opt,
uint8_t env UNUSED)
{
- struct protoent *protoent;
+ const struct protoent *protoent;
uint8_t proto;
assert(buf);
diff --git a/lib/session.c b/lib/session.c
index babd881..5d341ab 100644
--- a/lib/session.c
+++ b/lib/session.c
@@ -273,7 +273,7 @@ struct ipset_attr_policy {
};
/* Attribute policies and mapping to options */
-const struct ipset_attr_policy cmd_attrs[] = {
+static const struct ipset_attr_policy cmd_attrs[] = {
[IPSET_ATTR_PROTOCOL] = {
.type = MNL_TYPE_U8,
},
@@ -317,7 +317,7 @@ const struct ipset_attr_policy cmd_attrs[] = {
},
};
-const struct ipset_attr_policy create_attrs[] = {
+static const struct ipset_attr_policy create_attrs[] = {
[IPSET_ATTR_IP] = {
.type = MNL_TYPE_NESTED,
.opt = IPSET_OPT_IP,
@@ -392,7 +392,7 @@ const struct ipset_attr_policy create_attrs[] = {
},
};
-const struct ipset_attr_policy adt_attrs[] = {
+static const struct ipset_attr_policy adt_attrs[] = {
[IPSET_ATTR_IP] = {
.type = MNL_TYPE_NESTED,
.opt = IPSET_OPT_IP,
@@ -454,7 +454,7 @@ const struct ipset_attr_policy adt_attrs[] = {
},
};
-const struct ipset_attr_policy ipaddr_attrs[] = {
+static const struct ipset_attr_policy ipaddr_attrs[] = {
[IPSET_ATTR_IPADDR_IPV4] = {
.type = MNL_TYPE_U32,
},
@@ -468,7 +468,7 @@ static int
generic_data_attr_cb(const struct nlattr *attr, void *data,
int attr_max, const struct ipset_attr_policy *policy)
{
- const struct nlattr **tb = (const struct nlattr **)data;
+ const struct nlattr **tb = data;
int type = mnl_attr_get_type(attr);
D("attr type: %u, len %u", type, attr->nla_len);
@@ -690,7 +690,7 @@ retry:
static int
list_adt(struct ipset_session *session, struct nlattr *nla[])
{
- struct ipset_data *data = session->data;
+ const struct ipset_data *data = session->data;
const struct ipset_type *type;
const struct ipset_arg *arg;
uint8_t family;
@@ -774,7 +774,7 @@ list_adt(struct ipset_session *session, struct nlattr *nla[])
static int
list_create(struct ipset_session *session, struct nlattr *nla[])
{
- struct ipset_data *data = session->data;
+ const struct ipset_data *data = session->data;
const struct ipset_type *type;
const struct ipset_arg *arg;
uint8_t family;
@@ -1016,7 +1016,7 @@ static int
callback_header(struct ipset_session *session, struct nlattr *nla[])
{
const char *setname;
- struct ipset_data *data = session->data;
+ const struct ipset_data *data = session->data;
if (!nla[IPSET_ATTR_SETNAME])
FAILURE("Broken HEADER kernel message: missing setname!");
@@ -1047,7 +1047,7 @@ callback_header(struct ipset_session *session, struct nlattr *nla[])
static int
callback_type(struct ipset_session *session, struct nlattr *nla[])
{
- struct ipset_data *data = session->data;
+ const struct ipset_data *data = session->data;
const char *typename, *orig;
if (!(nla[IPSET_ATTR_TYPENAME]
@@ -1464,7 +1464,7 @@ static int
build_send_private_msg(struct ipset_session *session, enum ipset_cmd cmd)
{
char buffer[PRIVATE_MSG_BUFLEN] __attribute__ ((aligned));
- struct nlmsghdr *nlh = (struct nlmsghdr *) (void *) buffer;
+ struct nlmsghdr *nlh = (void *)buffer;
struct ipset_data *data = session->data;
int len = PRIVATE_MSG_BUFLEN, ret;
enum ipset_cmd saved = session->cmd;
@@ -1521,7 +1521,7 @@ may_aggregate_ad(struct ipset_session *session, struct ipset_data *data,
static int
build_msg(struct ipset_session *session, bool aggregate)
{
- struct nlmsghdr *nlh = (struct nlmsghdr *) session->buffer;
+ struct nlmsghdr *nlh = session->buffer;
struct ipset_data *data = session->data;
/* Public commands */
@@ -1678,7 +1678,7 @@ ipset_commit(struct ipset_session *session)
assert(session);
- nlh = (struct nlmsghdr *) session->buffer;
+ nlh = session->buffer;
D("send buffer: len %u, cmd %s", nlh->nlmsg_len, cmd2name[session->cmd]);
if (nlh->nlmsg_len == 0)
/* Nothing to do */
diff --git a/lib/types.c b/lib/types.c
index 3034477..1bd4274 100644
--- a/lib/types.c
+++ b/lib/types.c
@@ -54,7 +54,7 @@ ipset_cache_add(const char *name, const struct ipset_type *type,
if (n == NULL)
return -ENOMEM;
- ipset_strncpy(n->name, name, IPSET_MAXNAMELEN);
+ ipset_strlcpy(n->name, name, IPSET_MAXNAMELEN);
n->type = type;
n->family = family;
n->next = NULL;
@@ -133,7 +133,7 @@ ipset_cache_rename(const char *from, const char *to)
for (s = setlist; s != NULL; s = s->next) {
if (STREQ(s->name, from)) {
- ipset_strncpy(s->name, to, IPSET_MAXNAMELEN);
+ ipset_strlcpy(s->name, to, IPSET_MAXNAMELEN);
return 0;
}
}
@@ -164,8 +164,8 @@ ipset_cache_swap(const char *from, const char *to)
b = s;
}
if (a != NULL && b != NULL) {
- ipset_strncpy(a->name, to, IPSET_MAXNAMELEN);
- ipset_strncpy(b->name, from, IPSET_MAXNAMELEN);
+ ipset_strlcpy(a->name, to, IPSET_MAXNAMELEN);
+ ipset_strlcpy(b->name, from, IPSET_MAXNAMELEN);
return 0;
}
@@ -393,7 +393,7 @@ ipset_type_get(struct ipset_session *session, enum ipset_cmd cmd)
const struct ipset_type *
ipset_type_check(struct ipset_session *session)
{
- struct ipset_type *t, *match = NULL;
+ const struct ipset_type *t, *match = NULL;
struct ipset_data *data;
const char *typename;
uint8_t family, revision;