Hi,
This is the next step in merging protosw and ip6protosw.
The IPv4 pr_ctlinput functions return a void pointer that is always
NULL and never used. Make all functions void like in the IPv6 case.
ok?
bluhm
Index: netinet/ip_icmp.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_icmp.c,v
retrieving revision 1.160
diff -u -p -r1.160 ip_icmp.c
--- netinet/ip_icmp.c 25 Jan 2017 17:34:31 -0000 1.160
+++ netinet/ip_icmp.c 25 Jan 2017 23:27:53 -0000
@@ -326,7 +326,7 @@ icmp_input_if(struct ifnet *ifp, struct
struct sockaddr_in sin;
int icmplen, i, code;
struct in_ifaddr *ia;
- void *(*ctlfunc)(int, struct sockaddr *, u_int, void *);
+ void (*ctlfunc)(int, struct sockaddr *, u_int, void *);
struct mbuf *opts;
/*
@@ -1053,7 +1053,7 @@ icmp_mtudisc_timeout(struct rtentry *rt,
return;
if ((rt->rt_flags & (RTF_DYNAMIC|RTF_HOST)) == (RTF_DYNAMIC|RTF_HOST)) {
- void *(*ctlfunc)(int, struct sockaddr *, u_int, void *);
+ void (*ctlfunc)(int, struct sockaddr *, u_int, void *);
struct sockaddr_in sin;
sin = *satosin(rt_key(rt));
Index: netinet/ip_ipsp.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_ipsp.h,v
retrieving revision 1.175
diff -u -p -r1.175 ip_ipsp.h
--- netinet/ip_ipsp.h 25 Jan 2017 17:34:31 -0000 1.175
+++ netinet/ip_ipsp.h 25 Jan 2017 23:33:06 -0000
@@ -493,8 +493,8 @@ int ah_output(struct mbuf *, struct tdb
int ah_sysctl(int *, u_int, void *, size_t *, void *, size_t);
void ah4_input(struct mbuf *, int, int);
-void *ah4_ctlinput(int, struct sockaddr *, u_int, void *);
-void *udpencap_ctlinput(int, struct sockaddr *, u_int, void *);
+void ah4_ctlinput(int, struct sockaddr *, u_int, void *);
+void udpencap_ctlinput(int, struct sockaddr *, u_int, void *);
#ifdef INET6
int ah6_input(struct mbuf **, int *, int);
@@ -509,7 +509,7 @@ int esp_output(struct mbuf *, struct tdb
int esp_sysctl(int *, u_int, void *, size_t *, void *, size_t);
void esp4_input(struct mbuf *, int, int);
-void *esp4_ctlinput(int, struct sockaddr *, u_int, void *);
+void esp4_ctlinput(int, struct sockaddr *, u_int, void *);
#ifdef INET6
int esp6_input(struct mbuf **, int *, int);
Index: netinet/ipsec_input.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ipsec_input.c,v
retrieving revision 1.139
diff -u -p -r1.139 ipsec_input.c
--- netinet/ipsec_input.c 25 Jan 2017 17:34:31 -0000 1.139
+++ netinet/ipsec_input.c 25 Jan 2017 23:35:43 -0000
@@ -79,7 +79,7 @@
#include "bpfilter.h"
-void *ipsec_common_ctlinput(u_int, int, struct sockaddr *, void *, int);
+void ipsec_common_ctlinput(u_int, int, struct sockaddr *, void *, int);
int ah4_input_cb(struct mbuf *, ...);
int esp4_input_cb(struct mbuf *, ...);
int ipcomp4_input_cb(struct mbuf *, ...);
@@ -725,14 +725,14 @@ ah4_input_cb(struct mbuf *m, ...)
/* XXX rdomain */
-void *
+void
ah4_ctlinput(int cmd, struct sockaddr *sa, u_int rdomain, void *v)
{
if (sa->sa_family != AF_INET ||
sa->sa_len != sizeof(struct sockaddr_in))
- return (NULL);
+ return;
- return (ipsec_common_ctlinput(rdomain, cmd, sa, v, IPPROTO_AH));
+ ipsec_common_ctlinput(rdomain, cmd, sa, v, IPPROTO_AH);
}
/* IPv4 ESP wrapper. */
@@ -786,7 +786,7 @@ ipcomp4_input_cb(struct mbuf *m, ...)
return 0;
}
-void *
+void
ipsec_common_ctlinput(u_int rdomain, int cmd, struct sockaddr *sa,
void *v, int proto)
{
@@ -810,7 +810,7 @@ ipsec_common_ctlinput(u_int rdomain, int
* or the MTU is too small to be acceptable.
*/
if (mtu < 296)
- return (NULL);
+ return;
memset(&dst, 0, sizeof(struct sockaddr_in));
dst.sin_family = AF_INET;
@@ -822,13 +822,13 @@ ipsec_common_ctlinput(u_int rdomain, int
tdbp = gettdb(rdomain, spi, (union sockaddr_union *)&dst,
proto);
if (tdbp == NULL || tdbp->tdb_flags & TDBF_INVALID)
- return (NULL);
+ return;
/* Walk the chain backwards to the first tdb */
for (; tdbp; tdbp = tdbp->tdb_inext) {
if (tdbp->tdb_flags & TDBF_INVALID ||
(adjust = ipsec_hdrsz(tdbp)) == -1)
- return (NULL);
+ return;
mtu -= adjust;
@@ -842,11 +842,10 @@ ipsec_common_ctlinput(u_int rdomain, int
adjust));
}
}
- return (NULL);
}
/* XXX rdomain */
-void *
+void
udpencap_ctlinput(int cmd, struct sockaddr *sa, u_int rdomain, void *v)
{
struct ip *ip = v;
@@ -867,7 +866,7 @@ udpencap_ctlinput(int cmd, struct sockad
* or the MTU is too small to be acceptable.
*/
if (mtu < 296)
- return (NULL);
+ return;
memset(&dst, 0, sizeof(dst));
dst.sin_family = AF_INET;
@@ -900,18 +899,17 @@ udpencap_ctlinput(int cmd, struct sockad
}
}
}
- return (NULL);
}
/* XXX rdomain */
-void *
+void
esp4_ctlinput(int cmd, struct sockaddr *sa, u_int rdomain, void *v)
{
if (sa->sa_family != AF_INET ||
sa->sa_len != sizeof(struct sockaddr_in))
- return (NULL);
+ return;
- return (ipsec_common_ctlinput(rdomain, cmd, sa, v, IPPROTO_ESP));
+ ipsec_common_ctlinput(rdomain, cmd, sa, v, IPPROTO_ESP);
}
#ifdef INET6
Index: netinet/tcp_subr.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/tcp_subr.c,v
retrieving revision 1.158
diff -u -p -r1.158 tcp_subr.c
--- netinet/tcp_subr.c 10 Jan 2017 09:01:18 -0000 1.158
+++ netinet/tcp_subr.c 25 Jan 2017 23:31:26 -0000
@@ -725,7 +725,7 @@ tcp6_ctlinput(int cmd, struct sockaddr *
}
#endif
-void *
+void
tcp_ctlinput(int cmd, struct sockaddr *sa, u_int rdomain, void *v)
{
struct ip *ip = v;
@@ -739,20 +739,20 @@ tcp_ctlinput(int cmd, struct sockaddr *s
int errno;
if (sa->sa_family != AF_INET)
- return NULL;
+ return;
faddr = satosin(sa)->sin_addr;
if (faddr.s_addr == INADDR_ANY)
- return NULL;
+ return;
if ((unsigned)cmd >= PRC_NCMDS)
- return NULL;
+ return;
errno = inetctlerrmap[cmd];
if (cmd == PRC_QUENCH)
/*
* Don't honor ICMP Source Quench messages meant for
* TCP connections.
*/
- return NULL;
+ return;
else if (PRC_IS_REDIRECT(cmd))
notify = in_rtchange, ip = 0;
else if (cmd == PRC_MSGSIZE && ip_mtudisc && ip) {
@@ -779,7 +779,7 @@ tcp_ctlinput(int cmd, struct sockaddr *s
*/
mtu = (u_int)ntohs(icp->icmp_nextmtu);
if (mtu >= tp->t_pmtud_mtu_sent)
- return NULL;
+ return;
if (mtu >= tcp_hdrsz(tp) + tp->t_pmtud_mss_acked) {
/*
* Calculate new MTU, and create corresponding
@@ -797,18 +797,18 @@ tcp_ctlinput(int cmd, struct sockaddr *s
*/
if (tp->t_flags & TF_PMTUD_PEND) {
if (SEQ_LT(tp->t_pmtud_th_seq, seq))
- return NULL;
+ return;
} else
tp->t_flags |= TF_PMTUD_PEND;
tp->t_pmtud_th_seq = seq;
tp->t_pmtud_nextmtu = icp->icmp_nextmtu;
tp->t_pmtud_ip_len = icp->icmp_ip.ip_len;
tp->t_pmtud_ip_hl = icp->icmp_ip.ip_hl;
- return NULL;
+ return;
}
} else {
/* ignore if we don't have a matching connection */
- return NULL;
+ return;
}
notify = tcp_mtudisc, ip = 0;
} else if (cmd == PRC_MTUINC)
@@ -816,7 +816,7 @@ tcp_ctlinput(int cmd, struct sockaddr *s
else if (cmd == PRC_HOSTDEAD)
ip = 0;
else if (errno == 0)
- return NULL;
+ return;
if (ip) {
th = (struct tcphdr *)((caddr_t)ip + (ip->ip_hl << 2));
@@ -844,8 +844,6 @@ tcp_ctlinput(int cmd, struct sockaddr *s
}
} else
in_pcbnotifyall(&tcbtable, sa, rdomain, errno, notify);
-
- return NULL;
}
Index: netinet/tcp_var.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/tcp_var.h,v
retrieving revision 1.118
diff -u -p -r1.118 tcp_var.h
--- netinet/tcp_var.h 25 Jan 2017 17:34:31 -0000 1.118
+++ netinet/tcp_var.h 25 Jan 2017 23:31:32 -0000
@@ -601,7 +601,7 @@ int tcp_freeq(struct tcpcb *);
#ifdef INET6
void tcp6_ctlinput(int, struct sockaddr *, u_int, void *);
#endif
-void *tcp_ctlinput(int, struct sockaddr *, u_int, void *);
+void tcp_ctlinput(int, struct sockaddr *, u_int, void *);
int tcp_ctloutput(int, struct socket *, int, int, struct mbuf **);
struct tcpcb *
tcp_disconnect(struct tcpcb *);
Index: netinet/udp_usrreq.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/udp_usrreq.c,v
retrieving revision 1.227
diff -u -p -r1.227 udp_usrreq.c
--- netinet/udp_usrreq.c 25 Jan 2017 17:34:31 -0000 1.227
+++ netinet/udp_usrreq.c 25 Jan 2017 23:31:49 -0000
@@ -869,7 +869,7 @@ udp6_ctlinput(int cmd, struct sockaddr *
}
#endif
-void *
+void
udp_ctlinput(int cmd, struct sockaddr *sa, u_int rdomain, void *v)
{
struct ip *ip = v;
@@ -880,23 +880,23 @@ udp_ctlinput(int cmd, struct sockaddr *s
int errno;
if (sa == NULL)
- return NULL;
+ return;
if (sa->sa_family != AF_INET ||
sa->sa_len != sizeof(struct sockaddr_in))
- return NULL;
+ return;
faddr = satosin(sa)->sin_addr;
if (faddr.s_addr == INADDR_ANY)
- return NULL;
+ return;
if ((unsigned)cmd >= PRC_NCMDS)
- return NULL;
+ return;
errno = inetctlerrmap[cmd];
if (PRC_IS_REDIRECT(cmd))
notify = in_rtchange, ip = 0;
else if (cmd == PRC_HOSTDEAD)
ip = 0;
else if (errno == 0)
- return NULL;
+ return;
if (ip) {
uhp = (struct udphdr *)((caddr_t)ip + (ip->ip_hl << 2));
@@ -905,7 +905,7 @@ udp_ctlinput(int cmd, struct sockaddr *s
if (cmd == PRC_MSGSIZE && ip_mtudisc && udpencap_enable &&
udpencap_port && uhp->uh_sport == htons(udpencap_port)) {
udpencap_ctlinput(cmd, sa, rdomain, v);
- return (NULL);
+ return;
}
#endif
inp = in_pcbhashlookup(&udbtable,
@@ -915,7 +915,6 @@ udp_ctlinput(int cmd, struct sockaddr *s
notify(inp, errno);
} else
in_pcbnotifyall(&udbtable, sa, rdomain, errno, notify);
- return (NULL);
}
int
Index: netinet/udp_var.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/udp_var.h,v
retrieving revision 1.29
diff -u -p -r1.29 udp_var.h
--- netinet/udp_var.h 25 Jan 2017 17:34:31 -0000 1.29
+++ netinet/udp_var.h 25 Jan 2017 23:30:33 -0000
@@ -140,7 +140,7 @@ extern struct udpstat udpstat;
void udp6_ctlinput(int, struct sockaddr *, u_int, void *);
int udp6_input(struct mbuf **, int *, int);
#endif /* INET6 */
-void *udp_ctlinput(int, struct sockaddr *, u_int, void *);
+void udp_ctlinput(int, struct sockaddr *, u_int, void *);
void udp_init(void);
void udp_input(struct mbuf *, int, int);
#ifdef INET6
Index: netinet6/ip6protosw.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/ip6protosw.h,v
retrieving revision 1.10
diff -u -p -r1.10 ip6protosw.h
--- netinet6/ip6protosw.h 21 Oct 2013 12:40:50 -0000 1.10
+++ netinet6/ip6protosw.h 25 Jan 2017 23:26:29 -0000
@@ -110,7 +110,7 @@ struct ip6ctlparam {
};
struct ip6protosw {
- short pr_type; /* socket type used for */
+ short pr_type; /* socket type used for */
struct domain *pr_domain; /* domain protocol a member of */
short pr_protocol; /* protocol number */
short pr_flags; /* see below */
@@ -132,7 +132,6 @@ struct ip6protosw {
/* utility hooks */
void (*pr_init)(void); /* initialization hook */
-
void (*pr_fasttimo)(void); /* fast timeout (200ms) */
void (*pr_slowtimo)(void); /* slow timeout (500ms) */
void (*pr_drain)(void); /* flush any excess space possible */
Index: sys/protosw.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/sys/protosw.h,v
retrieving revision 1.19
diff -u -p -r1.19 protosw.h
--- sys/protosw.h 25 Jan 2017 17:34:31 -0000 1.19
+++ sys/protosw.h 25 Jan 2017 23:28:58 -0000
@@ -73,7 +73,7 @@ struct protosw {
/* output to protocol (from above) */
int (*pr_output)(struct mbuf *, ...);
/* control input (from below) */
- void *(*pr_ctlinput)(int, struct sockaddr *, u_int, void *);
+ void (*pr_ctlinput)(int, struct sockaddr *, u_int, void *);
/* control output (from above) */
int (*pr_ctloutput)(int, struct socket *, int, int, struct mbuf **);