From 7d9ab336bb12c15bae566ee1389cf3da23ef6067 Mon Sep 17 00:00:00 2001 From: Holger Eitzenberger Date: Mon, 24 Jan 2011 22:36:33 +0100 Subject: ipset: fix the Netlink sequence number Do not use time() as a Netlink sequence number for each message, as otherwise the same seq number will be used when sending another message in the same second. Instead use time() just for initialization, then increment per message. Signed-off-by: Holger Eitzenberger Signed-off-by: Jozsef Kadlecsik --- lib/mnl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/mnl.c') diff --git a/lib/mnl.c b/lib/mnl.c index 683dba2..77e4faa 100644 --- a/lib/mnl.c +++ b/lib/mnl.c @@ -75,7 +75,7 @@ ipset_mnl_fill_hdr(struct ipset_handle *handle, enum ipset_cmd cmd, nlh->nlmsg_flags = cmdflags[cmd - 1]; if (envflags & IPSET_ENV_EXIST) nlh->nlmsg_flags &= ~NLM_F_EXCL; - nlh->nlmsg_seq = handle->seq = time(NULL); + nlh->nlmsg_seq = ++handle->seq; nfg = mnl_nlmsg_put_extra_header(nlh, sizeof(struct nfgenmsg)); nfg->nfgen_family = AF_INET; @@ -135,6 +135,7 @@ ipset_mnl_init(mnl_cb_t *cb_ctl, void *data) handle->portid = mnl_socket_get_portid(handle->h); handle->cb_ctl = cb_ctl; handle->data = data; + handle->seq = time(NULL); return handle; -- cgit v1.2.3