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