chiark / gitweb /
sd-rtnl: allow sd_rtnl_open_fd() to be used on bound sockets
[elogind.git] / src / libsystemd / sd-rtnl / sd-rtnl.c
index 45ba50a856be11dcaf553e0acd28fb8db7145457..ae49c77e018f4e023c11b519453e4de01c4d6b38 100644 (file)
@@ -146,7 +146,8 @@ static int rtnl_open_fd_ap(sd_rtnl **ret, int fd, unsigned n_groups, va_list ap)
         addrlen = sizeof(rtnl->sockaddr);
 
         r = bind(fd, &rtnl->sockaddr.sa, addrlen);
-        if (r < 0)
+        /* ignore EINVAL to allow opening an already bound socket */
+        if (r < 0 && errno != EINVAL)
                 return -errno;
 
         r = getsockname(fd, &rtnl->sockaddr.sa, &addrlen);