From: henning Date: Mon, 21 Apr 2014 12:22:25 +0000 (+0000) Subject: ip_output() using varargs always struck me as bizarre, esp since it's only X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=4dc494bb7fe7c9c28288c6cd20bb7ae39ee56120;p=openbsd ip_output() using varargs always struck me as bizarre, esp since it's only ever used to pass on uint32 (for ipsec). stop that madness and just pass the uint32, 0 in all cases but the two that pass the ipsec flowinfo. ok deraadt reyk guenther --- diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index 1b7d667c277..ec0ba137193 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_gif.c,v 1.65 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: if_gif.c,v 1.66 2014/04/21 12:22:25 henning Exp $ */ /* $KAME: if_gif.c,v 1.43 2001/02/20 08:51:07 itojun Exp $ */ /* @@ -261,7 +261,7 @@ gif_start(struct ifnet *ifp) switch (sc->gif_psrc->sa_family) { #ifdef INET case AF_INET: - ip_output(m, NULL, NULL, 0, NULL, NULL); + ip_output(m, NULL, NULL, 0, NULL, NULL, 0); break; #endif #ifdef INET6 diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c index ceba5948651..e42391092e9 100644 --- a/sys/net/if_gre.c +++ b/sys/net/if_gre.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_gre.c,v 1.66 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: if_gre.c,v 1.67 2014/04/21 12:22:25 henning Exp $ */ /* $NetBSD: if_gre.c,v 1.9 1999/10/25 19:18:11 drochner Exp $ */ /* @@ -430,7 +430,7 @@ gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, #endif /* Send it off */ - error = ip_output(m, NULL, &sc->route, 0, NULL, NULL); + error = ip_output(m, NULL, &sc->route, 0, NULL, NULL, 0); end: if (error) ifp->if_oerrors++; diff --git a/sys/net/if_pflow.c b/sys/net/if_pflow.c index d761869f391..393316aeda6 100644 --- a/sys/net/if_pflow.c +++ b/sys/net/if_pflow.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_pflow.c,v 1.42 2014/04/14 09:06:42 mpi Exp $ */ +/* $OpenBSD: if_pflow.c,v 1.43 2014/04/21 12:22:25 henning Exp $ */ /* * Copyright (c) 2011 Florian Obser @@ -1124,7 +1124,8 @@ pflow_sendout_mbuf(struct pflow_softc *sc, struct mbuf *m) sc->sc_if.if_opackets++; sc->sc_if.if_obytes += m->m_pkthdr.len; - if ((err = ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, NULL))) { + if ((err = ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, NULL, + 0))) { pflowstats.pflow_oerrors++; sc->sc_if.if_oerrors++; } diff --git a/sys/net/if_pfsync.c b/sys/net/if_pfsync.c index 05a75f9256e..0d11d5ab067 100644 --- a/sys/net/if_pfsync.c +++ b/sys/net/if_pfsync.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_pfsync.c,v 1.205 2014/04/14 09:06:42 mpi Exp $ */ +/* $OpenBSD: if_pfsync.c,v 1.206 2014/04/21 12:22:25 henning Exp $ */ /* * Copyright (c) 2002 Michael Shalayeff @@ -1685,7 +1685,7 @@ pfsync_sendout(void) m->m_pkthdr.ph_rtableid = sc->sc_if.if_rdomain; - if (ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, NULL) == 0) + if (ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, NULL, 0) == 0) pfsyncstats.pfsyncs_opackets++; else pfsyncstats.pfsyncs_oerrors++; @@ -1798,8 +1798,8 @@ pfsync_undefer(struct pfsync_deferral *pd, int drop) switch (pd->pd_st->key[PF_SK_WIRE]->af) { #ifdef INET case AF_INET: - ip_output(pd->pd_m, NULL, NULL, 0, - NULL, NULL); + ip_output(pd->pd_m, NULL, NULL, 0, NULL, NULL, + 0); break; #endif /* INET */ #ifdef INET6 diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c index 860b6886767..ee357be4d9c 100644 --- a/sys/net/if_vxlan.c +++ b/sys/net/if_vxlan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_vxlan.c,v 1.12 2014/04/14 09:06:42 mpi Exp $ */ +/* $OpenBSD: if_vxlan.c,v 1.13 2014/04/21 12:22:25 henning Exp $ */ /* * Copyright (c) 2013 Reyk Floeter @@ -636,7 +636,7 @@ vxlan_output(struct ifnet *ifp, struct mbuf *m) #ifdef INET if ((error = - ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, NULL))) { + ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, NULL, 0))) { ifp->if_oerrors++; } #endif diff --git a/sys/net/pf.c b/sys/net/pf.c index 59ee0e8ff47..ad4380f5459 100644 --- a/sys/net/pf.c +++ b/sys/net/pf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pf.c,v 1.874 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: pf.c,v 1.875 2014/04/21 12:22:25 henning Exp $ */ /* * Copyright (c) 2001 Daniel Hartmeier @@ -2426,7 +2426,7 @@ pf_send_tcp(const struct pf_rule *r, sa_family_t af, #ifdef INET case AF_INET: if (eh == NULL) { - ip_output(m, NULL, NULL, 0, NULL, NULL); + ip_output(m, NULL, NULL, 0, NULL, NULL, 0); } else { struct route ro; struct rtentry rt; @@ -2443,7 +2443,7 @@ pf_send_tcp(const struct pf_rule *r, sa_family_t af, memcpy(e->ether_shost, eh->ether_dhost, ETHER_ADDR_LEN); memcpy(e->ether_dhost, eh->ether_shost, ETHER_ADDR_LEN); e->ether_type = eh->ether_type; - ip_output(m, NULL, &ro, IP_ROUTETOETHER, NULL, NULL); + ip_output(m, NULL, &ro, IP_ROUTETOETHER, NULL, NULL, 0); } break; #endif /* INET */ diff --git a/sys/net/pipex.c b/sys/net/pipex.c index 06e8e6d7c06..407f85a46e1 100644 --- a/sys/net/pipex.c +++ b/sys/net/pipex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pipex.c,v 1.49 2014/04/18 22:23:50 claudio Exp $ */ +/* $OpenBSD: pipex.c,v 1.50 2014/04/21 12:22:25 henning Exp $ */ /*- * Copyright (c) 2009 Internet Initiative Japan Inc. @@ -1558,7 +1558,7 @@ pipex_pptp_output(struct mbuf *m0, struct pipex_session *session, gre->flags = htons(gre->flags); m0->m_pkthdr.rcvif = session->pipex_iface->ifnet_this; - if (ip_output(m0, NULL, NULL, 0, NULL, NULL) != 0) { + if (ip_output(m0, NULL, NULL, 0, NULL, NULL, 0) != 0) { PIPEX_DBG((session, LOG_DEBUG, "ip_output failed.")); goto drop; } @@ -1996,7 +1996,7 @@ pipex_l2tp_output(struct mbuf *m0, struct pipex_session *session) ip->ip_ttl = MAXTTL; ip->ip_tos = 0; - if (ip_output(m0, NULL, NULL, IP_IPSECFLOW, NULL, NULL, + if (ip_output(m0, NULL, NULL, 0, NULL, NULL, session->proto.l2tp.ipsecflowinfo) != 0) { PIPEX_DBG((session, LOG_DEBUG, "ip_output failed.")); goto drop; diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index 0dc9d63bce0..5c53f557b03 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: igmp.c,v 1.38 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: igmp.c,v 1.39 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: igmp.c,v 1.15 1996/02/13 23:41:25 christos Exp $ */ /* @@ -634,7 +634,7 @@ igmp_sendpkt(struct in_multi *inm, int type, in_addr_t addr) imo.imo_multicast_loop = 0; #endif /* MROUTING */ - ip_output(m, NULL, NULL, IP_MULTICASTOPTS, &imo, NULL); + ip_output(m, NULL, NULL, IP_MULTICASTOPTS, &imo, NULL, 0); ++igmpstat.igps_snd_reports; } diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c index 9228d89e48e..8b780aae4e4 100644 --- a/sys/netinet/ip_carp.c +++ b/sys/netinet/ip_carp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_carp.c,v 1.227 2014/04/20 14:54:39 henning Exp $ */ +/* $OpenBSD: ip_carp.c,v 1.228 2014/04/21 12:22:26 henning Exp $ */ /* * Copyright (c) 2002 Michael Shalayeff. All rights reserved. @@ -1175,7 +1175,7 @@ carp_send_ad(void *v) carpstats.carps_opackets++; error = ip_output(m, NULL, NULL, IP_RAWOUTPUT, &sc->sc_imo, - NULL); + NULL, 0); if (error) { if (error == ENOBUFS) carpstats.carps_onomem++; diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index 4a1ab47f26b..31ac40e20d7 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_divert.c,v 1.20 2014/04/14 09:06:42 mpi Exp $ */ +/* $OpenBSD: ip_divert.c,v 1.21 2014/04/21 12:22:26 henning Exp $ */ /* * Copyright (c) 2009 Michele Marchetto @@ -181,7 +181,7 @@ divert_output(struct mbuf *m, ...) splx(s); } else { error = ip_output(m, NULL, &inp->inp_route, - IP_ALLOWBROADCAST | IP_RAWOUTPUT, NULL, NULL); + IP_ALLOWBROADCAST | IP_RAWOUTPUT, NULL, NULL, 0); if (error == EACCES) /* translate pf(4) error for userland */ error = EHOSTUNREACH; } diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index 478bcdd4bcc..e00a46a5c81 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_icmp.c,v 1.120 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: ip_icmp.c,v 1.121 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: ip_icmp.c,v 1.19 1996/02/13 23:42:22 christos Exp $ */ /* @@ -844,7 +844,7 @@ icmp_send(struct mbuf *m, struct mbuf *opts) printf("icmp_send dst %s src %s\n", dst, src); } #endif - ip_output(m, opts, NULL, 0, NULL, NULL); + ip_output(m, opts, NULL, 0, NULL, NULL, 0); } n_time diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index b22fd7dcab6..3570648998b 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_input.c,v 1.230 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: ip_input.c,v 1.231 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: ip_input.c,v 1.30 1996/03/16 23:53:58 christos Exp $ */ /* @@ -1474,7 +1474,7 @@ ip_forward(struct mbuf *m, struct ifnet *ifp, int srcrt) error = ip_output(m, NULL, &ipforward_rt, (IP_FORWARDING | (ip_directedbcast ? IP_ALLOWBROADCAST : 0)), - NULL, NULL); + NULL, NULL, 0); if (error) ipstat.ips_cantforward++; else { diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 2e4a30a3d15..d7afaf85743 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_mroute.c,v 1.65 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: ip_mroute.c,v 1.66 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: ip_mroute.c,v 1.85 2004/04/26 01:31:57 matt Exp $ */ /* @@ -1732,7 +1732,8 @@ send_packet(struct vif *vifp, struct mbuf *m) if (vifp->v_flags & VIFF_TUNNEL) { /* If tunnel options */ - ip_output(m, NULL, &vifp->v_route, IP_FORWARDING, NULL, NULL); + ip_output(m, NULL, &vifp->v_route, IP_FORWARDING, NULL, NULL, + 0); } else { /* * if physical interface option, extract the options @@ -1745,7 +1746,7 @@ send_packet(struct vif *vifp, struct mbuf *m) imo.imo_multicast_loop = 1; error = ip_output(m, NULL, NULL, - IP_FORWARDING | IP_MULTICASTOPTS, &imo, NULL); + IP_FORWARDING | IP_MULTICASTOPTS, &imo, NULL, 0); if (mrtdebug & DEBUG_XMIT) log(LOG_DEBUG, "phyint_send on vif %ld err %d\n", diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 1b63a287d63..a5429eacfa8 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_output.c,v 1.262 2014/04/20 09:38:19 henning Exp $ */ +/* $OpenBSD: ip_output.c,v 1.263 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: ip_output.c,v 1.28 1996/02/13 23:43:07 christos Exp $ */ /* @@ -86,7 +86,7 @@ void in_delayed_cksum(struct mbuf *); */ int ip_output(struct mbuf *m0, struct mbuf *opt, struct route *ro, int flags, - struct ip_moptions *imo, struct inpcb *inp, ...) + struct ip_moptions *imo, struct inpcb *inp, u_int32_t ipsecflowinfo) { struct ip *ip; struct ifnet *ifp; @@ -106,7 +106,6 @@ ip_output(struct mbuf *m0, struct mbuf *opt, struct route *ro, int flags, struct tdb_ident *tdbi; struct tdb *tdb; - u_int32_t ipsecflowinfo = 0; #if NPF > 0 struct ifnet *encif; #endif @@ -115,12 +114,6 @@ ip_output(struct mbuf *m0, struct mbuf *opt, struct route *ro, int flags, #ifdef IPSEC if (inp && (inp->inp_flags & INP_IPV6) != 0) panic("ip_output: IPv6 pcb is passed"); - if (flags & IP_IPSECFLOW) { - va_list ap; - va_start(ap, inp); - ipsecflowinfo = va_arg(ap, u_int32_t); - va_end(ap); - } #endif /* IPSEC */ #ifdef DIAGNOSTIC diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index 518eaa9adea..5ffb08a563d 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_var.h,v 1.55 2014/04/07 10:04:17 mpi Exp $ */ +/* $OpenBSD: ip_var.h,v 1.56 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: ip_var.h,v 1.16 1996/02/13 23:43:20 christos Exp $ */ /* @@ -137,13 +137,12 @@ struct ipq { struct in_addr ipq_src, ipq_dst; }; -/* flags passed to ip_output as last parameter */ +/* flags passed to ip_output */ #define IP_FORWARDING 0x1 /* most of ip header exists */ #define IP_RAWOUTPUT 0x2 /* raw ip header exists */ #define IP_ALLOWBROADCAST SO_BROADCAST /* can send broadcast packets */ #define IP_MTUDISC 0x0800 /* pmtu discovery, set DF */ #define IP_ROUTETOETHER 0x1000 /* ether addresses given */ -#define IP_IPSECFLOW 0x2000 /* IPsec flow info */ extern struct ipstat ipstat; extern LIST_HEAD(ipqhead, ipq) ipq; /* ip reass. queue */ @@ -185,7 +184,7 @@ void ip_init(void); int ip_mforward(struct mbuf *, struct ifnet *); int ip_optcopy(struct ip *, struct ip *); int ip_output(struct mbuf *, struct mbuf *, struct route *, int, - struct ip_moptions *, struct inpcb *, ...); + struct ip_moptions *, struct inpcb *, u_int32_t); int ip_pcbopts(struct mbuf **, struct mbuf *); struct mbuf * ip_reass(struct ipqent *, struct ipq *); diff --git a/sys/netinet/ipsec_output.c b/sys/netinet/ipsec_output.c index 5467e4dfe56..ca1c1bfa2c6 100644 --- a/sys/netinet/ipsec_output.c +++ b/sys/netinet/ipsec_output.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ipsec_output.c,v 1.51 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: ipsec_output.c,v 1.52 2014/04/21 12:22:26 henning Exp $ */ /* * The author of this code is Angelos D. Keromytis (angelos@cis.upenn.edu) * @@ -511,7 +511,7 @@ ipsp_process_done(struct mbuf *m, struct tdb *tdb) switch (tdb->tdb_dst.sa.sa_family) { #ifdef INET case AF_INET: - return (ip_output(m, NULL, NULL, IP_RAWOUTPUT, NULL, NULL)); + return (ip_output(m, NULL, NULL, IP_RAWOUTPUT, NULL, NULL, 0)); #endif /* INET */ #ifdef INET6 diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index 6e2de4c3ef6..a939901d550 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -1,4 +1,4 @@ -/* $OpenBSD: raw_ip.c,v 1.71 2014/04/14 09:06:42 mpi Exp $ */ +/* $OpenBSD: raw_ip.c,v 1.72 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: raw_ip.c,v 1.25 1996/02/18 18:58:33 christos Exp $ */ /* @@ -278,7 +278,7 @@ rip_output(struct mbuf *m, ...) m->m_pkthdr.ph_rtableid = inp->inp_rtableid; error = ip_output(m, inp->inp_options, &inp->inp_route, flags, - inp->inp_moptions, inp); + inp->inp_moptions, inp, 0); if (error == EACCES) /* translate pf(4) error for userland */ error = EHOSTUNREACH; return (error); diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 23208bfa025..14fc254a3d6 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_input.c,v 1.274 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: tcp_input.c,v 1.275 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: tcp_input.c,v 1.23 1996/02/13 23:43:44 christos Exp $ */ /* @@ -4414,7 +4414,7 @@ syn_cache_respond(struct syn_cache *sc, struct mbuf *m) #ifdef INET case AF_INET: error = ip_output(m, sc->sc_ipopts, ro, - (ip_mtudisc ? IP_MTUDISC : 0), NULL, inp); + (ip_mtudisc ? IP_MTUDISC : 0), NULL, inp, 0); break; #endif #ifdef INET6 diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index d18c22776cb..21eb847ffdb 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_output.c,v 1.105 2014/04/14 09:06:42 mpi Exp $ */ +/* $OpenBSD: tcp_output.c,v 1.106 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: tcp_output.c,v 1.16 1997/06/03 16:17:09 kml Exp $ */ /* @@ -1076,7 +1076,7 @@ send: } error = ip_output(m, tp->t_inpcb->inp_options, &tp->t_inpcb->inp_route, - (ip_mtudisc ? IP_MTUDISC : 0), NULL, tp->t_inpcb); + (ip_mtudisc ? IP_MTUDISC : 0), NULL, tp->t_inpcb, 0); break; #endif /* INET */ #ifdef INET6 diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index aff8b95df8f..e0e4773b69a 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_subr.c,v 1.128 2014/04/21 11:10:54 henning Exp $ */ +/* $OpenBSD: tcp_subr.c,v 1.129 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: tcp_subr.c,v 1.22 1996/02/13 23:44:00 christos Exp $ */ /* @@ -421,7 +421,7 @@ tcp_respond(struct tcpcb *tp, caddr_t template, struct tcphdr *th0, ip->ip_ttl = ip_defttl; ip->ip_tos = 0; ip_output(m, NULL, ro, ip_mtudisc ? IP_MTUDISC : 0, - NULL, tp ? tp->t_inpcb : NULL); + NULL, tp ? tp->t_inpcb : NULL, 0); } } diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 8fc4507e208..82a3bb0ac84 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -1,4 +1,4 @@ -/* $OpenBSD: udp_usrreq.c,v 1.182 2014/04/18 10:48:29 jca Exp $ */ +/* $OpenBSD: udp_usrreq.c,v 1.183 2014/04/21 12:22:26 henning Exp $ */ /* $NetBSD: udp_usrreq.c,v 1.28 1996/03/16 23:54:03 christos Exp $ */ /* @@ -1111,8 +1111,8 @@ udp_output(struct mbuf *m, ...) m->m_pkthdr.ph_rtableid = inp->inp_rtableid; error = ip_output(m, inp->inp_options, &inp->inp_route, - (inp->inp_socket->so_options & SO_BROADCAST) | IP_IPSECFLOW, - inp->inp_moptions, inp, ipsecflowinfo); + (inp->inp_socket->so_options & SO_BROADCAST), inp->inp_moptions, + inp, ipsecflowinfo); if (error == EACCES) /* translate pf(4) error for userland */ error = EHOSTUNREACH;