KNF. Use sockaddr_in_init(). Shorten staircases. No functional

changes intended.
This commit is contained in:
dyoung 2007-05-12 02:10:25 +00:00
parent 9552c98d25
commit c7cb104b6b
1 changed files with 34 additions and 42 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: raw_ip.c,v 1.96 2007/03/04 06:03:21 christos Exp $ */
/* $NetBSD: raw_ip.c,v 1.97 2007/05/12 02:10:25 dyoung Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.96 2007/03/04 06:03:21 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.97 2007/05/12 02:10:25 dyoung Exp $");
#include "opt_inet.h"
#include "opt_ipsec.h"
@ -143,8 +143,8 @@ rip_input(struct mbuf *m, ...)
struct ip *ip = mtod(m, struct ip *);
struct inpcb_hdr *inph;
struct inpcb *inp;
struct inpcb *last = 0;
struct mbuf *opts = 0;
struct inpcb *last = NULL;
struct mbuf *n, *opts = NULL;
struct sockaddr_in ripsrc;
va_list ap;
@ -153,11 +153,7 @@ rip_input(struct mbuf *m, ...)
proto = va_arg(ap, int);
va_end(ap);
ripsrc.sin_family = AF_INET;
ripsrc.sin_len = sizeof(struct sockaddr_in);
ripsrc.sin_addr = ip->ip_src;
ripsrc.sin_port = 0;
bzero((void *)ripsrc.sin_zero, sizeof(ripsrc.sin_zero));
sockaddr_in_init(&ripsrc, &ip->ip_src, 0);
/*
* XXX Compatibility: programs using raw IP expect ip_len
@ -179,43 +175,41 @@ rip_input(struct mbuf *m, ...)
if (!in_nullhost(inp->inp_faddr) &&
!in_hosteq(inp->inp_faddr, ip->ip_src))
continue;
if (last) {
struct mbuf *n;
if (last == NULL)
;
#if defined(IPSEC) || defined(FAST_IPSEC)
/* check AH/ESP integrity. */
if (ipsec4_in_reject_so(m, last->inp_socket)) {
ipsecstat.in_polvio++;
/* do not inject data to pcb */
} else
/* check AH/ESP integrity. */
else if (ipsec4_in_reject_so(m, last->inp_socket)) {
ipsecstat.in_polvio++;
/* do not inject data to pcb */
}
#endif /*IPSEC*/
if ((n = m_copy(m, 0, (int)M_COPYALL)) != NULL) {
if (last->inp_flags & INP_CONTROLOPTS ||
last->inp_socket->so_options & SO_TIMESTAMP)
ip_savecontrol(last, &opts, ip, n);
if (sbappendaddr(&last->inp_socket->so_rcv,
sintosa(&ripsrc), n, opts) == 0) {
/* should notify about lost packet */
m_freem(n);
if (opts)
m_freem(opts);
} else
sorwakeup(last->inp_socket);
opts = NULL;
}
else if ((n = m_copy(m, 0, M_COPYALL)) != NULL) {
if (last->inp_flags & INP_CONTROLOPTS ||
last->inp_socket->so_options & SO_TIMESTAMP)
ip_savecontrol(last, &opts, ip, n);
if (sbappendaddr(&last->inp_socket->so_rcv,
sintosa(&ripsrc), n, opts) == 0) {
/* should notify about lost packet */
m_freem(n);
if (opts)
m_freem(opts);
} else
sorwakeup(last->inp_socket);
opts = NULL;
}
last = inp;
}
#if defined(IPSEC) || defined(FAST_IPSEC)
/* check AH/ESP integrity. */
if (last && ipsec4_in_reject_so(m, last->inp_socket)) {
if (last != NULL && ipsec4_in_reject_so(m, last->inp_socket)) {
m_freem(m);
ipsecstat.in_polvio++;
ipstat.ips_delivered--;
/* do not inject data to pcb */
} else
#endif /*IPSEC*/
if (last) {
if (last != NULL) {
if (last->inp_flags & INP_CONTROLOPTS ||
last->inp_socket->so_options & SO_TIMESTAMP)
ip_savecontrol(last, &opts, ip, m);
@ -226,15 +220,13 @@ rip_input(struct mbuf *m, ...)
m_freem(opts);
} else
sorwakeup(last->inp_socket);
} else {
if (inetsw[ip_protox[ip->ip_p]].pr_input == rip_input) {
icmp_error(m, ICMP_UNREACH, ICMP_UNREACH_PROTOCOL,
0, 0);
ipstat.ips_noproto++;
ipstat.ips_delivered--;
} else
m_freem(m);
}
} else if (inetsw[ip_protox[ip->ip_p]].pr_input == rip_input) {
icmp_error(m, ICMP_UNREACH, ICMP_UNREACH_PROTOCOL,
0, 0);
ipstat.ips_noproto++;
ipstat.ips_delivered--;
} else
m_freem(m);
return;
}