if_wg: account for added argument to sbcreatecontrol

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2022-06-10 19:14:49 +02:00
parent 352883bb38
commit c66627f1ea
2 changed files with 7 additions and 2 deletions

View File

@ -8,6 +8,11 @@
#include <sys/param.h>
#if __FreeBSD_version < 1400517
#include <sys/sockbuf.h>
#define sbcreatecontrol(a, b, c, d, e) sbcreatecontrol(a, b, c, d)
#endif
#if __FreeBSD_version < 1300507
#include <sys/smp.h>
#include <sys/gtaskqueue.h>

View File

@ -895,13 +895,13 @@ wg_send(struct wg_softc *sc, struct wg_endpoint *e, struct mbuf *m)
if (e->e_local.l_in.s_addr != INADDR_ANY)
control = sbcreatecontrol((caddr_t)&e->e_local.l_in,
sizeof(struct in_addr), IP_SENDSRCADDR,
IPPROTO_IP);
IPPROTO_IP, M_NOWAIT);
#ifdef INET6
} else if (e->e_remote.r_sa.sa_family == AF_INET6) {
if (!IN6_IS_ADDR_UNSPECIFIED(&e->e_local.l_in6))
control = sbcreatecontrol((caddr_t)&e->e_local.l_pktinfo6,
sizeof(struct in6_pktinfo), IPV6_PKTINFO,
IPPROTO_IPV6);
IPPROTO_IPV6, M_NOWAIT);
#endif
} else {
m_freem(m);