1 --- src/wps/wps_upnp.c.orig 2020-06-08 14:40:50.402529000 -0700 2 +++ src/wps/wps_upnp.c 2020-06-08 15:48:08.294830000 -0700 3 @@ -861,7 +861,8 @@ 4 } 5 6 7 -#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) 8 +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ 9 + || defined(__DragonFly__) 10 #include <sys/sysctl.h> 11 #include <net/route.h> 12 #include <net/if_dl.h> 13 @@ -950,7 +951,11 @@ 14 errno, strerror(errno)); 15 goto fail; 16 } 17 +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) 18 + addr = (struct sockaddr_in *) &req.ifr_addr; 19 +#else 20 addr = (struct sockaddr_in *) &req.ifr_netmask; 21 +#endif 22 netmask->s_addr = addr->sin_addr.s_addr; 23 } 24 25 @@ -962,7 +967,8 @@ 26 goto fail; 27 } 28 os_memcpy(mac, req.ifr_addr.sa_data, 6); 29 -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) 30 +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ 31 + || defined(__DragonFly__) 32 if (eth_get(net_if, mac) < 0) { 33 wpa_printf(MSG_ERROR, "WPS UPnP: Failed to get MAC address"); 34 goto fail; 35