Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys Simplify logic of udp4_sendup and udp6_sendup



details:   https://anonhg.NetBSD.org/src/rev/6aa6cb6ab111
branches:  trunk
changeset: 353097:6aa6cb6ab111
user:      ozaki-r <ozaki-r%NetBSD.org@localhost>
date:      Thu Apr 20 08:45:09 2017 +0000

description:
Simplify logic of udp4_sendup and udp6_sendup

They are always passed a socket with the same protocol faimiliy
as its own: AF_INET for udp4_sendup and AF_INET6 for udp6_sendup.

diffstat:

 sys/netinet/in_pcb.c       |   6 ++++--
 sys/netinet/udp_usrreq.c   |  24 ++++++++----------------
 sys/netinet6/in6_pcb.c     |   6 ++++--
 sys/netinet6/udp6_usrreq.c |  19 +++++++++----------
 4 files changed, 25 insertions(+), 30 deletions(-)

diffs (167 lines):

diff -r 8ac04e714c20 -r 6aa6cb6ab111 sys/netinet/in_pcb.c
--- a/sys/netinet/in_pcb.c      Thu Apr 20 08:34:23 2017 +0000
+++ b/sys/netinet/in_pcb.c      Thu Apr 20 08:45:09 2017 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: in_pcb.c,v 1.176 2017/03/02 05:29:31 ozaki-r Exp $     */
+/*     $NetBSD: in_pcb.c,v 1.177 2017/04/20 08:45:09 ozaki-r Exp $     */
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -93,7 +93,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.176 2017/03/02 05:29:31 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.177 2017/04/20 08:45:09 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -192,6 +192,8 @@
        struct inpcb *inp;
        int s;
 
+       KASSERT(so->so_proto->pr_domain->dom_family == AF_INET);
+
        inp = pool_get(&inpcb_pool, PR_NOWAIT);
        if (inp == NULL)
                return (ENOBUFS);
diff -r 8ac04e714c20 -r 6aa6cb6ab111 sys/netinet/udp_usrreq.c
--- a/sys/netinet/udp_usrreq.c  Thu Apr 20 08:34:23 2017 +0000
+++ b/sys/netinet/udp_usrreq.c  Thu Apr 20 08:45:09 2017 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: udp_usrreq.c,v 1.231 2017/03/03 07:13:06 ozaki-r Exp $ */
+/*     $NetBSD: udp_usrreq.c,v 1.232 2017/04/20 08:45:09 ozaki-r Exp $ */
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.231 2017/03/03 07:13:06 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.232 2017/04/20 08:45:09 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -468,21 +468,13 @@
 {
        struct mbuf *opts = NULL;
        struct mbuf *n;
-       struct inpcb *inp = NULL;
+       struct inpcb *inp;
 
        if (!so)
                return;
-       switch (so->so_proto->pr_domain->dom_family) {
-       case AF_INET:
-               inp = sotoinpcb(so);
-               break;
-#ifdef INET6
-       case AF_INET6:
-               break;
-#endif
-       default:
-               return;
-       }
+       KASSERT(so->so_proto->pr_domain->dom_family == AF_INET);
+       inp = sotoinpcb(so);
+       KASSERT(inp != NULL);
 
 #if defined(IPSEC)
        /* check AH/ESP integrity. */
@@ -496,11 +488,11 @@
 #endif /*IPSEC*/
 
        if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) {
-               if (inp && (inp->inp_flags & INP_CONTROLOPTS
+               if (inp->inp_flags & INP_CONTROLOPTS
 #ifdef SO_OTIMESTAMP
                         || so->so_options & SO_OTIMESTAMP
 #endif
-                        || so->so_options & SO_TIMESTAMP)) {
+                        || so->so_options & SO_TIMESTAMP) {
                        struct ip *ip = mtod(n, struct ip *);
                        ip_savecontrol(inp, &opts, ip, n);
                }
diff -r 8ac04e714c20 -r 6aa6cb6ab111 sys/netinet6/in6_pcb.c
--- a/sys/netinet6/in6_pcb.c    Thu Apr 20 08:34:23 2017 +0000
+++ b/sys/netinet6/in6_pcb.c    Thu Apr 20 08:45:09 2017 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: in6_pcb.c,v 1.159 2017/03/02 05:26:24 ozaki-r Exp $    */
+/*     $NetBSD: in6_pcb.c,v 1.160 2017/04/20 08:45:09 ozaki-r Exp $    */
 /*     $KAME: in6_pcb.c,v 1.84 2001/02/08 18:02:08 itojun Exp $        */
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in6_pcb.c,v 1.159 2017/03/02 05:26:24 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in6_pcb.c,v 1.160 2017/04/20 08:45:09 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -158,6 +158,8 @@
        struct in6pcb *in6p;
        int s;
 
+       KASSERT(so->so_proto->pr_domain->dom_family == AF_INET6);
+
        in6p = pool_get(&in6pcb_pool, PR_NOWAIT);
        if (in6p == NULL)
                return (ENOBUFS);
diff -r 8ac04e714c20 -r 6aa6cb6ab111 sys/netinet6/udp6_usrreq.c
--- a/sys/netinet6/udp6_usrreq.c        Thu Apr 20 08:34:23 2017 +0000
+++ b/sys/netinet6/udp6_usrreq.c        Thu Apr 20 08:45:09 2017 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: udp6_usrreq.c,v 1.127 2017/01/24 07:09:25 ozaki-r Exp $        */
+/*     $NetBSD: udp6_usrreq.c,v 1.128 2017/04/20 08:45:09 ozaki-r Exp $        */
 /*     $KAME: udp6_usrreq.c,v 1.86 2001/05/27 17:33:00 itojun Exp $    */
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: udp6_usrreq.c,v 1.127 2017/01/24 07:09:25 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udp6_usrreq.c,v 1.128 2017/04/20 08:45:09 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -343,17 +343,16 @@
 {
        struct mbuf *opts = NULL;
        struct mbuf *n;
-       struct in6pcb *in6p = NULL;
+       struct in6pcb *in6p;
 
-       if (!so)
-               return;
-       if (so->so_proto->pr_domain->dom_family != AF_INET6)
-               return;
+       KASSERT(so != NULL);
+       KASSERT(so->so_proto->pr_domain->dom_family == AF_INET6);
        in6p = sotoin6pcb(so);
+       KASSERT(in6p != NULL);
 
 #if defined(IPSEC)
        /* check AH/ESP integrity. */
-       if (ipsec_used && so != NULL && ipsec6_in_reject_so(m, so)) {
+       if (ipsec_used && ipsec6_in_reject_so(m, so)) {
                IPSEC6_STATINC(IPSEC_STAT_IN_POLVIO);
                if ((n = m_copypacket(m, M_DONTWAIT)) != NULL)
                        icmp6_error(n, ICMP6_DST_UNREACH,
@@ -363,11 +362,11 @@
 #endif /*IPSEC*/
 
        if ((n = m_copypacket(m, M_DONTWAIT)) != NULL) {
-               if (in6p && (in6p->in6p_flags & IN6P_CONTROLOPTS
+               if (in6p->in6p_flags & IN6P_CONTROLOPTS
 #ifdef SO_OTIMESTAMP
                    || in6p->in6p_socket->so_options & SO_OTIMESTAMP
 #endif
-                   || in6p->in6p_socket->so_options & SO_TIMESTAMP)) {
+                   || in6p->in6p_socket->so_options & SO_TIMESTAMP) {
                        struct ip6_hdr *ip6 = mtod(n, struct ip6_hdr *);
                        ip6_savecontrol(in6p, &opts, ip6, n);
                }



Home | Main Index | Thread Index | Old Index