Index: src/kern.c --- src/kern.c.orig +++ src/kern.c @@ -114,6 +114,9 @@ void k_set_if(uint32_t ifa) { void k_join(struct IfDesc *ifd, uint32_t grp) { struct ip_mreq mreq; + if (config_getinterface(ifd->Name) == NULL) + return; + mreq.imr_multiaddr.s_addr = grp; mreq.imr_interface.s_addr = ifd->InAdr.s_addr; @@ -135,6 +138,9 @@ void k_join(struct IfDesc *ifd, uint32_t grp) { void k_leave(struct IfDesc *ifd, uint32_t grp) { struct ip_mreq mreq; + + if (config_getinterface(ifd->Name) == NULL) + return; mreq.imr_multiaddr.s_addr = grp; mreq.imr_interface.s_addr = ifd->InAdr.s_addr;