memset(&rtm, 0, sizeof(rtm));
rtm.hdr.rtm_version = RTM_VERSION;
- rtm.hdr.rtm_seq = 1;
rtm.hdr.rtm_type = cmd;
rtm.hdr.rtm_addrs = RTA_DST;
rtm.hdr.rtm_flags = RTF_UP;
rtm.hdr.rtm_pid = getpid();
+ rtm.hdr.rtm_seq = ++rt->iface->ctx->seq;
#ifdef RTF_PINNED
if (cmd != RTM_ADD)
rtm.hdr.rtm_flags |= RTF_PINNED;
memset(&rtm, 0, sizeof(rtm));
rtm.hdr.rtm_version = RTM_VERSION;
- rtm.hdr.rtm_seq = 1;
rtm.hdr.rtm_type = cmd;
rtm.hdr.rtm_flags = RTF_UP | (int)rt->flags;
rtm.hdr.rtm_pid = getpid();
+ rtm.hdr.rtm_seq = ++rt->iface->ctx->seq;
#ifdef RTF_PINNED
if (rtm.hdr.rtm_type != RTM_ADD)
rtm.hdr.rtm_flags |= RTF_PINNED;
struct sockaddr_nl snl;
struct iovec iov;
struct msghdr msg;
- static unsigned int seq;
memset(&snl, 0, sizeof(snl));
if ((s = _open_link_socket(&snl, protocol)) == -1)
msg.msg_iovlen = 1;
/* Request a reply */
hdr->nlmsg_flags |= NLM_F_ACK;
- hdr->nlmsg_seq = ++seq;
+ hdr->nlmsg_seq = ++ctx->seq;
if (sendmsg(s, &msg, 0) != -1)
r = get_netlink(ctx, ifp, s, 0, callback);