summaryrefslogtreecommitdiffstats
path: root/sys/netinet/raw_ip.c
diff options
context:
space:
mode:
authorluigi <luigi@FreeBSD.org>2002-11-17 16:02:17 +0000
committerluigi <luigi@FreeBSD.org>2002-11-17 16:02:17 +0000
commit189b1362574bf673073eea963a8a4628e059704a (patch)
tree11b495f42115a0168db09ecb33b87c01df915e98 /sys/netinet/raw_ip.c
parent67c42884ec9d00482ca7756923cbb22be064c52e (diff)
downloadFreeBSD-src-189b1362574bf673073eea963a8a4628e059704a.zip
FreeBSD-src-189b1362574bf673073eea963a8a4628e059704a.tar.gz
Cleanup some of the comments, and reformat long lines.
Replace m_copy() with m_copypacket() where applicable. Replace "if (a.s_addr ...)" with "if (a.s_addr != INADDR_ANY ...)" to make it clear what the code means. While at it, fix some function headers and remove 'register' from variable declarations. MFC after: 3 days
Diffstat (limited to 'sys/netinet/raw_ip.c')
-rw-r--r--sys/netinet/raw_ip.c56
1 files changed, 27 insertions, 29 deletions
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c
index 8599a1b..9bae95f 100644
--- a/sys/netinet/raw_ip.c
+++ b/sys/netinet/raw_ip.c
@@ -118,10 +118,10 @@ void (*ip_rsvp_force_done)(struct socket *);
*/
/*
- * Initialize raw connection block q.
+ * Initialize raw connection block queue.
*/
void
-rip_init()
+rip_init(void)
{
INP_INFO_LOCK_INIT(&ripcbinfo, "rip");
LIST_INIT(&ripcb);
@@ -138,19 +138,22 @@ rip_init()
uma_zone_set_max(ripcbinfo.ipi_zone, maxsockets);
}
+/*
+ * XXX ripsrc is modified in rip_input, so we must be fix this
+ * when we want to make this code smp-friendly.
+ */
static struct sockaddr_in ripsrc = { sizeof(ripsrc), AF_INET };
+
/*
* Setup generic address and protocol structures
* for raw_input routine, then pass them along with
* mbuf chain.
*/
void
-rip_input(m, off)
- struct mbuf *m;
- int off;
+rip_input(struct mbuf *m, int off)
{
- register struct ip *ip = mtod(m, struct ip *);
- register struct inpcb *inp;
+ struct ip *ip = mtod(m, struct ip *);
+ struct inpcb *inp;
struct inpcb *last = 0;
struct mbuf *opts = 0;
int proto = ip->ip_p;
@@ -163,14 +166,14 @@ rip_input(m, off)
#endif
if (inp->inp_ip_p && inp->inp_ip_p != proto)
continue;
- if (inp->inp_laddr.s_addr &&
- inp->inp_laddr.s_addr != ip->ip_dst.s_addr)
+ if (inp->inp_laddr.s_addr != INADDR_ANY &&
+ inp->inp_laddr.s_addr != ip->ip_dst.s_addr)
continue;
- if (inp->inp_faddr.s_addr &&
- inp->inp_faddr.s_addr != ip->ip_src.s_addr)
+ if (inp->inp_faddr.s_addr != INADDR_ANY &&
+ inp->inp_faddr.s_addr != ip->ip_src.s_addr)
continue;
if (last) {
- struct mbuf *n = m_copy(m, 0, (int)M_COPYALL);
+ struct mbuf *n = m_copypacket(m, M_DONTWAIT);
int policyfail = 0;
if (n != NULL) {
@@ -265,13 +268,10 @@ rip_input(m, off)
* Tack on options user may have setup with control call.
*/
int
-rip_output(m, so, dst)
- struct mbuf *m;
- struct socket *so;
- u_long dst;
+rip_output(struct mbuf *m, struct socket *so, u_long dst)
{
- register struct ip *ip;
- register struct inpcb *inp = sotoinpcb(so);
+ struct ip *ip;
+ struct inpcb *inp = sotoinpcb(so);
int flags = (so->so_options & SO_DONTROUTE) | IP_ALLOWBROADCAST;
#ifdef MAC
@@ -330,9 +330,7 @@ rip_output(m, so, dst)
* Raw IP socket option processing.
*/
int
-rip_ctloutput(so, sopt)
- struct socket *so;
- struct sockopt *sopt;
+rip_ctloutput(struct socket *so, struct sockopt *sopt)
{
struct inpcb *inp = sotoinpcb(so);
int error, optval;
@@ -460,10 +458,7 @@ rip_ctloutput(so, sopt)
* interface routes.
*/
void
-rip_ctlinput(cmd, sa, vip)
- int cmd;
- struct sockaddr *sa;
- void *vip;
+rip_ctlinput(int cmd, struct sockaddr *sa, void *vip)
{
struct in_ifaddr *ia;
struct ifnet *ifp;
@@ -521,7 +516,8 @@ SYSCTL_INT(_net_inet_raw, OID_AUTO, maxdgram, CTLFLAG_RW,
SYSCTL_INT(_net_inet_raw, OID_AUTO, recvspace, CTLFLAG_RW,
&rip_recvspace, 0, "Maximum incoming raw IP datagram size");
SYSCTL_INT(_net_inet_raw, OID_AUTO, olddiverterror, CTLFLAG_RW,
- &rip_olddiverterror, 0, "Return an error when creating an 'old' DIVERT socket");
+ &rip_olddiverterror, 0,
+ "Return an error when creating an 'old' DIVERT socket");
static int
rip_attach(struct socket *so, int proto, struct thread *td)
@@ -540,7 +536,9 @@ rip_attach(struct socket *so, int proto, struct thread *td)
/* To be removed before 5.2 */
if (rip_olddiverterror && proto == IPPROTO_OLD_DIVERT) {
- printf("Old IPDIVERT program needs to be recompiled, or new IP proto 254 user needs sysctl net.inet.raw.olddiverterror=0\n");
+ printf("Old IPDIVERT program needs to be recompiled, "
+ "or new IP proto 254 user needs "
+ "sysctl net.inet.raw.olddiverterror=0\n");
return EPROTONOSUPPORT;
}
@@ -603,7 +601,7 @@ rip_bind(struct socket *so, struct sockaddr *nam, struct thread *td)
if (TAILQ_EMPTY(&ifnet) || ((addr->sin_family != AF_INET) &&
(addr->sin_family != AF_IMPLINK)) ||
- (addr->sin_addr.s_addr &&
+ (addr->sin_addr.s_addr != INADDR_ANY &&
ifa_ifwithaddr((struct sockaddr *)addr) == 0))
return EADDRNOTAVAIL;
inp->inp_laddr = addr->sin_addr;
@@ -640,7 +638,7 @@ rip_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam,
struct mbuf *control, struct thread *td)
{
struct inpcb *inp = sotoinpcb(so);
- register u_long dst;
+ u_long dst;
if (so->so_state & SS_ISCONNECTED) {
if (nam) {
OpenPOWER on IntegriCloud