]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
socket-util: drop SO_BINDTODEVICE fallback in socket_bind_to_ifindex()
authorMike Yuan <me@yhndnzj.com>
Sat, 29 Mar 2025 20:29:26 +0000 (21:29 +0100)
committerMike Yuan <me@yhndnzj.com>
Mon, 31 Mar 2025 16:00:09 +0000 (18:00 +0200)
Our baseline is v5.4 now.

src/basic/socket-util.c

index 9190072f4e2e6bfc3f9d66b1b2dc3139b04fae6b..c095168ed19245dedbdef6007f9f0eb00ca07866 100644 (file)
@@ -1445,25 +1445,13 @@ int socket_bind_to_ifname(int fd, const char *ifname) {
 }
 
 int socket_bind_to_ifindex(int fd, int ifindex) {
-        char ifname[IF_NAMESIZE];
-        int r;
-
         assert(fd >= 0);
 
         if (ifindex <= 0)
                 /* Drop binding */
                 return RET_NERRNO(setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, NULL, 0));
 
-        r = setsockopt_int(fd, SOL_SOCKET, SO_BINDTOIFINDEX, ifindex);
-        if (r != -ENOPROTOOPT)
-                return r;
-
-        /* Fall back to SO_BINDTODEVICE on kernels < 5.0 which didn't have SO_BINDTOIFINDEX */
-        r = format_ifname(ifindex, ifname);
-        if (r < 0)
-                return r;
-
-        return socket_bind_to_ifname(fd, ifname);
+        return setsockopt_int(fd, SOL_SOCKET, SO_BINDTOIFINDEX, ifindex);
 }
 
 ssize_t recvmsg_safe(int sockfd, struct msghdr *msg, int flags) {