diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c index ba2e1661..987c7a6b 100644 --- a/sysdep/unix/io.c +++ b/sysdep/unix/io.c @@ -971,10 +971,11 @@ sk_setup(sock *s) } #endif - if (s->vrf && !s->iface) + if (s->vrf && !s->iface && (s->type != SK_TCP)) { /* Bind socket to associated VRF interface. - This is Linux-specific, but so is SO_BINDTODEVICE. */ + This is Linux-specific, but so is SO_BINDTODEVICE. + For accepted TCP sockets it is inherited from the listening one. */ #ifdef SO_BINDTODEVICE struct ifreq ifr = {}; strcpy(ifr.ifr_name, s->vrf->name);