X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-rtnl%2Fsd-rtnl.c;h=b91d08012ad78aaf52a621fcf59691be876e2a7c;hp=4ee360c0a87fe5060c4b1e2077cbe9cc6847b011;hb=66269b05cf31ef5d8f83a7150c314bf35ee8a35e;hpb=26349add97c8e9bfd26f2f16d61dd80a324f504e diff --git a/src/libsystemd/sd-rtnl/sd-rtnl.c b/src/libsystemd/sd-rtnl/sd-rtnl.c index 4ee360c0a..b91d08012 100644 --- a/src/libsystemd/sd-rtnl/sd-rtnl.c +++ b/src/libsystemd/sd-rtnl/sd-rtnl.c @@ -22,6 +22,7 @@ #include #include +#include "missing.h" #include "macro.h" #include "util.h" #include "hashmap.h" @@ -109,7 +110,12 @@ int sd_rtnl_open(sd_rtnl **ret, unsigned n_groups, ...) { if (rtnl->fd < 0) return -errno; - if (setsockopt(rtnl->fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)) < 0) + r = setsockopt(rtnl->fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); + if (r < 0) + return -errno; + + r = setsockopt(rtnl->fd, SOL_NETLINK, NETLINK_PKTINFO, &one, sizeof(one)); + if (r < 0) return -errno; va_start(ap, n_groups);