From a00138cb1a27ba6550cf3bc90bd767eb17986e3b Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Thu, 3 Jun 2004 18:30:04 +0000 Subject: [PATCH] Make pr_input use variadic arguments for anything but the first mbuf. Add a warning for NSIP, it is likely to be broken. --- sys/net/ip_mroute/ip_mroute.c | 29 ++++++++++++++++++++++++----- sys/net/stf/if_stf.c | 11 +++++++++-- sys/net/stf/if_stf.h | 4 ++-- sys/netinet/igmp.c | 18 +++++++++++++----- sys/netinet/igmp_var.h | 4 ++-- sys/netinet/in_gif.c | 16 +++++++++++----- sys/netinet/in_gif.h | 4 ++-- sys/netinet/ip_divert.c | 4 ++-- sys/netinet/ip_encap.c | 11 +++++++++-- sys/netinet/ip_encap.h | 4 ++-- sys/netinet/ip_gre.c | 20 +++++++++++++++----- sys/netinet/ip_gre.h | 6 +++--- sys/netinet/ip_icmp.c | 20 ++++++++++++++------ sys/netinet/ip_icmp.h | 4 ++-- sys/netinet/ip_input.c | 14 ++++++++++++-- sys/netinet/ip_var.h | 10 +++++----- sys/netinet/ipprotosw.h | 4 ++-- sys/netinet/pim_var.h | 4 ++-- sys/netinet/raw_ip.c | 13 ++++++++++--- sys/netinet/tcp_input.c | 14 ++++++++++---- sys/netinet/tcp_var.h | 4 ++-- sys/netinet/udp_usrreq.c | 19 +++++++++++++------ sys/netinet/udp_var.h | 4 ++-- sys/netinet6/ah.h | 4 ++-- sys/netinet6/ah_input.c | 12 ++++++++++-- sys/netinet6/esp.h | 4 ++-- sys/netinet6/esp_input.c | 11 +++++++++-- sys/netinet6/ipcomp.h | 4 ++-- sys/netinet6/ipcomp_input.c | 11 +++++++++-- sys/netproto/ipx/ipx_ip.c | 7 ++----- sys/netproto/ipx/ipx_ip.h | 4 ++-- sys/netproto/ns/ns_ip.c | 15 +++++++++++---- sys/sys/protosw.h | 4 ++-- 33 files changed, 219 insertions(+), 98 deletions(-) diff --git a/sys/net/ip_mroute/ip_mroute.c b/sys/net/ip_mroute/ip_mroute.c index f7d8e0aa30..69e6bd366b 100644 --- a/sys/net/ip_mroute/ip_mroute.c +++ b/sys/net/ip_mroute/ip_mroute.c @@ -18,7 +18,7 @@ * bandwidth metering and signaling * * $FreeBSD: src/sys/netinet/ip_mroute.c,v 1.56.2.10 2003/08/24 21:37:34 hsu Exp $ - * $DragonFly: src/sys/net/ip_mroute/ip_mroute.c,v 1.11 2004/06/02 14:42:58 eirikn Exp $ + * $DragonFly: src/sys/net/ip_mroute/ip_mroute.c,v 1.12 2004/06/03 18:30:03 joerg Exp $ */ #include "opt_mrouting.h" @@ -41,6 +41,9 @@ #include #include #include + +#include + #include #include #include @@ -2100,13 +2103,20 @@ X_ip_rsvp_force_done(struct socket *so) } static void -X_rsvp_input(struct mbuf *m, int off, int proto) +X_rsvp_input(struct mbuf *m, ...) { int vifi; struct ip *ip = mtod(m, struct ip *); struct sockaddr_in rsvp_src = { sizeof rsvp_src, AF_INET }; int s; struct ifnet *ifp; + int off, proto; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); if (rsvpdebug) printf("rsvp_input: rsvp_on %d\n",rsvp_on); @@ -2979,15 +2989,24 @@ pim_register_send_rp(struct ip *ip, struct vif *vifp, * is passed to if_simloop(). */ void -pim_input(struct mbuf *m, int off, int proto) +pim_input(struct mbuf *m, ...) { + int off, proto; struct ip *ip = mtod(m, struct ip *); struct pim *pim; int minlen; int datalen = ip->ip_len; int ip_tos; - int iphlen = off; - + int iphlen; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); + + iphlen = off; + /* Keep statistics */ pimstat.pims_rcv_total_msgs++; pimstat.pims_rcv_total_bytes += datalen; diff --git a/sys/net/stf/if_stf.c b/sys/net/stf/if_stf.c index 7a8657d396..c1340ee839 100644 --- a/sys/net/stf/if_stf.c +++ b/sys/net/stf/if_stf.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/net/if_stf.c,v 1.1.2.11 2003/01/23 21:06:44 sam Exp $ */ -/* $DragonFly: src/sys/net/stf/if_stf.c,v 1.9 2004/06/02 14:42:59 eirikn Exp $ */ +/* $DragonFly: src/sys/net/stf/if_stf.c,v 1.10 2004/06/03 18:30:03 joerg Exp $ */ /* $KAME: if_stf.c,v 1.73 2001/12/03 11:08:30 keiichi Exp $ */ /* @@ -523,13 +523,20 @@ stf_checkaddr6(sc, in6, inifp) } void -in_stf_input(struct mbuf *m, int off, int proto) +in_stf_input(struct mbuf *m, ...) { struct stf_softc *sc; struct ip *ip; struct ip6_hdr *ip6; u_int8_t otos, itos; struct ifnet *ifp; + int off, proto; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); if (proto != IPPROTO_IPV6) { m_freem(m); diff --git a/sys/net/stf/if_stf.h b/sys/net/stf/if_stf.h index 3e4f5b67ef..130e856f0a 100644 --- a/sys/net/stf/if_stf.h +++ b/sys/net/stf/if_stf.h @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/net/if_stf.h,v 1.1.2.2 2002/04/28 05:40:25 suz Exp $ */ -/* $DragonFly: src/sys/net/stf/if_stf.h,v 1.4 2003/08/26 20:49:49 rob Exp $ */ +/* $DragonFly: src/sys/net/stf/if_stf.h,v 1.5 2004/06/03 18:30:03 joerg Exp $ */ /* $KAME: if_stf.h,v 1.5 2001/10/12 10:09:17 keiichi Exp $ */ /* @@ -34,6 +34,6 @@ #ifndef _NET_IF_STF_H_ #define _NET_IF_STF_H_ -void in_stf_input (struct mbuf *, int off, int proto); +void in_stf_input (struct mbuf *, ...); #endif /* _NET_IF_STF_H_ */ diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index 79bec18fc4..f0b753ea04 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -36,7 +36,7 @@ * * @(#)igmp.c 8.1 (Berkeley) 7/19/93 * $FreeBSD: src/sys/netinet/igmp.c,v 1.29.2.2 2003/01/23 21:06:44 sam Exp $ - * $DragonFly: src/sys/netinet/igmp.c,v 1.8 2004/06/02 14:43:01 eirikn Exp $ + * $DragonFly: src/sys/netinet/igmp.c,v 1.9 2004/06/03 18:30:03 joerg Exp $ */ /* @@ -60,6 +60,8 @@ #include #include +#include + #include #include @@ -148,11 +150,9 @@ find_rti(ifp) } void -igmp_input(m, off, proto) - struct mbuf *m; - int off, proto; +igmp_input(struct mbuf *m, ...) { - int iphlen = off; + int iphlen, off, proto; struct igmp *igmp; struct ip *ip; int igmplen; @@ -162,9 +162,17 @@ igmp_input(m, off, proto) struct in_ifaddr *ia; struct in_multistep step; struct router_info *rti; + __va_list ap; int timer; /** timer value in the igmp query header **/ + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); + + iphlen = off; + ++igmpstat.igps_rcv_total; ip = mtod(m, struct ip *); diff --git a/sys/netinet/igmp_var.h b/sys/netinet/igmp_var.h index 59a0c581fa..5415bb4371 100644 --- a/sys/netinet/igmp_var.h +++ b/sys/netinet/igmp_var.h @@ -36,7 +36,7 @@ * * from: @(#)igmp_var.h 8.1 (Berkeley) 7/19/93 * $FreeBSD: src/sys/netinet/igmp_var.h,v 1.17 1999/12/29 04:40:59 peter Exp $ - * $DragonFly: src/sys/netinet/igmp_var.h,v 1.3 2003/08/23 11:18:00 rob Exp $ + * $DragonFly: src/sys/netinet/igmp_var.h,v 1.4 2004/06/03 18:30:03 joerg Exp $ */ #ifndef _NETINET_IGMP_VAR_H_ @@ -87,7 +87,7 @@ struct igmpstat { #define IGMP_AGE_THRESHOLD 540 void igmp_init (void); -void igmp_input (struct mbuf *, int, int); +void igmp_input (struct mbuf *, ...); void igmp_joingroup (struct in_multi *); void igmp_leavegroup (struct in_multi *); void igmp_fasttimo (void); diff --git a/sys/netinet/in_gif.c b/sys/netinet/in_gif.c index 86710197a8..b62e964a22 100644 --- a/sys/netinet/in_gif.c +++ b/sys/netinet/in_gif.c @@ -1,6 +1,6 @@ /* * $FreeBSD: src/sys/netinet/in_gif.c,v 1.5.2.11 2003/01/23 21:06:45 sam Exp $ - * $DragonFly: src/sys/netinet/in_gif.c,v 1.9 2004/06/02 14:43:01 eirikn Exp $ + * $DragonFly: src/sys/netinet/in_gif.c,v 1.10 2004/06/03 18:30:03 joerg Exp $ * $KAME: in_gif.c,v 1.54 2001/05/14 14:02:16 itojun Exp $ */ /* @@ -47,6 +47,8 @@ #include +#include + #include #include @@ -212,15 +214,19 @@ in_gif_output(ifp, family, m) } void -in_gif_input(m, off, proto) - struct mbuf *m; - int off; - int proto; +in_gif_input(struct mbuf *m, ...) { struct ifnet *gifp = NULL; struct ip *ip; int af; u_int8_t otos; + int off, proto; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); ip = mtod(m, struct ip *); diff --git a/sys/netinet/in_gif.h b/sys/netinet/in_gif.h index 6d78ced0a5..736a746255 100644 --- a/sys/netinet/in_gif.h +++ b/sys/netinet/in_gif.h @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet/in_gif.h,v 1.3.2.4 2002/11/08 16:57:13 ume Exp $ */ -/* $DragonFly: src/sys/netinet/in_gif.h,v 1.3 2003/08/23 11:18:00 rob Exp $ */ +/* $DragonFly: src/sys/netinet/in_gif.h,v 1.4 2004/06/03 18:30:03 joerg Exp $ */ /* $KAME: in_gif.h,v 1.5 2000/04/14 08:36:02 itojun Exp $ */ /* @@ -39,7 +39,7 @@ extern int ip_gif_ttl; struct gif_softc; -void in_gif_input (struct mbuf *, int off, int proto); +void in_gif_input (struct mbuf *, ...); int in_gif_output (struct ifnet *, int, struct mbuf *); int gif_encapcheck4 (const struct mbuf *, int, int, void *); int in_gif_attach (struct gif_softc *); diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index 4cd2c937a6..04add383e7 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/netinet/ip_divert.c,v 1.42.2.6 2003/01/23 21:06:45 sam Exp $ - * $DragonFly: src/sys/netinet/ip_divert.c,v 1.12 2004/04/13 00:14:01 hsu Exp $ + * $DragonFly: src/sys/netinet/ip_divert.c,v 1.13 2004/06/03 18:30:03 joerg Exp $ */ #include "opt_inet.h" @@ -134,7 +134,7 @@ div_init(void) * with that protocol number to enter the system from the outside. */ void -div_input(struct mbuf *m, int off, int proto) +div_input(struct mbuf *m, ...) { ipstat.ips_noproto++; m_freem(m); diff --git a/sys/netinet/ip_encap.c b/sys/netinet/ip_encap.c index 53096762cb..02066edb1d 100644 --- a/sys/netinet/ip_encap.c +++ b/sys/netinet/ip_encap.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet/ip_encap.c,v 1.1.2.5 2003/01/23 21:06:45 sam Exp $ */ -/* $DragonFly: src/sys/netinet/ip_encap.c,v 1.7 2004/06/02 14:43:01 eirikn Exp $ */ +/* $DragonFly: src/sys/netinet/ip_encap.c,v 1.8 2004/06/03 18:30:03 joerg Exp $ */ /* $KAME: ip_encap.c,v 1.41 2001/03/15 08:35:08 itojun Exp $ */ /* @@ -130,13 +130,20 @@ encap_init() #ifdef INET void -encap4_input(struct mbuf *m, int off, int proto) +encap4_input(struct mbuf *m, ...) { + int off, proto; struct ip *ip; struct sockaddr_in s, d; const struct ipprotosw *psw; struct encaptab *ep, *match; int prio, matchprio; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); ip = mtod(m, struct ip *); diff --git a/sys/netinet/ip_encap.h b/sys/netinet/ip_encap.h index 2d847c1d14..64ba56070b 100644 --- a/sys/netinet/ip_encap.h +++ b/sys/netinet/ip_encap.h @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet/ip_encap.h,v 1.1.2.2 2002/11/20 23:20:54 luigi Exp $ */ -/* $DragonFly: src/sys/netinet/ip_encap.h,v 1.2 2003/06/17 04:28:51 dillon Exp $ */ +/* $DragonFly: src/sys/netinet/ip_encap.h,v 1.3 2004/06/03 18:30:03 joerg Exp $ */ /* $KAME: ip_encap.h,v 1.7 2000/03/25 07:23:37 sumikawa Exp $ */ /* @@ -50,7 +50,7 @@ struct encaptab { }; void encap_init(void); -void encap4_input(struct mbuf *, int off, int proto); +void encap4_input(struct mbuf *, ...); int encap6_input(struct mbuf **, int *, int); const struct encaptab *encap_attach(int, int, const struct sockaddr *, const struct sockaddr *, const struct sockaddr *, diff --git a/sys/netinet/ip_gre.c b/sys/netinet/ip_gre.c index 7f595c73e5..80224337b4 100644 --- a/sys/netinet/ip_gre.c +++ b/sys/netinet/ip_gre.c @@ -1,6 +1,6 @@ /* * $NetBSD: ip_gre.c,v 1.21 2002/08/14 00:23:30 itojun Exp $ - * $DragonFly: src/sys/netinet/ip_gre.c,v 1.6 2004/02/14 21:12:39 dillon Exp $ + * $DragonFly: src/sys/netinet/ip_gre.c,v 1.7 2004/06/03 18:30:03 joerg Exp $ * * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. @@ -107,9 +107,14 @@ static int gre_input2(struct mbuf *, int, u_char); * This really is simple */ void -gre_input(struct mbuf *m, int off) +gre_input(struct mbuf *m, ...) { - int ret, proto; + int ret, off, proto; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + __va_end(ap); proto = (mtod(m, struct ip *))->ip_p; @@ -220,13 +225,18 @@ gre_input2(struct mbuf *m ,int hlen, u_char proto) */ void -gre_mobile_input(struct mbuf *m, int hlen) +gre_mobile_input(struct mbuf *m, ...) { struct ip *ip = mtod(m, struct ip *); struct mobip_h *mip = mtod(m, struct mobip_h *); struct gre_softc *sc; u_char osrc = 0; - int msiz; + int msiz, hlen; + __va_list ap; + + __va_start(ap, m); + hlen = __va_arg(ap, int); + __va_end(ap); if ((sc = gre_lookup(m, IPPROTO_MOBILE)) == NULL) { /* No matching tunnel or tunnel is down. */ diff --git a/sys/netinet/ip_gre.h b/sys/netinet/ip_gre.h index 3abec1cec1..0279ae3ba1 100644 --- a/sys/netinet/ip_gre.h +++ b/sys/netinet/ip_gre.h @@ -1,6 +1,6 @@ /* * $NetBSD: ip_gre.h,v 1.5 2002/06/09 16:33:40 itojun Exp $ - * $DragonFly: src/sys/netinet/ip_gre.h,v 1.2 2003/07/23 02:30:22 dillon Exp $ + * $DragonFly: src/sys/netinet/ip_gre.h,v 1.3 2004/06/03 18:30:03 joerg Exp $ * * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. @@ -38,6 +38,6 @@ */ #ifdef _KERNEL -void gre_input(struct mbuf *, int len); -void gre_mobile_input(struct mbuf *, int len); +void gre_input(struct mbuf *, ...); +void gre_mobile_input(struct mbuf *, ...); #endif /* _KERNEL */ diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index fd7c85a8b4..5c4b98fc56 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -32,7 +32,7 @@ * * @(#)ip_icmp.c 8.2 (Berkeley) 1/4/94 * $FreeBSD: src/sys/netinet/ip_icmp.c,v 1.39.2.19 2003/01/24 05:11:34 sam Exp $ - * $DragonFly: src/sys/netinet/ip_icmp.c,v 1.8 2004/06/02 14:43:01 eirikn Exp $ + * $DragonFly: src/sys/netinet/ip_icmp.c,v 1.9 2004/06/03 18:30:03 joerg Exp $ */ #include "opt_ipsec.h" @@ -47,6 +47,8 @@ #include #include +#include + #include #include #include @@ -246,18 +248,24 @@ static struct sockaddr_in icmpgw = { sizeof (struct sockaddr_in), AF_INET }; * Process a received ICMP message. */ void -icmp_input(m, off, proto) - struct mbuf *m; - int off, proto; +icmp_input(struct mbuf *m, ...) { - int hlen = off; + int hlen; struct icmp *icp; struct ip *ip = mtod(m, struct ip *); int icmplen = ip->ip_len; int i; struct in_ifaddr *ia; void (*ctlfunc) (int, struct sockaddr *, void *); - int code; + int code, off, proto; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); + + hlen = off; /* * Locate icmp structure in mbuf, and check diff --git a/sys/netinet/ip_icmp.h b/sys/netinet/ip_icmp.h index 80d7d1dc08..bf75e52a2b 100644 --- a/sys/netinet/ip_icmp.h +++ b/sys/netinet/ip_icmp.h @@ -32,7 +32,7 @@ * * @(#)ip_icmp.h 8.1 (Berkeley) 6/10/93 * $FreeBSD: src/sys/netinet/ip_icmp.h,v 1.16 1999/12/29 04:41:01 peter Exp $ - * $DragonFly: src/sys/netinet/ip_icmp.h,v 1.3 2003/08/23 11:18:00 rob Exp $ + * $DragonFly: src/sys/netinet/ip_icmp.h,v 1.4 2004/06/03 18:30:03 joerg Exp $ */ #ifndef _NETINET_IP_ICMP_H_ @@ -187,7 +187,7 @@ struct icmp { #ifdef _KERNEL void icmp_error (struct mbuf *, int, int, n_long, struct ifnet *); -void icmp_input (struct mbuf *, int, int); +void icmp_input (struct mbuf *, ...); #endif #endif diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index e65241b6f7..2342acfa75 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -32,7 +32,7 @@ * * @(#)ip_input.c 8.2 (Berkeley) 1/4/94 * $FreeBSD: src/sys/netinet/ip_input.c,v 1.130.2.52 2003/03/07 07:01:28 silby Exp $ - * $DragonFly: src/sys/netinet/ip_input.c,v 1.27 2004/06/02 14:43:01 eirikn Exp $ + * $DragonFly: src/sys/netinet/ip_input.c,v 1.28 2004/06/03 18:30:03 joerg Exp $ */ #define _IP_VHL @@ -65,6 +65,8 @@ #include #include +#include + #include #include #include @@ -2237,8 +2239,16 @@ ip_rsvp_done(void) } void -rsvp_input(struct mbuf *m, int off, int proto) /* XXX must fixup manually */ +rsvp_input(struct mbuf *m, ...) /* XXX must fixup manually */ { + int off, proto; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); + if (rsvp_input_p) { /* call the real one if loaded */ rsvp_input_p(m, off, proto); return; diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index 1a87689ad8..9948fa7c46 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -32,7 +32,7 @@ * * @(#)ip_var.h 8.2 (Berkeley) 1/9/95 * $FreeBSD: src/sys/netinet/ip_var.h,v 1.50.2.13 2003/08/24 08:24:38 hsu Exp $ - * $DragonFly: src/sys/netinet/ip_var.h,v 1.8 2004/06/03 15:04:51 joerg Exp $ + * $DragonFly: src/sys/netinet/ip_var.h,v 1.9 2004/06/03 18:30:03 joerg Exp $ */ #ifndef _NETINET_IP_VAR_H_ @@ -202,19 +202,19 @@ u_int16_t int rip_ctloutput(struct socket *, struct sockopt *); void rip_ctlinput(int, struct sockaddr *, void *); void rip_init(void); -void rip_input(struct mbuf *, int, int); +void rip_input(struct mbuf *, ...); int rip_output(struct mbuf *, struct socket *, ...); extern void (*ipip_input)(struct mbuf *, int, int); -void rsvp_input(struct mbuf *, int, int); +void rsvp_input(struct mbuf *, ...); int ip_rsvp_init(struct socket *); int ip_rsvp_done(void); extern int (*ip_rsvp_vif)(struct socket *, struct sockopt *); extern void (*ip_rsvp_force_done)(struct socket *); -extern void (*rsvp_input_p)(struct mbuf *m, int off, int proto); +extern void (*rsvp_input_p)(struct mbuf *m, ...); #ifdef IPDIVERT void div_init(void); -void div_input(struct mbuf *, int, int); +void div_input(struct mbuf *, ...); void divert_packet(struct mbuf *m, int incoming, int port, int rule); extern struct pr_usrreqs div_usrreqs; #endif diff --git a/sys/netinet/ipprotosw.h b/sys/netinet/ipprotosw.h index 063133b503..14411fbd1e 100644 --- a/sys/netinet/ipprotosw.h +++ b/sys/netinet/ipprotosw.h @@ -61,7 +61,7 @@ * * @(#)protosw.h 8.1 (Berkeley) 6/2/93 * $FreeBSD: src/sys/netinet/ipprotosw.h,v 1.1 1999/12/22 19:13:23 shin Exp $ - * $DragonFly: src/sys/netinet/Attic/ipprotosw.h,v 1.5 2004/06/03 16:21:22 joerg Exp $ + * $DragonFly: src/sys/netinet/Attic/ipprotosw.h,v 1.6 2004/06/03 18:30:03 joerg Exp $ */ #ifndef _NETINET_IPPROTOSW_H_ @@ -80,7 +80,7 @@ struct ipprotosw { short pr_protocol; /* protocol number */ short pr_flags; /* see below */ /* protocol-protocol hooks */ - void (*pr_input) (struct mbuf *, int off, int proto); + void (*pr_input) (struct mbuf *, ...); /* input to protocol (from below) */ int (*pr_output) (struct mbuf *m, struct socket *so, ...); /* output to protocol (from above) */ diff --git a/sys/netinet/pim_var.h b/sys/netinet/pim_var.h index 827af9f106..26adebebf9 100644 --- a/sys/netinet/pim_var.h +++ b/sys/netinet/pim_var.h @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/netinet/pim_var.h,v 1.1.2.1 2003/08/24 17:04:44 hsu Exp $ - * $DragonFly: src/sys/netinet/pim_var.h,v 1.1 2003/08/24 23:07:08 hsu Exp $ + * $DragonFly: src/sys/netinet/pim_var.h,v 1.2 2004/06/03 18:30:03 joerg Exp $ */ #ifndef _NETINET_PIM_VAR_H_ @@ -74,7 +74,7 @@ struct pimstat { #ifdef _KERNEL extern struct pimstat pimstat; -void pim_input(struct mbuf *, int, int); +void pim_input(struct mbuf *, ...); SYSCTL_DECL(_net_inet_pim); #endif diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index 2d284dc149..d319d7b629 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -32,7 +32,7 @@ * * @(#)raw_ip.c 8.7 (Berkeley) 5/15/95 * $FreeBSD: src/sys/netinet/raw_ip.c,v 1.64.2.16 2003/08/24 08:24:38 hsu Exp $ - * $DragonFly: src/sys/netinet/raw_ip.c,v 1.14 2004/06/03 15:04:51 joerg Exp $ + * $DragonFly: src/sys/netinet/raw_ip.c,v 1.15 2004/06/03 18:30:03 joerg Exp $ */ #include "opt_inet6.h" @@ -101,7 +101,7 @@ int (*mrt_ioctl)(int, caddr_t); int (*legal_vif_num)(int); u_long (*ip_mcast_src)(int); -void (*rsvp_input_p)(struct mbuf *m, int off, int proto); +void (*rsvp_input_p)(struct mbuf *m, ...); int (*ip_rsvp_vif)(struct socket *, struct sockopt *); void (*ip_rsvp_force_done)(struct socket *); @@ -147,12 +147,19 @@ static struct sockaddr_in ripsrc = { sizeof(ripsrc), AF_INET }; * mbuf chain. */ void -rip_input(struct mbuf *m, int off, int proto) +rip_input(struct mbuf *m, ...) { struct ip *ip = mtod(m, struct ip *); struct inpcb *inp; struct inpcb *last = NULL; struct mbuf *opts = NULL; + int off, proto; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); ripsrc.sin_addr = ip->ip_src; LIST_FOREACH(inp, &ripcbinfo.listhead, inp_list) { diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 9ce3dd99f2..aa7be540c1 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -33,7 +33,7 @@ * * @(#)tcp_input.c 8.12 (Berkeley) 5/24/95 * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.107.2.38 2003/05/21 04:46:41 cjc Exp $ - * $DragonFly: src/sys/netinet/tcp_input.c,v 1.27 2004/05/20 04:28:52 hsu Exp $ + * $DragonFly: src/sys/netinet/tcp_input.c,v 1.28 2004/06/03 18:30:03 joerg Exp $ */ #include "opt_ipfw.h" /* for ipfw_fwd */ @@ -56,6 +56,7 @@ #include #include /* before tcp_seq.h, for tcp_random18() */ +#include #include #include @@ -374,10 +375,10 @@ tcp6_input(mp, offp, proto) #endif void -tcp_input(m, off0, proto) - struct mbuf *m; - int off0, proto; +tcp_input(struct mbuf *m, ...) { + __va_list ap; + int off0, proto; struct tcphdr *th; struct ip *ip = NULL; struct ipovly *ipov; @@ -407,6 +408,11 @@ tcp_input(m, off0, proto) short ostate = 0; #endif + __va_start(ap, m); + off0 = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); + tcpstat.tcps_rcvtotal++; /* Grab info from and strip MT_TAG mbufs prepended to the chain. */ diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h index 61bbef9294..36ef8a1436 100644 --- a/sys/netinet/tcp_var.h +++ b/sys/netinet/tcp_var.h @@ -33,7 +33,7 @@ * * @(#)tcp_var.h 8.4 (Berkeley) 5/24/95 * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.56.2.13 2003/02/03 02:34:07 hsu Exp $ - * $DragonFly: src/sys/netinet/tcp_var.h,v 1.20 2004/05/20 04:32:59 hsu Exp $ + * $DragonFly: src/sys/netinet/tcp_var.h,v 1.21 2004/06/03 18:30:03 joerg Exp $ */ #ifndef _NETINET_TCP_VAR_H_ @@ -495,7 +495,7 @@ struct rmxp_tao * tcp_gettaocache (struct in_conninfo *); void tcp_init (void); void tcp_thread_init (void); -void tcp_input (struct mbuf *, int, int); +void tcp_input (struct mbuf *, ...); void tcp_mss (struct tcpcb *, int); int tcp_mssopt (struct tcpcb *); void tcp_drop_syn_sent (struct inpcb *, int); diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 716a74059e..71bb538b9a 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -33,7 +33,7 @@ * * @(#)udp_usrreq.c 8.6 (Berkeley) 5/23/95 * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.64.2.18 2003/01/24 05:11:34 sam Exp $ - * $DragonFly: src/sys/netinet/udp_usrreq.c,v 1.23 2004/06/02 14:43:01 eirikn Exp $ + * $DragonFly: src/sys/netinet/udp_usrreq.c,v 1.24 2004/06/03 18:30:03 joerg Exp $ */ #include "opt_ipsec.h" @@ -53,6 +53,8 @@ #include #include +#include + #include #include @@ -188,19 +190,24 @@ check_multicast_membership(struct ip *ip, struct inpcb *inp, struct mbuf *m) } void -udp_input(m, off, proto) - struct mbuf *m; - int off, proto; +udp_input(struct mbuf *m, ...) { - int iphlen = off; + int iphlen; struct ip *ip; struct udphdr *uh; struct inpcb *inp; struct mbuf *opts = 0; - int len; + int len, off, proto; struct ip save_ip; struct sockaddr *append_sa; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); + iphlen = off; udpstat.udps_ipackets++; /* diff --git a/sys/netinet/udp_var.h b/sys/netinet/udp_var.h index ff4e890c31..d740f02811 100644 --- a/sys/netinet/udp_var.h +++ b/sys/netinet/udp_var.h @@ -32,7 +32,7 @@ * * @(#)udp_var.h 8.1 (Berkeley) 6/10/93 * $FreeBSD: src/sys/netinet/udp_var.h,v 1.22.2.1 2001/02/18 07:12:25 luigi Exp $ - * $DragonFly: src/sys/netinet/udp_var.h,v 1.9 2004/04/23 10:21:08 hsu Exp $ + * $DragonFly: src/sys/netinet/udp_var.h,v 1.10 2004/06/03 18:30:03 joerg Exp $ */ #ifndef _NETINET_UDP_VAR_H_ @@ -110,7 +110,7 @@ int udp_addrcpu (in_addr_t faddr, in_port_t fport, void udp_ctlinput (int, struct sockaddr *, void *); void udp_init (void); void udp_thread_init (void); -void udp_input (struct mbuf *, int, int); +void udp_input (struct mbuf *, ...); void udp_notify (struct inpcb *inp, int errno); int udp_shutdown (struct socket *so); struct lwkt_port *udp_soport (struct socket *, struct sockaddr *, int); diff --git a/sys/netinet6/ah.h b/sys/netinet6/ah.h index 66aea134e5..c3bebf732e 100644 --- a/sys/netinet6/ah.h +++ b/sys/netinet6/ah.h @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/ah.h,v 1.3.2.3 2002/04/28 05:40:26 suz Exp $ */ -/* $DragonFly: src/sys/netinet6/ah.h,v 1.4 2003/08/23 11:02:45 rob Exp $ */ +/* $DragonFly: src/sys/netinet6/ah.h,v 1.5 2004/06/03 18:30:04 joerg Exp $ */ /* $KAME: ah.h,v 1.16 2001/09/04 08:43:19 itojun Exp $ */ /* @@ -86,7 +86,7 @@ extern const struct ah_algorithm *ah_algorithm_lookup (int); extern int ah_hdrlen (struct secasvar *); extern size_t ah_hdrsiz (struct ipsecrequest *); -extern void ah4_input (struct mbuf *, int off, int proto); +extern void ah4_input (struct mbuf *, ...); extern int ah4_output (struct mbuf *, struct ipsecrequest *); extern int ah4_calccksum (struct mbuf *, caddr_t, size_t, const struct ah_algorithm *, struct secasvar *); diff --git a/sys/netinet6/ah_input.c b/sys/netinet6/ah_input.c index d795ceb64b..533b1c5bb1 100644 --- a/sys/netinet6/ah_input.c +++ b/sys/netinet6/ah_input.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/ah_input.c,v 1.1.2.6 2002/04/28 05:40:26 suz Exp $ */ -/* $DragonFly: src/sys/netinet6/ah_input.c,v 1.7 2004/06/02 14:43:01 eirikn Exp $ */ +/* $DragonFly: src/sys/netinet6/ah_input.c,v 1.8 2004/06/03 18:30:04 joerg Exp $ */ /* $KAME: ah_input.c,v 1.67 2002/01/07 11:39:56 kjc Exp $ */ /* @@ -53,6 +53,7 @@ #include #include #include +#include #include #include @@ -99,8 +100,9 @@ extern struct ipprotosw inetsw[]; void -ah4_input(struct mbuf *m, int off, int proto) +ah4_input(struct mbuf *m, ...) { + int off, proto; struct ip *ip; struct ah *ah; u_int32_t spi; @@ -112,6 +114,12 @@ ah4_input(struct mbuf *m, int off, int proto) u_int16_t nxt; size_t hlen; size_t stripsiz = 0; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); #ifndef PULLDOWN_TEST if (m->m_len < off + sizeof(struct newah)) { diff --git a/sys/netinet6/esp.h b/sys/netinet6/esp.h index 27d2a6893e..ded99c67ad 100644 --- a/sys/netinet6/esp.h +++ b/sys/netinet6/esp.h @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/esp.h,v 1.2.2.3 2002/04/28 05:40:26 suz Exp $ */ -/* $DragonFly: src/sys/netinet6/esp.h,v 1.4 2003/08/23 11:02:45 rob Exp $ */ +/* $DragonFly: src/sys/netinet6/esp.h,v 1.5 2004/06/03 18:30:04 joerg Exp $ */ /* $KAME: esp.h,v 1.19 2001/09/04 08:43:19 itojun Exp $ */ /* @@ -99,7 +99,7 @@ extern int esp_max_ivlen (void); /* crypt routines */ extern int esp4_output (struct mbuf *, struct ipsecrequest *); -extern void esp4_input (struct mbuf *, int off, int proto); +extern void esp4_input(struct mbuf *, ...); extern size_t esp_hdrsiz (struct ipsecrequest *); extern int esp_schedule (const struct esp_algorithm *, struct secasvar *); diff --git a/sys/netinet6/esp_input.c b/sys/netinet6/esp_input.c index 1ea74b227f..3239e946a6 100644 --- a/sys/netinet6/esp_input.c +++ b/sys/netinet6/esp_input.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/esp_input.c,v 1.1.2.8 2003/01/23 21:06:47 sam Exp $ */ -/* $DragonFly: src/sys/netinet6/esp_input.c,v 1.6 2004/06/02 14:43:01 eirikn Exp $ */ +/* $DragonFly: src/sys/netinet6/esp_input.c,v 1.7 2004/06/03 18:30:04 joerg Exp $ */ /* $KAME: esp_input.c,v 1.62 2002/01/07 11:39:57 kjc Exp $ */ /* @@ -102,8 +102,9 @@ extern struct ipprotosw inetsw[]; void -esp4_input(struct mbuf *m, int off, int proto) +esp4_input(struct mbuf *m, ...) { + int off, proto; struct ip *ip; struct esp *esp; struct esptail esptail; @@ -115,6 +116,12 @@ esp4_input(struct mbuf *m, int off, int proto) int ivlen; size_t hlen; size_t esplen; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); /* sanity check for alignment. */ if (off % 4 != 0 || m->m_pkthdr.len % 4 != 0) { diff --git a/sys/netinet6/ipcomp.h b/sys/netinet6/ipcomp.h index 453309bf62..57fcad2268 100644 --- a/sys/netinet6/ipcomp.h +++ b/sys/netinet6/ipcomp.h @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/ipcomp.h,v 1.1.2.3 2002/04/28 05:40:27 suz Exp $ */ -/* $DragonFly: src/sys/netinet6/ipcomp.h,v 1.4 2003/08/23 11:02:45 rob Exp $ */ +/* $DragonFly: src/sys/netinet6/ipcomp.h,v 1.5 2004/06/03 18:30:04 joerg Exp $ */ /* $KAME: ipcomp.h,v 1.11 2001/09/04 08:43:19 itojun Exp $ */ /* @@ -65,7 +65,7 @@ struct ipcomp_algorithm { struct ipsecrequest; extern const struct ipcomp_algorithm *ipcomp_algorithm_lookup (int); -extern void ipcomp4_input (struct mbuf *, int off, int proto); +extern void ipcomp4_input (struct mbuf *, ...); extern int ipcomp4_output (struct mbuf *, struct ipsecrequest *); #endif /* KERNEL */ diff --git a/sys/netinet6/ipcomp_input.c b/sys/netinet6/ipcomp_input.c index e7773e83be..eb3f565175 100644 --- a/sys/netinet6/ipcomp_input.c +++ b/sys/netinet6/ipcomp_input.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/ipcomp_input.c,v 1.1.2.3 2002/04/28 05:40:27 suz Exp $ */ -/* $DragonFly: src/sys/netinet6/ipcomp_input.c,v 1.5 2004/05/20 18:30:36 cpressey Exp $ */ +/* $DragonFly: src/sys/netinet6/ipcomp_input.c,v 1.6 2004/06/03 18:30:04 joerg Exp $ */ /* $KAME: ipcomp_input.c,v 1.25 2001/03/01 09:12:09 itojun Exp $ */ /* @@ -88,8 +88,9 @@ extern struct ipprotosw inetsw[]; void -ipcomp4_input(struct mbuf *m, int off, int proto) +ipcomp4_input(struct mbuf *m, ...) { + int off, proto; struct mbuf *md; struct ip *ip; struct ipcomp *ipcomp; @@ -100,6 +101,12 @@ ipcomp4_input(struct mbuf *m, int off, int proto) int error; size_t newlen, olen; struct secasvar *sav = NULL; + __va_list ap; + + __va_start(ap, m); + off = __va_arg(ap, int); + proto = __va_arg(ap, int); + __va_end(ap); if (m->m_pkthdr.len < off + sizeof(struct ipcomp)) { ipseclog((LOG_DEBUG, "IPv4 IPComp input: assumption failed " diff --git a/sys/netproto/ipx/ipx_ip.c b/sys/netproto/ipx/ipx_ip.c index caefe0bcf9..6644fbf774 100644 --- a/sys/netproto/ipx/ipx_ip.c +++ b/sys/netproto/ipx/ipx_ip.c @@ -34,7 +34,7 @@ * @(#)ipx_ip.c * * $FreeBSD: src/sys/netipx/ipx_ip.c,v 1.24.2.2 2003/01/23 21:06:48 sam Exp $ - * $DragonFly: src/sys/netproto/ipx/ipx_ip.c,v 1.12 2004/06/02 14:43:02 eirikn Exp $ + * $DragonFly: src/sys/netproto/ipx/ipx_ip.c,v 1.13 2004/06/03 18:30:04 joerg Exp $ */ /* @@ -159,10 +159,7 @@ static struct mbuf *ipxip_lastin; static int ipxip_hold_input; void -ipxip_input(m, hlen, dummy) - struct mbuf *m; - int hlen; - int dummy; +ipxip_input(struct mbuf *m, ...) { struct ip *ip; struct ipx *ipx; diff --git a/sys/netproto/ipx/ipx_ip.h b/sys/netproto/ipx/ipx_ip.h index 63fa5f758a..0fefe7bb85 100644 --- a/sys/netproto/ipx/ipx_ip.h +++ b/sys/netproto/ipx/ipx_ip.h @@ -34,7 +34,7 @@ * @(#)ipxip.h * * $FreeBSD: src/sys/netipx/ipx_ip.h,v 1.14 1999/12/29 04:46:08 peter Exp $ - * $DragonFly: src/sys/netproto/ipx/ipx_ip.h,v 1.4 2003/08/23 10:06:23 rob Exp $ + * $DragonFly: src/sys/netproto/ipx/ipx_ip.h,v 1.5 2004/06/03 18:30:04 joerg Exp $ */ #ifndef _NETIPX_IPXIP_H_ @@ -53,7 +53,7 @@ struct ifnet_en { #ifdef _KERNEL void ipxip_ctlinput (int cmd, struct sockaddr *sa, void *arg); -void ipxip_input (struct mbuf *m, int hlen, int dummy); +void ipxip_input (struct mbuf *m, ...); int ipxip_route (struct socket *so, struct sockopt *sopt); #endif diff --git a/sys/netproto/ns/ns_ip.c b/sys/netproto/ns/ns_ip.c index b3e092c9ec..8ba45d0464 100644 --- a/sys/netproto/ns/ns_ip.c +++ b/sys/netproto/ns/ns_ip.c @@ -32,7 +32,7 @@ * * @(#)ns_ip.c 8.1 (Berkeley) 6/10/93 * $FreeBSD: src/sys/netns/ns_ip.c,v 1.9 1999/08/28 00:49:50 peter Exp $ - * $DragonFly: src/sys/netproto/ns/ns_ip.c,v 1.9 2004/06/02 14:43:03 eirikn Exp $ + * $DragonFly: src/sys/netproto/ns/ns_ip.c,v 1.10 2004/06/03 18:30:04 joerg Exp $ */ /* @@ -61,6 +61,7 @@ #include #include +#include #include "ns.h" #include "ns_if.h" @@ -156,14 +157,20 @@ struct mbuf *nsip_badlen; struct mbuf *nsip_lastin; int nsip_hold_input; +#warning "Audit the second argument, this expect ifp, but gets int from netinet" + void -idpip_input(m, ifp) - struct mbuf *m; - struct ifnet *ifp; +idpip_input(struct mbuf *m, ...) { struct ip *ip; struct idp *idp; int len, s; + struct ifnet *ifp; + __va_list ap; + + __va_start(ap, m); + ifp = __va_arg(ap, struct ifnet *); + __va_end(ap); if (nsip_hold_input) { if (nsip_lastin) { diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h index d9509a910f..0e78c851e6 100644 --- a/sys/sys/protosw.h +++ b/sys/sys/protosw.h @@ -32,7 +32,7 @@ * * @(#)protosw.h 8.1 (Berkeley) 6/2/93 * $FreeBSD: src/sys/sys/protosw.h,v 1.28.2.2 2001/07/03 11:02:01 ume Exp $ - * $DragonFly: src/sys/sys/protosw.h,v 1.11 2004/06/03 16:21:22 joerg Exp $ + * $DragonFly: src/sys/sys/protosw.h,v 1.12 2004/06/03 18:30:04 joerg Exp $ */ #ifndef _SYS_PROTOSW_H_ @@ -78,7 +78,7 @@ struct protosw { short pr_protocol; /* protocol number */ short pr_flags; /* see below */ /* protocol-protocol hooks */ - void (*pr_input) (struct mbuf *, int); + void (*pr_input) (struct mbuf *, ...); /* input to protocol (from below) */ int (*pr_output) (struct mbuf *, struct socket *, ...); /* output to protocol (from above) */ -- 2.41.0