Commit bb3e68ba authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Ignore NLM_F_MULTI.

I don't understand why, but it fixes the problems we have, and Gregoire
says it's okay.
parent ab77fafc
...@@ -224,8 +224,6 @@ netlink_read(struct netlink *nl, struct netlink *nl_ignore, int answer, ...@@ -224,8 +224,6 @@ netlink_read(struct netlink *nl, struct netlink *nl_ignore, int answer,
NLMSG_OK(nh, len); NLMSG_OK(nh, len);
nh = NLMSG_NEXT(nh, len)) { nh = NLMSG_NEXT(nh, len)) {
debugf("%s", (nh->nlmsg_flags & NLM_F_MULTI) ? "[multi] " : ""); debugf("%s", (nh->nlmsg_flags & NLM_F_MULTI) ? "[multi] " : "");
if(!(nh->nlmsg_flags & NLM_F_MULTI))
done = 1;
if(nl_ignore && nh->nlmsg_pid == nl_ignore->sockaddr.nl_pid) { if(nl_ignore && nh->nlmsg_pid == nl_ignore->sockaddr.nl_pid) {
debugf("(ignore), "); debugf("(ignore), ");
continue; continue;
...@@ -243,8 +241,6 @@ netlink_read(struct netlink *nl, struct netlink *nl_ignore, int answer, ...@@ -243,8 +241,6 @@ netlink_read(struct netlink *nl, struct netlink *nl_ignore, int answer,
struct nlmsgerr *err = (struct nlmsgerr *)NLMSG_DATA(nh); struct nlmsgerr *err = (struct nlmsgerr *)NLMSG_DATA(nh);
if(err->error == 0) { if(err->error == 0) {
debugf("(ACK)\n"); debugf("(ACK)\n");
if(!(nh->nlmsg_flags & NLM_F_MULTI) && !fn)
return 0;
} else { } else {
errno = -err->error; errno = -err->error;
perror("netlink_read"); perror("netlink_read");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment