From: Holger Eitzenberger Date: Mon, 24 Jan 2011 21:36:33 +0000 (+0100) Subject: ipset: fix the Netlink sequence number X-Git-Tag: v6.0~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d9ab336bb12c15bae566ee1389cf3da23ef6067;p=ipset 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 --- 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;