On 2021-10-15 09:17 +02, Guy Godfroy <guy.godf...@gugod.fr> wrote:
>>Synopsis:     dhcpleased unable to work on CARP interface
>>Category:     system
>>Environment:
>       System      : OpenBSD 7.0
>       Details     : OpenBSD 7.0 (GENERIC) #224: Thu Sep 30 14:13:34 MDT 2021
>                        
> dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC
>
>       Architecture: OpenBSD.amd64
>       Machine     : amd64
>>Description:
>       Since I upgraded my routers to 7.0, I am unable to get a DHCP
>       lease on CARP interfaces. On 6.9 dhclient worked just fine. On

This fixes it for me in a test setup.

diff --git frontend.c frontend.c
index aecdfd72911..e3fc5b54890 100644
--- frontend.c
+++ frontend.c
@@ -601,8 +601,8 @@ update_iface(struct if_msghdr *ifm, struct sockaddr_dl *sdl)
        ifinfo.running = (flags & (IFF_UP | IFF_RUNNING)) ==
            (IFF_UP | IFF_RUNNING);
 
-       if (sdl != NULL && sdl->sdl_type == IFT_ETHER &&
-           sdl->sdl_alen == ETHER_ADDR_LEN)
+       if (sdl != NULL && (sdl->sdl_type == IFT_ETHER ||
+           sdl->sdl_type == IFT_CARP) && sdl->sdl_alen == ETHER_ADDR_LEN)
                memcpy(ifinfo.hw_address.ether_addr_octet, LLADDR(sdl),
                    ETHER_ADDR_LEN);
        else if (iface == NULL) {
@@ -691,7 +691,8 @@ init_ifaces(void)
                                struct sockaddr_dl      *sdl;
 
                                sdl = (struct sockaddr_dl *)ifa->ifa_addr;
-                               if (sdl->sdl_type != IFT_ETHER ||
+                               if ((sdl->sdl_type != IFT_ETHER &&
+                                   sdl->sdl_type != IFT_CARP) ||
                                    sdl->sdl_alen != ETHER_ADDR_LEN)
                                        continue;
                                memcpy(ifinfo.hw_address.ether_addr_octet,


-- 
I'm not entirely sure you are real.

Reply via email to