CVS commit: src/share/misc
Module Name:src Committed By: rtr Date: Wed Apr 29 22:17:38 UTC 2020 Modified Files: src/share/misc: acronyms.comp Log Message: LSO large send offload To generate a diff of this commit: cvs rdiff -u -r1.301 -r1.302 src/share/misc/acronyms.comp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/share/misc/acronyms.comp diff -u src/share/misc/acronyms.comp:1.301 src/share/misc/acronyms.comp:1.302 --- src/share/misc/acronyms.comp:1.301 Mon Apr 27 09:10:45 2020 +++ src/share/misc/acronyms.comp Wed Apr 29 22:17:38 2020 @@ -1,4 +1,4 @@ -$NetBSD: acronyms.comp,v 1.301 2020/04/27 09:10:45 plunky Exp $ +$NetBSD: acronyms.comp,v 1.302 2020/04/29 22:17:38 rtr Exp $ 3WHS three-way handshake 8VSB 8-state vestigial side band modulation AA anti-aliasing @@ -882,6 +882,7 @@ LSL load segment limit LSM log structured merge LSN Large Scale NAT LSN log sequence number +LSO large send offload LSR label switch router LTCC low temperature co-fired ceramic LTO linear tape-open
CVS commit: src/share/misc
Module Name:src Committed By: rtr Date: Sun Sep 17 21:55:07 UTC 2017 Modified Files: src/share/misc: acronyms.comp Log Message: GVFS git virtual file system To generate a diff of this commit: cvs rdiff -u -r1.184 -r1.185 src/share/misc/acronyms.comp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/share/misc/acronyms.comp diff -u src/share/misc/acronyms.comp:1.184 src/share/misc/acronyms.comp:1.185 --- src/share/misc/acronyms.comp:1.184 Fri Aug 11 16:03:14 2017 +++ src/share/misc/acronyms.comp Sun Sep 17 21:55:07 2017 @@ -1,4 +1,4 @@ -$NetBSD: acronyms.comp,v 1.184 2017/08/11 16:03:14 ginsbach Exp $ +$NetBSD: acronyms.comp,v 1.185 2017/09/17 21:55:07 rtr Exp $ 3WHS three-way handshake 8VSB 8-state vestigial side band modulation AA anti-aliasing @@ -522,6 +522,7 @@ GRE generic routing encapsulation GSI global system interrupt GUI graphical user interface GUID globally unique identifier +GVFSgit virtual file system HA high availability HAL hardware abstraction layer HAT hashed array tree
CVS commit: src/sys/lib/libkern
Module Name:src Committed By: rtr Date: Wed May 11 03:17:22 UTC 2016 Modified Files: src/sys/lib/libkern: libkern.h Log Message: provide const versions of container_of macros. discussed with riastradh@ by email To generate a diff of this commit: cvs rdiff -u -r1.122 -r1.123 src/sys/lib/libkern/libkern.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/lib/libkern/libkern.h diff -u src/sys/lib/libkern/libkern.h:1.122 src/sys/lib/libkern/libkern.h:1.123 --- src/sys/lib/libkern/libkern.h:1.122 Mon May 2 19:18:29 2016 +++ src/sys/lib/libkern/libkern.h Wed May 11 03:17:22 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: libkern.h,v 1.122 2016/05/02 19:18:29 christos Exp $ */ +/* $NetBSD: libkern.h,v 1.123 2016/05/11 03:17:22 rtr Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -337,15 +337,22 @@ tolower(int ch) */ #ifdef __COVERITY__ #define __validate_container_of(PTR, TYPE, FIELD) 0 +#define __validate_const_container_of(PTR, TYPE, FIELD) 0 #else #define __validate_container_of(PTR, TYPE, FIELD) \ (0 * sizeof((PTR) - &((TYPE *)(((char *)(PTR)) - \ offsetof(TYPE, FIELD)))->FIELD)) +#define __validate_const_container_of(PTR, TYPE, FIELD) \ +(0 * sizeof((PTR) - &((const TYPE *)(((const char *)(PTR)) - \ +offsetof(TYPE, FIELD)))->FIELD)) #endif #define container_of(PTR, TYPE, FIELD) \ ((TYPE *)(((char *)(PTR)) - offsetof(TYPE, FIELD)) \ + __validate_container_of(PTR, TYPE, FIELD)) +#define const_container_of(PTR, TYPE, FIELD)\ +((const TYPE *)(((const char *)(PTR)) - offsetof(TYPE, FIELD)) \ + + __validate_const_container_of(PTR, TYPE, FIELD)) #define MTPRNG_RLEN 624 struct mtprng_state {
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Mon Feb 15 19:00:42 UTC 2016 Modified Files: src/sys/netinet: sctp_indata.c sctputil.c Log Message: Fix building of IPv4-Mapped IPv6 addresses. As discussed on tech-net@ use in6_sin_2_v4mapsin6() to build mapped addresses. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/netinet/sctp_indata.c cvs rdiff -u -r1.1 -r1.2 src/sys/netinet/sctputil.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/sctp_indata.c diff -u src/sys/netinet/sctp_indata.c:1.2 src/sys/netinet/sctp_indata.c:1.3 --- src/sys/netinet/sctp_indata.c:1.2 Sun Dec 13 18:53:57 2015 +++ src/sys/netinet/sctp_indata.c Mon Feb 15 19:00:42 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: sctp_indata.c,v 1.2 2015/12/13 18:53:57 christos Exp $ */ +/* $NetBSD: sctp_indata.c,v 1.3 2016/02/15 19:00:42 rtr Exp $ */ /* $KAME: sctp_indata.c,v 1.36 2005/03/06 16:04:17 itojun Exp $ */ /* @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: sctp_indata.c,v 1.2 2015/12/13 18:53:57 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sctp_indata.c,v 1.3 2016/02/15 19:00:42 rtr Exp $"); #ifdef _KERNEL_OPT #include "opt_ipsec.h" @@ -424,13 +424,7 @@ sctp_deliver_data(struct sctp_tcb *stcb, const struct sockaddr_in *sin; sin = (const struct sockaddr_in *)to; - memset(, 0, sizeof(sin6)); - sin6.sin6_family = AF_INET6; - sin6.sin6_len = sizeof(struct sockaddr_in6); - sin6.sin6_addr.s6_addr16[2] = 0x; - bcopy(>sin_addr, _addr.s6_addr16[3], - sizeof(sin6.sin6_addr.s6_addr16[3])); - sin6.sin6_port = sin->sin_port; + in6_sin_2_v4mapsin6(sin, ); to = (struct sockaddr *) } /* check and strip embedded scope junk */ @@ -653,14 +647,7 @@ sctp_service_reassembly(struct sctp_tcb const struct sockaddr_in *sin; sin = satocsin(to); -memset(, 0, sizeof(sin6)); -sin6.sin6_family = AF_INET6; -sin6.sin6_len = sizeof(struct sockaddr_in6); -sin6.sin6_addr.s6_addr16[2] = 0x; -bcopy(>sin_addr, - _addr.s6_addr16[3], - sizeof(sin6.sin6_addr.s6_addr16[3])); -sin6.sin6_port = sin->sin_port; +in6_sin_2_v4mapsin6(sin, ); to = (struct sockaddr *) } /* check and strip embedded scope junk */ @@ -1962,14 +1949,7 @@ sctp_process_a_data_chunk(struct sctp_tc const struct sockaddr_in *sin; sin = satocsin(to); - memset(, 0, sizeof(sin6)); - sin6.sin6_family = AF_INET6; - sin6.sin6_len = sizeof(struct sockaddr_in6); - sin6.sin6_addr.s6_addr16[2] = 0x; - bcopy(>sin_addr, - _addr.s6_addr16[3], - sizeof(sin6.sin6_addr.s6_addr16[3])); - sin6.sin6_port = sin->sin_port; + in6_sin_2_v4mapsin6(sin, ); to = (struct sockaddr *) } Index: src/sys/netinet/sctputil.c diff -u src/sys/netinet/sctputil.c:1.1 src/sys/netinet/sctputil.c:1.2 --- src/sys/netinet/sctputil.c:1.1 Tue Oct 13 21:28:35 2015 +++ src/sys/netinet/sctputil.c Mon Feb 15 19:00:42 2016 @@ -1,5 +1,5 @@ /* $KAME: sctputil.c,v 1.39 2005/06/16 20:54:06 jinmei Exp $ */ -/* $NetBSD: sctputil.c,v 1.1 2015/10/13 21:28:35 rjs Exp $ */ +/* $NetBSD: sctputil.c,v 1.2 2016/02/15 19:00:42 rtr Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Cisco Systems, Inc. @@ -34,7 +34,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: sctputil.c,v 1.1 2015/10/13 21:28:35 rjs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sctputil.c,v 1.2 2016/02/15 19:00:42 rtr Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -2087,13 +2087,7 @@ sctp_notify_assoc_change(u_int32_t event const struct sockaddr_in *sin; sin = (const struct sockaddr_in *)to; - memset(, 0, sizeof(sin6)); - sin6.sin6_family = AF_INET6; - sin6.sin6_len = sizeof(struct sockaddr_in6); - sin6.sin6_addr.s6_addr16[2] = 0x; - memcpy(_addr.s6_addr16[3], >sin_addr, - sizeof(sin6.sin6_addr.s6_addr16[3])); - sin6.sin6_port = sin->sin_port; + in6_sin_2_v4mapsin6(sin, ); to = (struct sockaddr *) } /* check and strip embedded scope junk */ @@ -2179,13 +2173,7 @@ sctp_notify_peer_addr_change(struct sctp const struct sockaddr_in *sin; sin = (const struct sockaddr_in *)to; - memset(, 0, sizeof(sin6)); - sin6.sin6_family = AF_INET6; - sin6.sin6_len = sizeof(struct sockaddr_in6); - sin6.sin6_addr.s6_addr16[2] = 0x; - bcopy(>sin_addr, _addr.s6_addr16[3], - sizeof(sin6.sin6_addr.s6_addr16[3])); - sin6.sin6_port = sin->sin_port; + in6_sin_2_v4mapsin6(sin, ); to = (struct sockaddr *) } /* check and strip embedded scope junk */ @@ -2279,13 +2267,7 @@ sctp_notify_send_failed(struct sctp_tcb const struct sockaddr_in *sin; sin = satocsin(to); - memset(, 0, sizeof(sin6)); - sin6.sin6_family = AF_INET6; - sin6.sin6_len = sizeof(struct sockaddr_in6); - sin6.sin6_addr.s6_addr16[2] = 0x; - bcopy(>sin_addr, _addr.s6_addr16[3], - sizeof(sin6.sin6_addr.s6_addr16[3])); - sin6.sin6_port = sin->sin_port; +
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Mon Feb 15 14:59:03 UTC 2016 Modified Files: src/sys/netinet: in_pcb.c tcp_input.c tcp_subr.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: in6.c in6.h Log Message: Reduce code duplication. Split creation of IPv4-Mapped IPv6 addresses into its own function and use it. No functional change intended. As posted to tech-net@ To generate a diff of this commit: cvs rdiff -u -r1.162 -r1.163 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.344 -r1.345 src/sys/netinet/tcp_input.c cvs rdiff -u -r1.264 -r1.265 src/sys/netinet/tcp_subr.c cvs rdiff -u -r1.210 -r1.211 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.223 -r1.224 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.194 -r1.195 src/sys/netinet6/in6.c cvs rdiff -u -r1.86 -r1.87 src/sys/netinet6/in6.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/in_pcb.c diff -u src/sys/netinet/in_pcb.c:1.162 src/sys/netinet/in_pcb.c:1.163 --- src/sys/netinet/in_pcb.c:1.162 Mon Aug 24 22:21:26 2015 +++ src/sys/netinet/in_pcb.c Mon Feb 15 14:59:03 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: in_pcb.c,v 1.162 2015/08/24 22:21:26 pooka Exp $ */ +/* $NetBSD: in_pcb.c,v 1.163 2016/02/15 14:59:03 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -93,7 +93,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.162 2015/08/24 22:21:26 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.163 2016/02/15 14:59:03 rtr Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -347,10 +347,7 @@ in_pcbbind_port(struct inpcb *inp, struc return (EACCES); #ifdef INET6 - memset(, 0, sizeof(mapped)); - mapped.s6_addr16[5] = 0x; - memcpy(_addr32[3], >sin_addr, - sizeof(mapped.s6_addr32[3])); + in6_in_2_v4mapin6(>sin_addr, ); t6 = in6_pcblookup_port(table, , sin->sin_port, wild, ); if (t6 && (reuseport & t6->in6p_socket->so_options) == 0) return (EADDRINUSE); Index: src/sys/netinet/tcp_input.c diff -u src/sys/netinet/tcp_input.c:1.344 src/sys/netinet/tcp_input.c:1.345 --- src/sys/netinet/tcp_input.c:1.344 Mon Aug 24 22:21:26 2015 +++ src/sys/netinet/tcp_input.c Mon Feb 15 14:59:03 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_input.c,v 1.344 2015/08/24 22:21:26 pooka Exp $ */ +/* $NetBSD: tcp_input.c,v 1.345 2016/02/15 14:59:03 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -148,7 +148,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.344 2015/08/24 22:21:26 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.345 2016/02/15 14:59:03 rtr Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1424,12 +1424,8 @@ findpcb: struct in6_addr s, d; /* mapped addr case */ - memset(, 0, sizeof(s)); - s.s6_addr16[5] = htons(0x); - bcopy(>ip_src, _addr32[3], sizeof(ip->ip_src)); - memset(, 0, sizeof(d)); - d.s6_addr16[5] = htons(0x); - bcopy(>ip_dst, _addr32[3], sizeof(ip->ip_dst)); + in6_in_2_v4mapin6(>ip_src, ); + in6_in_2_v4mapin6(>ip_dst, ); in6p = in6_pcblookup_connect(, , th->th_sport, , th->th_dport, 0, ); @@ -4086,14 +4082,7 @@ syn_cache_get(struct sockaddr *src, stru memcpy(, src, src->sa_len); if (src->sa_family == AF_INET) { /* IPv4 packet to AF_INET6 socket */ - memset(, 0, sizeof(sin6)); - sin6.sin6_family = AF_INET6; - sin6.sin6_len = sizeof(sin6); - sin6.sin6_port = ((struct sockaddr_in *)src)->sin_port; - sin6.sin6_addr.s6_addr16[5] = htons(0x); - bcopy(&((struct sockaddr_in *)src)->sin_addr, -_addr.s6_addr32[3], -sizeof(sin6.sin6_addr.s6_addr32[3])); + in6_sin_2_v4mapsin6((struct sockaddr_in *)src, ); } if (in6_pcbconnect(in6p, , NULL)) { goto resetandabort; Index: src/sys/netinet/tcp_subr.c diff -u src/sys/netinet/tcp_subr.c:1.264 src/sys/netinet/tcp_subr.c:1.265 --- src/sys/netinet/tcp_subr.c:1.264 Mon Sep 7 01:56:50 2015 +++ src/sys/netinet/tcp_subr.c Mon Feb 15 14:59:03 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_subr.c,v 1.264 2015/09/07 01:56:50 ozaki-r Exp $ */ +/* $NetBSD: tcp_subr.c,v 1.265 2016/02/15 14:59:03 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -91,7 +91,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.264 2015/09/07 01:56:50 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.265 2016/02/15 14:59:03 rtr Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1603,11 +1603,8 @@ tcp_ctlinput(int cmd, const struct socka */ th = (struct tcphdr *)((char *)ip + (ip->ip_hl << 2)); #ifdef INET6 - memset(, 0, sizeof(src6)); - memset(, 0, sizeof(dst6)); - src6.s6_addr16[5] = dst6.s6_addr16[5] = 0x; - memcpy(_addr32[3], >ip_src, sizeof(struct in_addr)); - memcpy(_addr32[3], >ip_dst, sizeof(struct in_addr)); + in6_in_2_v4mapin6(>ip_src, ); + in6_in_2_v4mapin6(>ip_dst, ); #endif if ((inp =
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Sun Feb 14 23:47:57 UTC 2016 Modified Files: src/sys/netinet: tcp_usrreq.c Log Message: remove duplicated #include of To generate a diff of this commit: cvs rdiff -u -r1.209 -r1.210 src/sys/netinet/tcp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.209 src/sys/netinet/tcp_usrreq.c:1.210 --- src/sys/netinet/tcp_usrreq.c:1.209 Mon Aug 24 22:21:26 2015 +++ src/sys/netinet/tcp_usrreq.c Sun Feb 14 23:47:57 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.209 2015/08/24 22:21:26 pooka Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.210 2016/02/14 23:47:57 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -99,7 +99,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.209 2015/08/24 22:21:26 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.210 2016/02/14 23:47:57 rtr Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -136,9 +136,6 @@ __KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c #include #ifdef INET6 -#ifndef INET -#include -#endif #include #include #include
CVS commit: src/sys/compat/linux/common
Module Name:src Committed By: rtr Date: Sun May 24 17:07:27 UTC 2015 Modified Files: src/sys/compat/linux/common: linux_socket.c Log Message: convert remaining linux_get_sa() users to use linux_get_sa_sb() and pass the pointer to the sockaddr in msghdr.msg_name, while removing the MSG_NAMEMBUF flag. now that the original linux_get_sa() is unused remove it and to make function names consistent again rename linux_get_sa_sb() to linux_get_sa(). To generate a diff of this commit: cvs rdiff -u -r1.124 -r1.125 src/sys/compat/linux/common/linux_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/linux/common/linux_socket.c diff -u src/sys/compat/linux/common/linux_socket.c:1.124 src/sys/compat/linux/common/linux_socket.c:1.125 --- src/sys/compat/linux/common/linux_socket.c:1.124 Sat May 2 17:18:03 2015 +++ src/sys/compat/linux/common/linux_socket.c Sun May 24 17:07:26 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_socket.c,v 1.124 2015/05/02 17:18:03 rtr Exp $ */ +/* $NetBSD: linux_socket.c,v 1.125 2015/05/24 17:07:26 rtr Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: linux_socket.c,v 1.124 2015/05/02 17:18:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: linux_socket.c,v 1.125 2015/05/24 17:07:26 rtr Exp $); #if defined(_KERNEL_OPT) #include opt_inet.h @@ -119,9 +119,7 @@ int linux_to_bsd_udp_sockopt(int); int linux_getifname(struct lwp *, register_t *, void *); int linux_getifconf(struct lwp *, register_t *, void *); int linux_getifhwaddr(struct lwp *, register_t *, u_int, void *); -static int linux_get_sa(struct lwp *, int, struct mbuf **, - const struct osockaddr *, unsigned int); -static int linux_get_sa_sb(struct lwp *, int, struct sockaddr_big *, +static int linux_get_sa(struct lwp *, int, struct sockaddr_big *, const struct osockaddr *, socklen_t); static int linux_sa_put(struct osockaddr *osa); static int linux_to_bsd_msg_flags(int); @@ -401,7 +399,7 @@ linux_sys_sendto(struct lwp *l, const st } */ struct msghdr msg; struct iovecaiov; - struct mbuf *nam; + struct sockaddr_big nam; int bflags; int error; @@ -421,8 +419,7 @@ linux_sys_sendto(struct lwp *l, const st SCARG(uap, tolen)); if (error) return (error); - msg.msg_flags |= MSG_NAMEMBUF; - msg.msg_name = nam; + msg.msg_name = nam; msg.msg_namelen = SCARG(uap, tolen); } @@ -470,7 +467,7 @@ linux_sys_sendmsg(struct lwp *l, const s struct linux_msghdr lmsg; int error; int bflags; - struct mbuf *nam; + struct sockaddr_big nam; u_int8_t *control; struct mbuf *ctl_mbuf = NULL; @@ -495,8 +492,7 @@ linux_sys_sendmsg(struct lwp *l, const s msg.msg_namelen); if (error) return (error); - msg.msg_flags |= MSG_NAMEMBUF; - msg.msg_name = nam; + msg.msg_name = nam; } /* @@ -1404,7 +1400,7 @@ linux_sys_connect(struct lwp *l, const s int error; struct sockaddr_big sb; - error = linux_get_sa_sb(l, SCARG(uap, s), sb, SCARG(uap, name), + error = linux_get_sa(l, SCARG(uap, s), sb, SCARG(uap, name), SCARG(uap, namelen)); if (error) return (error); @@ -1449,7 +1445,7 @@ linux_sys_bind(struct lwp *l, const stru int error; struct sockaddr_big sb; - error = linux_get_sa_sb(l, SCARG(uap, s), sb, SCARG(uap, name), + error = linux_get_sa(l, SCARG(uap, s), sb, SCARG(uap, name), SCARG(uap, namelen)); if (error) return (error); @@ -1495,8 +1491,12 @@ linux_sys_getpeername(struct lwp *l, con return (0); } +/* + * Copy the osockaddr structure pointed to by name to sb, adjust + * family and convert to sockaddr. + */ static int -linux_get_sa_sb(struct lwp *l, int s, struct sockaddr_big *sb, +linux_get_sa(struct lwp *l, int s, struct sockaddr_big *sb, const struct osockaddr *name, socklen_t namelen) { int error, bdom; @@ -1566,122 +1566,6 @@ linux_get_sa_sb(struct lwp *l, int s, st return 0; } -/* - * Copy the osockaddr structure pointed to by osa to mbuf, adjust - * family and convert to sockaddr. - */ -static int -linux_get_sa(struct lwp *l, int s, struct mbuf **mp, -const struct osockaddr *osa, unsigned int salen) -{ - int error, bdom; - struct sockaddr *sa; - struct osockaddr *kosa; - struct mbuf *m; - - if (salen == 1 || salen UCHAR_MAX) { - DPRINTF((bad osa=%p salen=%d\n, osa, salen)); - return EINVAL; - } - - /* We'll need the address in an mbuf later, so copy into one here */ - m = m_get(M_WAIT, MT_SONAME); - if (salen MLEN) - MEXTMALLOC(m, salen, M_WAITOK); - - m-m_len = salen; - - if (salen == 0) { - *mp = m; - return 0; - } - - kosa = mtod(m, void *); - if ((error = copyin(osa, kosa, salen))) { - DPRINTF((error %d copying osa %p len %d\n, -error, osa, salen)); - goto bad; - } - - ktrkuser(linux/sockaddr, kosa, salen); - - bdom = linux_to_bsd_domain(kosa-sa_family); - if (bdom
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sun May 24 15:43:45 UTC 2015 Modified Files: src/sys/netinet: in_pcb.c in_pcb.h tcp_input.c src/sys/netinet6: in6_pcb.c in6_pcb.h Log Message: remove transitional functions in{,6}_pcbconnect_m() that were used in converting protocol user requests to accept sockaddr instead of mbufs. remove tcp_input copy in to mbuf from sockaddr and just copy to sockaddr to make it possible for the transitional functions to go away. no version bump since these functions only existed for a short time and were commented as adapters (they appeared in 7.99.15). To generate a diff of this commit: cvs rdiff -u -r1.160 -r1.161 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.58 -r1.59 src/sys/netinet/in_pcb.h cvs rdiff -u -r1.340 -r1.341 src/sys/netinet/tcp_input.c cvs rdiff -u -r1.141 -r1.142 src/sys/netinet6/in6_pcb.c cvs rdiff -u -r1.45 -r1.46 src/sys/netinet6/in6_pcb.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/in_pcb.c diff -u src/sys/netinet/in_pcb.c:1.160 src/sys/netinet/in_pcb.c:1.161 --- src/sys/netinet/in_pcb.c:1.160 Sat May 2 17:18:03 2015 +++ src/sys/netinet/in_pcb.c Sun May 24 15:43:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: in_pcb.c,v 1.160 2015/05/02 17:18:03 rtr Exp $ */ +/* $NetBSD: in_pcb.c,v 1.161 2015/05/24 15:43:45 rtr 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.160 2015/05/02 17:18:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: in_pcb.c,v 1.161 2015/05/24 15:43:45 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -443,21 +443,6 @@ in_pcbbind(void *v, struct sockaddr_in * } /* - * adapter function that accepts nam as mbuf for in_pcbconnect() - */ -int -in_pcbconnect_m(void *v, struct mbuf *nam, struct lwp *l) -{ - struct sockaddr_in *sin = mtod(nam, struct sockaddr_in *); - - if (sizeof (*sin) != nam-m_len) { - return EINVAL; - } - - return in_pcbconnect(v, sin, l); -} - -/* * Connect from a socket to a specified address. * Both address and port must be specified in argument sin. * If don't have a local address for this socket yet, Index: src/sys/netinet/in_pcb.h diff -u src/sys/netinet/in_pcb.h:1.58 src/sys/netinet/in_pcb.h:1.59 --- src/sys/netinet/in_pcb.h:1.58 Sat May 2 17:18:03 2015 +++ src/sys/netinet/in_pcb.h Sun May 24 15:43:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: in_pcb.h,v 1.58 2015/05/02 17:18:03 rtr Exp $ */ +/* $NetBSD: in_pcb.h,v 1.59 2015/05/24 15:43:45 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -133,7 +133,6 @@ void in_losing(struct inpcb *); int in_pcballoc(struct socket *, void *); int in_pcbbind(void *, struct sockaddr_in *, struct lwp *); int in_pcbconnect(void *, struct sockaddr_in *, struct lwp *); -int in_pcbconnect_m(void *, struct mbuf *, struct lwp *); void in_pcbdetach(void *); void in_pcbdisconnect(void *); void in_pcbinit(struct inpcbtable *, int, int); Index: src/sys/netinet/tcp_input.c diff -u src/sys/netinet/tcp_input.c:1.340 src/sys/netinet/tcp_input.c:1.341 --- src/sys/netinet/tcp_input.c:1.340 Fri May 15 18:03:45 2015 +++ src/sys/netinet/tcp_input.c Sun May 24 15:43:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_input.c,v 1.340 2015/05/15 18:03:45 kefren Exp $ */ +/* $NetBSD: tcp_input.c,v 1.341 2015/05/24 15:43:45 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -148,7 +148,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: tcp_input.c,v 1.340 2015/05/15 18:03:45 kefren Exp $); +__KERNEL_RCSID(0, $NetBSD: tcp_input.c,v 1.341 2015/05/24 15:43:45 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -3918,7 +3918,6 @@ syn_cache_get(struct sockaddr *src, stru struct in6pcb *in6p = NULL; #endif struct tcpcb *tp = 0; - struct mbuf *am; int s; struct socket *oso; @@ -4069,45 +4068,36 @@ syn_cache_get(struct sockaddr *src, stru } #endif - am = m_get(M_DONTWAIT, MT_SONAME); /* XXX */ - if (am == NULL) - goto resetandabort; - MCLAIM(am, tcp_mowner); - am-m_len = src-sa_len; - bcopy(src, mtod(am, void *), src-sa_len); if (inp) { - if (in_pcbconnect_m(inp, am, lwp0)) { - (void) m_free(am); + struct sockaddr_in sin; + memcpy(sin, src, src-sa_len); + if (in_pcbconnect(inp, sin, lwp0)) { goto resetandabort; } } #ifdef INET6 else if (in6p) { + struct sockaddr_in6 sin6; + memcpy(sin6, src, src-sa_len); if (src-sa_family == AF_INET) { /* IPv4 packet to AF_INET6 socket */ - struct sockaddr_in6 *sin6; - sin6 = mtod(am, struct sockaddr_in6 *); - am-m_len = sizeof(*sin6); - memset(sin6, 0, sizeof(*sin6)); - sin6-sin6_family = AF_INET6; - sin6-sin6_len = sizeof(*sin6); - sin6-sin6_port = ((struct sockaddr_in *)src)-sin_port; - sin6-sin6_addr.s6_addr16[5] = htons(0x); + memset(sin6, 0, sizeof(sin6)); + sin6.sin6_family = AF_INET6; +
CVS commit: src/sys/compat/svr4
Module Name:src Committed By: rtr Date: Sat May 23 15:27:55 UTC 2015 Modified Files: src/sys/compat/svr4: svr4_stream.c Log Message: get rid of unnecessary use of mbuf to hold sockaddr, which was leaked... while here change use to typed pointer sockaddr * instead of void * which also lets us get rid of sasize variable used to track length (since we can now use sa_len easily) To generate a diff of this commit: cvs rdiff -u -r1.85 -r1.86 src/sys/compat/svr4/svr4_stream.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/svr4/svr4_stream.c diff -u src/sys/compat/svr4/svr4_stream.c:1.85 src/sys/compat/svr4/svr4_stream.c:1.86 --- src/sys/compat/svr4/svr4_stream.c:1.85 Sat May 2 17:18:03 2015 +++ src/sys/compat/svr4/svr4_stream.c Sat May 23 15:27:55 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_stream.c,v 1.85 2015/05/02 17:18:03 rtr Exp $ */ +/* $NetBSD: svr4_stream.c,v 1.86 2015/05/23 15:27:55 rtr Exp $ */ /*- * Copyright (c) 1994, 2008 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: svr4_stream.c,v 1.85 2015/05/02 17:18:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: svr4_stream.c,v 1.86 2015/05/23 15:27:55 rtr Exp $); #include sys/param.h #include sys/kernel.h @@ -1366,16 +1366,14 @@ int svr4_sys_putmsg(struct lwp *l, const struct svr4_sys_putmsg_args *uap, register_t *retval) { struct proc *p = l-l_proc; + struct sockaddr *skp; file_t *fp; struct svr4_strbuf dat, ctl; struct svr4_strmcmd sc; struct sockaddr_in sain; struct sockaddr_un saun; - void *skp; - int sasize; struct svr4_strm *st; int error; - struct mbuf *nam; struct msghdr msg; struct iovec aiov; @@ -1454,8 +1452,7 @@ svr4_sys_putmsg(struct lwp *l, const str goto out; } netaddr_to_sockaddr_in(sain, sc); - skp = sain; - sasize = sizeof(sain); + skp = (struct sockaddr *)sain; error = sain.sin_family != st-s_family; break; @@ -1471,13 +1468,14 @@ svr4_sys_putmsg(struct lwp *l, const str /* Maybe we've been given a device/inode pair */ dev_t *dev = SVR4_ADDROF(sc); svr4_ino_t *ino = (svr4_ino_t *) dev[1]; - skp = svr4_find_socket(p, fp, *dev, *ino); + skp = (struct sockaddr *)svr4_find_socket( + p, fp, *dev, *ino); if (skp == NULL) { -skp = saun; +skp = (struct sockaddr *)saun; /* I guess we have it by name */ -netaddr_to_sockaddr_un(skp, sc); +netaddr_to_sockaddr_un( +(struct sockaddr_un *)skp, sc); } - sasize = sizeof(saun); } break; @@ -1488,24 +1486,19 @@ svr4_sys_putmsg(struct lwp *l, const str goto out; } - nam = m_get(M_WAIT, MT_SONAME); - nam-m_len = sasize; - memcpy(mtod(nam, void *), skp, sasize); - switch (st-s_cmd = sc.cmd) { case SVR4_TI_CONNECT_REQUEST: /* connect */ KERNEL_UNLOCK_ONE(NULL); - return do_sys_connect(l, SCARG(uap, fd), - mtod(nam, struct sockaddr *)); + return do_sys_connect(l, SCARG(uap, fd), skp); case SVR4_TI_SENDTO_REQUEST: /* sendto */ KERNEL_UNLOCK_ONE(NULL); - msg.msg_name = nam; - msg.msg_namelen = sasize; + msg.msg_name = skp; + msg.msg_namelen = skp-sa_len; msg.msg_iov = aiov; msg.msg_iovlen = 1; msg.msg_control = NULL; - msg.msg_flags = MSG_NAMEMBUF; + msg.msg_flags = 0; aiov.iov_base = NETBSD32PTR(dat.buf); aiov.iov_len = dat.len; error = do_sys_sendmsg(l, SCARG(uap, fd), msg, @@ -1513,9 +1506,7 @@ svr4_sys_putmsg(struct lwp *l, const str *retval = 0; return error; - default: - m_free(nam); DPRINTF((putmsg: Unimplemented command %lx\n, sc.cmd)); error = ENOSYS; goto out;
CVS commit: src/sys/netsmb
Module Name:src Committed By: rtr Date: Fri May 22 22:05:32 UTC 2015 Modified Files: src/sys/netsmb: smb_trantcp.c Log Message: pass connect address directly to soconnect() instead of allocating an mbuf, copying the address into it and then mtod()'ing it back to a sockaddr * for soconnect. To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/sys/netsmb/smb_trantcp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netsmb/smb_trantcp.c diff -u src/sys/netsmb/smb_trantcp.c:1.48 src/sys/netsmb/smb_trantcp.c:1.49 --- src/sys/netsmb/smb_trantcp.c:1.48 Sat May 2 17:18:04 2015 +++ src/sys/netsmb/smb_trantcp.c Fri May 22 22:05:32 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: smb_trantcp.c,v 1.48 2015/05/02 17:18:04 rtr Exp $ */ +/* $NetBSD: smb_trantcp.c,v 1.49 2015/05/22 22:05:32 rtr Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: smb_trantcp.c,v 1.48 2015/05/02 17:18:04 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: smb_trantcp.c,v 1.49 2015/05/22 22:05:32 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -161,7 +161,6 @@ nb_connect_in(struct nbpcb *nbp, struct { struct socket *so; int error; - struct mbuf *m; error = socreate(AF_INET, so, SOCK_STREAM, IPPROTO_TCP, l, NULL); if (error) @@ -181,12 +180,8 @@ nb_connect_in(struct nbpcb *nbp, struct goto bad; nb_setsockopt_int(so, SOL_SOCKET, SO_KEEPALIVE, 1); nb_setsockopt_int(so, IPPROTO_TCP, TCP_NODELAY, 1); - m = m_get(M_WAIT, MT_SONAME); - *mtod(m, struct sockaddr *) = *(struct sockaddr *)to; - m-m_len = sizeof(struct sockaddr); solock(so); - error = soconnect(so, mtod(m, struct sockaddr*), l); - m_free(m); + error = soconnect(so, (struct sockaddr *)to, l); if (error) { sounlock(so); goto bad;
CVS commit: src/sys/sys
Module Name:src Committed By: rtr Date: Thu May 21 22:24:24 UTC 2015 Modified Files: src/sys/sys: param.h Log Message: bump to 7.99.18 for change to nfs_boot_sendrecv To generate a diff of this commit: cvs rdiff -u -r1.479 -r1.480 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.479 src/sys/sys/param.h:1.480 --- src/sys/sys/param.h:1.479 Mon May 18 06:42:34 2015 +++ src/sys/sys/param.h Thu May 21 22:24:24 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.479 2015/05/18 06:42:34 martin Exp $ */ +/* $NetBSD: param.h,v 1.480 2015/05/21 22:24:24 rtr Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -63,7 +63,7 @@ * 2.99.9 (299000900) */ -#define __NetBSD_Version__ 799001700 /* NetBSD 7.99.17 */ +#define __NetBSD_Version__ 799001800 /* NetBSD 7.99.18 */ #define __NetBSD_Prereq__(M,m,p) (M) * 1) + \ (m) * 100) + (p) * 100) = __NetBSD_Version__)
CVS commit: src/sys/dev/pci/ixgbe
Module Name:src Committed By: rtr Date: Thu May 21 00:45:27 UTC 2015 Modified Files: src/sys/dev/pci/ixgbe: ixv.c Log Message: remove duplicated assignment of mh-m_len To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/dev/pci/ixgbe/ixv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/pci/ixgbe/ixv.c diff -u src/sys/dev/pci/ixgbe/ixv.c:1.8 src/sys/dev/pci/ixgbe/ixv.c:1.9 --- src/sys/dev/pci/ixgbe/ixv.c:1.8 Fri Apr 24 07:00:51 2015 +++ src/sys/dev/pci/ixgbe/ixv.c Thu May 21 00:45:27 2015 @@ -31,7 +31,7 @@ **/ /*$FreeBSD: head/sys/dev/ixgbe/ixv.c 247822 2013-03-04 23:07:40Z jfv $*/ -/*$NetBSD: ixv.c,v 1.8 2015/04/24 07:00:51 msaitoh Exp $*/ +/*$NetBSD: ixv.c,v 1.9 2015/05/21 00:45:27 rtr Exp $*/ #include opt_inet.h #include opt_inet6.h @@ -2829,7 +2829,6 @@ ixv_refresh_mbufs(struct rx_ring *rxr, i if (mh == NULL) goto update; mh-m_pkthdr.len = mh-m_len = MHLEN; - mh-m_len = MHLEN; mh-m_flags |= M_PKTHDR; m_adj(mh, ETHER_ALIGN); /* Get the memory mapping */
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Thu May 21 02:04:22 UTC 2015 Modified Files: src/sys/kern: subr_tftproot.c src/sys/nfs: krpc_subr.c nfs_boot.c nfs_bootdhcp.c nfsdiskless.h Log Message: change nfs_boot_sendrecv to take sockaddr_in * instead of mbuf * fixes m_serv (single mbuf leak) leak in kern/subr_tftproot.c To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/kern/subr_tftproot.c cvs rdiff -u -r1.40 -r1.41 src/sys/nfs/krpc_subr.c cvs rdiff -u -r1.84 -r1.85 src/sys/nfs/nfs_boot.c cvs rdiff -u -r1.54 -r1.55 src/sys/nfs/nfs_bootdhcp.c cvs rdiff -u -r1.31 -r1.32 src/sys/nfs/nfsdiskless.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/subr_tftproot.c diff -u src/sys/kern/subr_tftproot.c:1.15 src/sys/kern/subr_tftproot.c:1.16 --- src/sys/kern/subr_tftproot.c:1.15 Sun May 10 18:55:22 2015 +++ src/sys/kern/subr_tftproot.c Thu May 21 02:04:22 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_tftproot.c,v 1.15 2015/05/10 18:55:22 rtr Exp $ */ +/* $NetBSD: subr_tftproot.c,v 1.16 2015/05/21 02:04:22 rtr Exp $ */ /*- * Copyright (c) 2007 Emmanuel Dreyfus, all rights reserved. @@ -39,7 +39,7 @@ #include opt_md.h #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: subr_tftproot.c,v 1.15 2015/05/10 18:55:22 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: subr_tftproot.c,v 1.16 2015/05/21 02:04:22 rtr Exp $); #include sys/param.h #include sys/types.h @@ -207,7 +207,7 @@ tftproot_getfile(struct tftproot_handle struct socket *so = NULL; struct mbuf *m_serv = NULL; struct mbuf *m_outbuf = NULL; - struct sockaddr_in *sin; + struct sockaddr_in sin; struct tftphdr *tftp; size_t packetlen, namelen; int error = -1; @@ -233,11 +233,8 @@ tftproot_getfile(struct tftproot_handle /* * Set server address and port */ - m_serv = m_get(M_WAIT, MT_SONAME); - m_serv-m_len = sizeof(*sin); - sin = mtod(m_serv, struct sockaddr_in *); - memcpy(sin, trh-trh_nd-nd_root.ndm_saddr, sizeof(*sin)); - sin-sin_port = htons(IPPORT_TFTP); + memcpy(sin, trh-trh_nd-nd_root.ndm_saddr, sizeof(sin)); + sin.sin_port = htons(IPPORT_TFTP); /* * Set send buffer, prepare the TFTP packet @@ -268,9 +265,8 @@ tftproot_getfile(struct tftproot_handle /* * Perform the file transfer */ - sin = (struct sockaddr_in *)trh-trh_nd-nd_root.ndm_saddr; printf(tftproot: download %s:%s , - inet_ntoa(sin-sin_addr), trh-trh_nd-nd_bootfile); + inet_ntoa(sin.sin_addr), trh-trh_nd-nd_bootfile); do { /* @@ -287,7 +283,7 @@ tftproot_getfile(struct tftproot_handle * We get the sender address here, which should be * the same server with a different port */ - if ((error = nfs_boot_sendrecv(so, m_serv, NULL, m_outbuf, + if ((error = nfs_boot_sendrecv(so, sin, NULL, m_outbuf, tftproot_recv, NULL, m_serv, trh, l)) != 0) { DPRINTF((%s():%d sendrecv failed %d\n, __func__, __LINE__, error)); Index: src/sys/nfs/krpc_subr.c diff -u src/sys/nfs/krpc_subr.c:1.40 src/sys/nfs/krpc_subr.c:1.41 --- src/sys/nfs/krpc_subr.c:1.40 Sat May 9 18:12:19 2015 +++ src/sys/nfs/krpc_subr.c Thu May 21 02:04:22 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: krpc_subr.c,v 1.40 2015/05/09 18:12:19 rtr Exp $ */ +/* $NetBSD: krpc_subr.c,v 1.41 2015/05/21 02:04:22 rtr Exp $ */ /* * Copyright (c) 1995 Gordon Ross, Adam Glass @@ -43,7 +43,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: krpc_subr.c,v 1.40 2015/05/09 18:12:19 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: krpc_subr.c,v 1.41 2015/05/21 02:04:22 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -219,8 +219,8 @@ krpc_call(struct sockaddr_in *sa, u_int /* from_p: output */ { struct socket *so; - struct sockaddr_in *sin; - struct mbuf *m, *nam, *mhead, *from; + struct sockaddr_in sin; + struct mbuf *m, *mhead, *from; struct rpc_call *call; struct rpc_reply *reply; int error, len; @@ -235,7 +235,7 @@ krpc_call(struct sockaddr_in *sa, u_int return (EAFNOSUPPORT); /* Free at end if not null. */ - nam = mhead = NULL; + mhead = NULL; from = NULL; /* @@ -274,10 +274,7 @@ krpc_call(struct sockaddr_in *sa, u_int /* * Setup socket address for the server. */ - nam = m_get(M_WAIT, MT_SONAME); - sin = mtod(nam, struct sockaddr_in *); - memcpy((void *)sin, (void *)sa, - (nam-m_len = sa-sin_len)); + sin = *sa; /* * Prepend RPC message header. @@ -314,7 +311,7 @@ krpc_call(struct sockaddr_in *sa, u_int mhead-m_pkthdr.len = len; mhead-m_pkthdr.rcvif = NULL; - error = nfs_boot_sendrecv(so, nam, NULL, mhead, krpccheck, m, from, + error = nfs_boot_sendrecv(so, sin, NULL, mhead, krpccheck, m, from, xid, l); if (error) goto out; @@ -383,7 +380,6 @@ krpc_call(struct sockaddr_in *sa, u_int } out: - if (nam) m_freem(nam); if (mhead) m_freem(mhead); if (from) m_freem(from); soclose(so); Index: src/sys/nfs/nfs_boot.c diff -u src/sys/nfs/nfs_boot.c:1.84
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sun May 10 18:55:22 UTC 2015 Modified Files: src/sys/kern: subr_tftproot.c Log Message: mtod mbuf to sockaddr * for so_send(). To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/kern/subr_tftproot.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/subr_tftproot.c diff -u src/sys/kern/subr_tftproot.c:1.14 src/sys/kern/subr_tftproot.c:1.15 --- src/sys/kern/subr_tftproot.c:1.14 Fri Mar 27 07:18:11 2015 +++ src/sys/kern/subr_tftproot.c Sun May 10 18:55:22 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_tftproot.c,v 1.14 2015/03/27 07:18:11 hikaru Exp $ */ +/* $NetBSD: subr_tftproot.c,v 1.15 2015/05/10 18:55:22 rtr Exp $ */ /*- * Copyright (c) 2007 Emmanuel Dreyfus, all rights reserved. @@ -39,7 +39,7 @@ #include opt_md.h #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: subr_tftproot.c,v 1.14 2015/03/27 07:18:11 hikaru Exp $); +__KERNEL_RCSID(0, $NetBSD: subr_tftproot.c,v 1.15 2015/05/10 18:55:22 rtr Exp $); #include sys/param.h #include sys/types.h @@ -320,7 +320,7 @@ tftproot_getfile(struct tftproot_handle * we do not want to free it ourselves. * Ignore errors, as we already have the whole file. */ - if ((error = (*so-so_send)(so, m_serv, NULL, + if ((error = (*so-so_send)(so, mtod(m_serv, struct sockaddr *), NULL, m_outbuf, NULL, 0, l)) != 0) DPRINTF((%s():%d tftproot: sosend returned %d\n, __func__, __LINE__, error));
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sat May 9 15:22:47 UTC 2015 Modified Files: src/sys/kern: uipc_socket.c uipc_syscalls.c src/sys/nfs: nfs_boot.c nfs_socket.c src/sys/sys: param.h socketvar.h Log Message: change sosend() to accept sockaddr * instead of mbuf * for nam. bump to 7.99.16 To generate a diff of this commit: cvs rdiff -u -r1.244 -r1.245 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.177 -r1.178 src/sys/kern/uipc_syscalls.c cvs rdiff -u -r1.83 -r1.84 src/sys/nfs/nfs_boot.c cvs rdiff -u -r1.195 -r1.196 src/sys/nfs/nfs_socket.c cvs rdiff -u -r1.477 -r1.478 src/sys/sys/param.h cvs rdiff -u -r1.138 -r1.139 src/sys/sys/socketvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.244 src/sys/kern/uipc_socket.c:1.245 --- src/sys/kern/uipc_socket.c:1.244 Sun May 3 04:18:45 2015 +++ src/sys/kern/uipc_socket.c Sat May 9 15:22:47 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.244 2015/05/03 04:18:45 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.245 2015/05/09 15:22:47 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.244 2015/05/03 04:18:45 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.245 2015/05/09 15:22:47 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -883,8 +883,8 @@ sodisconnect(struct socket *so) * Data and control buffers are freed on return. */ int -sosend(struct socket *so, struct mbuf *addr, struct uio *uio, struct mbuf *top, - struct mbuf *control, int flags, struct lwp *l) +sosend(struct socket *so, struct sockaddr *addr, struct uio *uio, + struct mbuf *top, struct mbuf *control, int flags, struct lwp *l) { struct mbuf **mp, *m; long space, len, resid, clen, mlen; @@ -1059,12 +1059,8 @@ sosend(struct socket *so, struct mbuf *a error = (*so-so_proto-pr_usrreqs-pr_sendoob)(so, top, control); } else { -struct sockaddr *sin = NULL; -if (addr) { - sin = mtod(addr, struct sockaddr *); -} error = (*so-so_proto-pr_usrreqs-pr_send)(so, -top, sin, control, l); +top, addr, control, l); } if (dontroute) so-so_options = ~SO_DONTROUTE; Index: src/sys/kern/uipc_syscalls.c diff -u src/sys/kern/uipc_syscalls.c:1.177 src/sys/kern/uipc_syscalls.c:1.178 --- src/sys/kern/uipc_syscalls.c:1.177 Sat May 2 17:18:03 2015 +++ src/sys/kern/uipc_syscalls.c Sat May 9 15:22:47 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_syscalls.c,v 1.177 2015/05/02 17:18:03 rtr Exp $ */ +/* $NetBSD: uipc_syscalls.c,v 1.178 2015/05/09 15:22:47 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_syscalls.c,v 1.177 2015/05/02 17:18:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_syscalls.c,v 1.178 2015/05/09 15:22:47 rtr Exp $); #include opt_pipe.h @@ -532,6 +532,7 @@ do_sys_sendmsg_so(struct lwp *l, int s, { struct iovec aiov[UIO_SMALLIOV], *iov = aiov, *tiov, *ktriov = NULL; + struct sockaddr *sa = NULL; struct mbuf *to, *control; struct uio auio; size_t len, iovsz; @@ -611,8 +612,12 @@ do_sys_sendmsg_so(struct lwp *l, int s, if (mp-msg_control) MCLAIM(control, so-so_mowner); + if (to) { + sa = mtod(to, struct sockaddr *); + } + len = auio.uio_resid; - error = (*so-so_send)(so, to, auio, NULL, control, flags, l); + error = (*so-so_send)(so, sa, auio, NULL, control, flags, l); /* Protocol is responsible for freeing 'control' */ control = NULL; Index: src/sys/nfs/nfs_boot.c diff -u src/sys/nfs/nfs_boot.c:1.83 src/sys/nfs/nfs_boot.c:1.84 --- src/sys/nfs/nfs_boot.c:1.83 Fri Apr 3 20:01:07 2015 +++ src/sys/nfs/nfs_boot.c Sat May 9 15:22:47 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_boot.c,v 1.83 2015/04/03 20:01:07 rtr Exp $ */ +/* $NetBSD: nfs_boot.c,v 1.84 2015/05/09 15:22:47 rtr Exp $ */ /*- * Copyright (c) 1995, 1997 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: nfs_boot.c,v 1.83 2015/04/03 20:01:07 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: nfs_boot.c,v 1.84 2015/05/09 15:22:47 rtr Exp $); #ifdef _KERNEL_OPT #include opt_nfs.h @@ -468,7 +468,8 @@ send_again: error = ENOBUFS; goto out; } - error = (*so-so_send)(so, nam, NULL, m, NULL, 0, lwp); + error = (*so-so_send)(so, mtod(nam, struct sockaddr *), NULL, + m, NULL, 0, lwp); if (error) { printf(nfs_boot: sosend: %d\n, error); goto out; Index: src/sys/nfs/nfs_socket.c diff -u src/sys/nfs/nfs_socket.c:1.195 src/sys/nfs/nfs_socket.c:1.196 --- src/sys/nfs/nfs_socket.c:1.195 Sat May 2 17:18:04 2015 +++ src/sys/nfs/nfs_socket.c Sat May 9 15:22:47 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_socket.c,v 1.195 2015/05/02 17:18:04 rtr Exp $
CVS commit: src/sys/nfs
Module Name:src Committed By: rtr Date: Sat May 9 18:12:19 UTC 2015 Modified Files: src/sys/nfs: krpc_subr.c nfs_bootdhcp.c Log Message: when calling nfs_boot_sendrecv pass NULL for pointers instead of 0 To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/nfs/krpc_subr.c cvs rdiff -u -r1.53 -r1.54 src/sys/nfs/nfs_bootdhcp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/nfs/krpc_subr.c diff -u src/sys/nfs/krpc_subr.c:1.39 src/sys/nfs/krpc_subr.c:1.40 --- src/sys/nfs/krpc_subr.c:1.39 Fri Mar 27 07:18:11 2015 +++ src/sys/nfs/krpc_subr.c Sat May 9 18:12:19 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: krpc_subr.c,v 1.39 2015/03/27 07:18:11 hikaru Exp $ */ +/* $NetBSD: krpc_subr.c,v 1.40 2015/05/09 18:12:19 rtr Exp $ */ /* * Copyright (c) 1995 Gordon Ross, Adam Glass @@ -43,7 +43,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: krpc_subr.c,v 1.39 2015/03/27 07:18:11 hikaru Exp $); +__KERNEL_RCSID(0, $NetBSD: krpc_subr.c,v 1.40 2015/05/09 18:12:19 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -314,7 +314,7 @@ krpc_call(struct sockaddr_in *sa, u_int mhead-m_pkthdr.len = len; mhead-m_pkthdr.rcvif = NULL; - error = nfs_boot_sendrecv(so, nam, 0, mhead, krpccheck, m, from, + error = nfs_boot_sendrecv(so, nam, NULL, mhead, krpccheck, m, from, xid, l); if (error) goto out; Index: src/sys/nfs/nfs_bootdhcp.c diff -u src/sys/nfs/nfs_bootdhcp.c:1.53 src/sys/nfs/nfs_bootdhcp.c:1.54 --- src/sys/nfs/nfs_bootdhcp.c:1.53 Fri Mar 27 07:18:11 2015 +++ src/sys/nfs/nfs_bootdhcp.c Sat May 9 18:12:19 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_bootdhcp.c,v 1.53 2015/03/27 07:18:11 hikaru Exp $ */ +/* $NetBSD: nfs_bootdhcp.c,v 1.54 2015/05/09 18:12:19 rtr Exp $ */ /*- * Copyright (c) 1995, 1997 The NetBSD Foundation, Inc. @@ -44,7 +44,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: nfs_bootdhcp.c,v 1.53 2015/03/27 07:18:11 hikaru Exp $); +__KERNEL_RCSID(0, $NetBSD: nfs_bootdhcp.c,v 1.54 2015/05/09 18:12:19 rtr Exp $); #ifdef _KERNEL_OPT #include opt_nfs_boot.h @@ -636,7 +636,7 @@ bootpc_call(struct nfs_diskless *nd, str #endif error = nfs_boot_sendrecv(so, nam, bootpset, m, - bootpcheck, 0, 0, bpc, lwp); + bootpcheck, NULL, NULL, bpc, lwp); if (error) goto out; @@ -663,7 +663,7 @@ bootpc_call(struct nfs_diskless *nd, str bpc.expected_dhcpmsgtype = DHCPACK; error = nfs_boot_sendrecv(so, nam, bootpset, m, - bootpcheck, 0, 0, bpc, lwp); + bootpcheck, NULL, NULL, bpc, lwp); if (error) goto out; }
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sat May 2 17:18:04 UTC 2015 Modified Files: src/sys/compat/linux/common: linux_socket.c src/sys/compat/svr4: svr4_stream.c src/sys/kern: uipc_socket.c uipc_syscalls.c uipc_usrreq.c src/sys/net: if_gre.c link_proto.c raw_cb.h raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: dccp_usrreq.c dccp_var.h in_pcb.c in_pcb.h raw_ip.c tcp_input.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: dccp6_usrreq.c dccp6_var.h in6_pcb.c in6_pcb.h raw_ip6.c udp6_output.c udp6_usrreq.c udp6_var.h src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/netsmb: smb_trantcp.c src/sys/nfs: nfs_socket.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: param.h protosw.h socketvar.h un.h Log Message: make connect syscall use sockaddr_big and modify pr_{send,connect} nam parameter type from buf * to sockaddr *. final commit for parameter type changes to protocol user requests * bump kernel version to 7.99.15 for parameter type changes to pr_{send,connect} To generate a diff of this commit: cvs rdiff -u -r1.123 -r1.124 src/sys/compat/linux/common/linux_socket.c cvs rdiff -u -r1.84 -r1.85 src/sys/compat/svr4/svr4_stream.c cvs rdiff -u -r1.239 -r1.240 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.176 -r1.177 src/sys/kern/uipc_syscalls.c cvs rdiff -u -r1.178 -r1.179 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.164 -r1.165 src/sys/net/if_gre.c cvs rdiff -u -r1.27 -r1.28 src/sys/net/link_proto.c cvs rdiff -u -r1.24 -r1.25 src/sys/net/raw_cb.h cvs rdiff -u -r1.53 -r1.54 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.170 -r1.171 src/sys/net/rtsock.c cvs rdiff -u -r1.67 -r1.68 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.43 -r1.44 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.34 -r1.35 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.36 -r1.37 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.5 -r1.6 src/sys/netinet/dccp_usrreq.c cvs rdiff -u -r1.1 -r1.2 src/sys/netinet/dccp_var.h cvs rdiff -u -r1.159 -r1.160 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.57 -r1.58 src/sys/netinet/in_pcb.h cvs rdiff -u -r1.151 -r1.152 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.338 -r1.339 src/sys/netinet/tcp_input.c cvs rdiff -u -r1.207 -r1.208 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.220 -r1.221 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.5 -r1.6 src/sys/netinet6/dccp6_usrreq.c cvs rdiff -u -r1.3 -r1.4 src/sys/netinet6/dccp6_var.h cvs rdiff -u -r1.139 -r1.140 src/sys/netinet6/in6_pcb.c \ src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.44 -r1.45 src/sys/netinet6/in6_pcb.h cvs rdiff -u -r1.48 -r1.49 src/sys/netinet6/udp6_output.c cvs rdiff -u -r1.119 -r1.120 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.27 -r1.28 src/sys/netinet6/udp6_var.h cvs rdiff -u -r1.47 -r1.48 src/sys/netipsec/keysock.c cvs rdiff -u -r1.27 -r1.28 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.48 -r1.49 src/sys/netnatm/natm.c cvs rdiff -u -r1.47 -r1.48 src/sys/netsmb/smb_trantcp.c cvs rdiff -u -r1.194 -r1.195 src/sys/nfs/nfs_socket.c cvs rdiff -u -r1.61 -r1.62 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.476 -r1.477 src/sys/sys/param.h cvs rdiff -u -r1.63 -r1.64 src/sys/sys/protosw.h cvs rdiff -u -r1.137 -r1.138 src/sys/sys/socketvar.h cvs rdiff -u -r1.55 -r1.56 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/linux/common/linux_socket.c diff -u src/sys/compat/linux/common/linux_socket.c:1.123 src/sys/compat/linux/common/linux_socket.c:1.124 --- src/sys/compat/linux/common/linux_socket.c:1.123 Fri Apr 3 20:01:07 2015 +++ src/sys/compat/linux/common/linux_socket.c Sat May 2 17:18:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_socket.c,v 1.123 2015/04/03 20:01:07 rtr Exp $ */ +/* $NetBSD: linux_socket.c,v 1.124 2015/05/02 17:18:03 rtr Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: linux_socket.c,v 1.123 2015/04/03 20:01:07 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: linux_socket.c,v 1.124 2015/05/02 17:18:03 rtr Exp $); #if defined(_KERNEL_OPT) #include opt_inet.h @@ -1402,14 +1402,14 @@ linux_sys_connect(struct lwp *l, const s syscallarg(int) namelen; } */ int error; - struct mbuf *nam; + struct sockaddr_big sb; - error = linux_get_sa(l, SCARG(uap, s), nam, SCARG(uap, name), + error = linux_get_sa_sb(l, SCARG(uap, s), sb, SCARG(uap, name), SCARG(uap, namelen)); if (error) return (error); - error = do_sys_connect(l, SCARG(uap, s), nam); + error = do_sys_connect(l, SCARG(uap, s), (struct sockaddr *)sb); if (error == EISCONN) { struct socket *so; Index:
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sat May 2 21:15:33 UTC 2015 Modified Files: src/sys/kern: uipc_socket.c Log Message: remove unnecessary check that nam != NULL before deref in soconnect() (added in previous commit). sockargs copyin() makes sure we don't get NULL here To generate a diff of this commit: cvs rdiff -u -r1.241 -r1.242 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.241 src/sys/kern/uipc_socket.c:1.242 --- src/sys/kern/uipc_socket.c:1.241 Sat May 2 20:10:26 2015 +++ src/sys/kern/uipc_socket.c Sat May 2 21:15:33 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.241 2015/05/02 20:10:26 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.242 2015/05/02 21:15:33 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.241 2015/05/02 20:10:26 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.242 2015/05/02 21:15:33 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -830,8 +830,7 @@ soconnect(struct socket *so, struct sock (error = sodisconnect(so { error = EISCONN; } else { - if (NULL != nam - nam-sa_family != so-so_proto-pr_domain-dom_family) { + if (nam-sa_family != so-so_proto-pr_domain-dom_family) { return EAFNOSUPPORT; } error = (*so-so_proto-pr_usrreqs-pr_connect)(so, nam, l);
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sat May 2 20:10:26 UTC 2015 Modified Files: src/sys/kern: uipc_socket.c Log Message: make soconnect() fail with EAFNOSUPPORT if the domain of the socket does not match family received in the sockaddr. * connect() now fails as documented in connect(2). * atf test t_connect:connect_foreign_family now passes. To generate a diff of this commit: cvs rdiff -u -r1.240 -r1.241 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.240 src/sys/kern/uipc_socket.c:1.241 --- src/sys/kern/uipc_socket.c:1.240 Sat May 2 17:18:03 2015 +++ src/sys/kern/uipc_socket.c Sat May 2 20:10:26 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.240 2015/05/02 17:18:03 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.241 2015/05/02 20:10:26 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.240 2015/05/02 17:18:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.241 2015/05/02 20:10:26 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -827,10 +827,15 @@ soconnect(struct socket *so, struct sock */ if (so-so_state (SS_ISCONNECTED|SS_ISCONNECTING) ((so-so_proto-pr_flags PR_CONNREQUIRED) || - (error = sodisconnect(so + (error = sodisconnect(so { error = EISCONN; - else + } else { + if (NULL != nam + nam-sa_family != so-so_proto-pr_domain-dom_family) { + return EAFNOSUPPORT; + } error = (*so-so_proto-pr_usrreqs-pr_connect)(so, nam, l); + } return error; }
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sat May 2 23:46:04 UTC 2015 Modified Files: src/sys/kern: uipc_socket.c Log Message: compare mbuf * pointer to NULL instead of 0 To generate a diff of this commit: cvs rdiff -u -r1.242 -r1.243 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.242 src/sys/kern/uipc_socket.c:1.243 --- src/sys/kern/uipc_socket.c:1.242 Sat May 2 21:15:33 2015 +++ src/sys/kern/uipc_socket.c Sat May 2 23:46:04 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.242 2015/05/02 21:15:33 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.243 2015/05/02 23:46:04 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.242 2015/05/02 21:15:33 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.243 2015/05/02 23:46:04 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -941,7 +941,7 @@ sosend(struct socket *so, struct mbuf *a error = ENOTCONN; goto release; } - } else if (addr == 0) { + } else if (NULL == addr) { error = EDESTADDRREQ; goto release; }
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sun May 3 04:18:45 UTC 2015 Modified Files: src/sys/kern: uipc_socket.c Log Message: flip (NULL == addr) to (addr == NULL) use in conditional from previous commit. To generate a diff of this commit: cvs rdiff -u -r1.243 -r1.244 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.243 src/sys/kern/uipc_socket.c:1.244 --- src/sys/kern/uipc_socket.c:1.243 Sat May 2 23:46:04 2015 +++ src/sys/kern/uipc_socket.c Sun May 3 04:18:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.243 2015/05/02 23:46:04 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.244 2015/05/03 04:18:45 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.243 2015/05/02 23:46:04 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.244 2015/05/03 04:18:45 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -941,7 +941,7 @@ sosend(struct socket *so, struct mbuf *a error = ENOTCONN; goto release; } - } else if (NULL == addr) { + } else if (addr == NULL) { error = EDESTADDRREQ; goto release; }
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sun Apr 26 16:45:51 UTC 2015 Modified Files: src/sys/netinet: in_pcb.c src/sys/netinet6: in6_pcb.c Log Message: return EINVAL if sin{,6}_len != sizeof(sockaddr_in{,6}) respectively in in{,6}_pcbconnect(). checking just m-m_len isn't enough because there are various places that assume sa_len has been properly populated. To generate a diff of this commit: cvs rdiff -u -r1.157 -r1.158 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.136 -r1.137 src/sys/netinet6/in6_pcb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/in_pcb.c diff -u src/sys/netinet/in_pcb.c:1.157 src/sys/netinet/in_pcb.c:1.158 --- src/sys/netinet/in_pcb.c:1.157 Fri Apr 24 22:32:37 2015 +++ src/sys/netinet/in_pcb.c Sun Apr 26 16:45:51 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: in_pcb.c,v 1.157 2015/04/24 22:32:37 rtr Exp $ */ +/* $NetBSD: in_pcb.c,v 1.158 2015/04/26 16:45:51 rtr 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.157 2015/04/24 22:32:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: in_pcb.c,v 1.158 2015/04/26 16:45:51 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -461,6 +461,8 @@ in_pcbconnect(void *v, struct mbuf *nam, if (nam-m_len != sizeof (*sin)) return (EINVAL); + if (sin-sin_len != sizeof (*sin)) + return (EINVAL); if (sin-sin_family != AF_INET) return (EAFNOSUPPORT); if (sin-sin_port == 0) Index: src/sys/netinet6/in6_pcb.c diff -u src/sys/netinet6/in6_pcb.c:1.136 src/sys/netinet6/in6_pcb.c:1.137 --- src/sys/netinet6/in6_pcb.c:1.136 Fri Apr 24 22:32:37 2015 +++ src/sys/netinet6/in6_pcb.c Sun Apr 26 16:45:50 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: in6_pcb.c,v 1.136 2015/04/24 22:32:37 rtr Exp $ */ +/* $NetBSD: in6_pcb.c,v 1.137 2015/04/26 16:45:50 rtr 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.136 2015/04/24 22:32:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: in6_pcb.c,v 1.137 2015/04/26 16:45:50 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -446,6 +446,8 @@ in6_pcbconnect(void *v, struct mbuf *nam if (nam-m_len != sizeof(*sin6)) return (EINVAL); + if (sin6-sin6_len != sizeof(*sin6)) + return (EINVAL); if (sin6-sin6_family != AF_INET6) return (EAFNOSUPPORT); if (sin6-sin6_port == 0)
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sun Apr 26 21:40:49 UTC 2015 Modified Files: src/sys/kern: uipc_usrreq.c src/sys/net: link_proto.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: dccp_usrreq.c raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: dccp6_usrreq.c raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: param.h protosw.h Log Message: remove pr_generic from struct pr_usrreqs and all implementations of pr_generic in protocols. bump to 7.99.13 approved by rmind@ To generate a diff of this commit: cvs rdiff -u -r1.177 -r1.178 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.26 -r1.27 src/sys/net/link_proto.c cvs rdiff -u -r1.169 -r1.170 src/sys/net/rtsock.c cvs rdiff -u -r1.66 -r1.67 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.42 -r1.43 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.33 -r1.34 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.35 -r1.36 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.3 -r1.4 src/sys/netinet/dccp_usrreq.c cvs rdiff -u -r1.149 -r1.150 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.206 -r1.207 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.219 -r1.220 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.4 -r1.5 src/sys/netinet6/dccp6_usrreq.c cvs rdiff -u -r1.138 -r1.139 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.118 -r1.119 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.46 -r1.47 src/sys/netipsec/keysock.c cvs rdiff -u -r1.26 -r1.27 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.47 -r1.48 src/sys/netnatm/natm.c cvs rdiff -u -r1.60 -r1.61 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.474 -r1.475 src/sys/sys/param.h cvs rdiff -u -r1.62 -r1.63 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.177 src/sys/kern/uipc_usrreq.c:1.178 --- src/sys/kern/uipc_usrreq.c:1.177 Fri Apr 24 22:32:37 2015 +++ src/sys/kern/uipc_usrreq.c Sun Apr 26 21:40:48 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.177 2015/04/24 22:32:37 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.178 2015/04/26 21:40:48 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.177 2015/04/24 22:32:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.178 2015/04/26 21:40:48 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -547,41 +547,6 @@ unp_sendoob(struct socket *so, struct mb return EOPNOTSUPP; } -static int -unp_usrreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam, -struct mbuf *control, struct lwp *l) -{ - - KASSERT(req != PRU_ATTACH); - KASSERT(req != PRU_DETACH); - KASSERT(req != PRU_ACCEPT); - KASSERT(req != PRU_BIND); - KASSERT(req != PRU_LISTEN); - KASSERT(req != PRU_CONNECT); - KASSERT(req != PRU_CONNECT2); - KASSERT(req != PRU_DISCONNECT); - KASSERT(req != PRU_SHUTDOWN); - KASSERT(req != PRU_ABORT); - KASSERT(req != PRU_CONTROL); - KASSERT(req != PRU_SENSE); - KASSERT(req != PRU_PEERADDR); - KASSERT(req != PRU_SOCKADDR); - KASSERT(req != PRU_RCVD); - KASSERT(req != PRU_RCVOOB); - KASSERT(req != PRU_SEND); - KASSERT(req != PRU_SENDOOB); - KASSERT(req != PRU_PURGEIF); - - KASSERT(solocked(so)); - - if (sotounpcb(so) == NULL) - return EINVAL; - - panic(piusrreq); - - return 0; -} - /* * Unix domain socket option processing. */ @@ -1997,5 +1962,4 @@ const struct pr_usrreqs unp_usrreqs = { .pr_recvoob = unp_recvoob, .pr_send = unp_send, .pr_sendoob = unp_sendoob, - .pr_generic = unp_usrreq, }; Index: src/sys/net/link_proto.c diff -u src/sys/net/link_proto.c:1.26 src/sys/net/link_proto.c:1.27 --- src/sys/net/link_proto.c:1.26 Fri Apr 24 22:32:37 2015 +++ src/sys/net/link_proto.c Sun Apr 26 21:40:48 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: link_proto.c,v 1.26 2015/04/24 22:32:37 rtr Exp $ */ +/* $NetBSD: link_proto.c,v 1.27 2015/04/26 21:40:48 rtr Exp $ */ /*- * Copyright (c) 1982, 1986, 1993 @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.26 2015/04/24 22:32:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.27 2015/04/26 21:40:48 rtr Exp $); #include sys/param.h #include sys/socket.h @@ -68,8 +68,6 @@ static int link_send(struct socket *, st struct mbuf *, struct lwp *); static int link_sendoob(struct socket *, struct mbuf *, struct mbuf *); static int link_purgeif(struct socket *, struct ifnet *); -static int link_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, -struct mbuf *, struct lwp *); static void link_init(void); /* @@ -98,7 +96,6 @@ static
CVS commit: src/sys/netinet6
Module Name:src Committed By: rtr Date: Sat Apr 25 14:56:05 UTC 2015 Modified Files: src/sys/netinet6: dccp6_usrreq.c dccp6_var.h Log Message: fix missed parameter type change in dccp6_accept() to sockaddr * from mbuf * To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/netinet6/dccp6_usrreq.c cvs rdiff -u -r1.2 -r1.3 src/sys/netinet6/dccp6_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet6/dccp6_usrreq.c diff -u src/sys/netinet6/dccp6_usrreq.c:1.3 src/sys/netinet6/dccp6_usrreq.c:1.4 --- src/sys/netinet6/dccp6_usrreq.c:1.3 Fri Apr 24 22:32:37 2015 +++ src/sys/netinet6/dccp6_usrreq.c Sat Apr 25 14:56:05 2015 @@ -1,5 +1,5 @@ /* $KAME: dccp6_usrreq.c,v 1.13 2005/07/27 08:42:56 nishida Exp $ */ -/* $NetBSD: dccp6_usrreq.c,v 1.3 2015/04/24 22:32:37 rtr Exp $ */ +/* $NetBSD: dccp6_usrreq.c,v 1.4 2015/04/25 14:56:05 rtr Exp $ */ /* * Copyright (C) 2003 WIDE Project. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: dccp6_usrreq.c,v 1.3 2015/04/24 22:32:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: dccp6_usrreq.c,v 1.4 2015/04/25 14:56:05 rtr Exp $); #include opt_inet.h #include opt_dccp.h @@ -268,7 +268,7 @@ dccp6_accept(struct socket *so, struct s int error = 0; DCCP_DEBUG((LOG_INFO, Entering dccp6_accept!\n)); - if (m == NULL) { + if (nam == NULL) { return EINVAL; } if (so-so_state SS_ISDISCONNECTED) { Index: src/sys/netinet6/dccp6_var.h diff -u src/sys/netinet6/dccp6_var.h:1.2 src/sys/netinet6/dccp6_var.h:1.3 --- src/sys/netinet6/dccp6_var.h:1.2 Sat Apr 4 04:33:39 2015 +++ src/sys/netinet6/dccp6_var.h Sat Apr 25 14:56:05 2015 @@ -1,5 +1,5 @@ /* $KAME: dccp6_var.h,v 1.3 2003/11/18 04:55:43 ono Exp $ */ -/* $NetBSD: dccp6_var.h,v 1.2 2015/04/04 04:33:39 rtr Exp $ */ +/* $NetBSD: dccp6_var.h,v 1.3 2015/04/25 14:56:05 rtr Exp $ */ /* * Copyright (c) 2003 Joacim Häggmark @@ -46,7 +46,7 @@ int dccp6_usrreq(struct socket *, int, s int dccp6_bind(struct socket *, struct sockaddr *, struct lwp *); int dccp6_listen(struct socket *, struct lwp *); int dccp6_connect(struct socket *, struct mbuf *, struct lwp *); -int dccp6_accept(struct socket *, struct mbuf *); +int dccp6_accept(struct socket *, struct sockaddr *); #endif #endif
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Sat Apr 25 15:19:54 UTC 2015 Modified Files: src/sys/netinet: raw_ip.c Log Message: make rip_connect_pcb take sockaddr_in * instead of mbuf * make rip_connect_pcb static since it appears to be used only in raw_ip.c moves m_len check to callers which is a small duplication of code that will go away when the callers are converted to receive sockaddr *. To generate a diff of this commit: cvs rdiff -u -r1.148 -r1.149 src/sys/netinet/raw_ip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/raw_ip.c diff -u src/sys/netinet/raw_ip.c:1.148 src/sys/netinet/raw_ip.c:1.149 --- src/sys/netinet/raw_ip.c:1.148 Fri Apr 24 22:32:37 2015 +++ src/sys/netinet/raw_ip.c Sat Apr 25 15:19:54 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.148 2015/04/24 22:32:37 rtr Exp $ */ +/* $NetBSD: raw_ip.c,v 1.149 2015/04/25 15:19:54 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -65,7 +65,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.148 2015/04/24 22:32:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.149 2015/04/25 15:19:54 rtr Exp $); #include opt_inet.h #include opt_compat_netbsd.h @@ -111,7 +111,7 @@ struct inpcbtable rawcbtable; int rip_pcbnotify(struct inpcbtable *, struct in_addr, struct in_addr, int, int, void (*)(struct inpcb *, int)); -int rip_connect_pcb(struct inpcb *, struct mbuf *); +static int rip_connect_pcb(struct inpcb *, struct sockaddr_in *); static void rip_disconnect1(struct inpcb *); static void sysctl_net_inet_raw_setup(struct sysctllog **); @@ -480,12 +480,9 @@ rip_ctloutput(int op, struct socket *so, } int -rip_connect_pcb(struct inpcb *inp, struct mbuf *nam) +rip_connect_pcb(struct inpcb *inp, struct sockaddr_in *addr) { - struct sockaddr_in *addr = mtod(nam, struct sockaddr_in *); - if (nam-m_len != sizeof(*addr)) - return (EINVAL); if (IFNET_EMPTY()) return (EADDRNOTAVAIL); if (addr-sin_family != AF_INET) @@ -612,7 +609,9 @@ rip_connect(struct socket *so, struct mb KASSERT(nam != NULL); s = splsoftnet(); - error = rip_connect_pcb(inp, nam); + if (nam-m_len != sizeof(struct sockaddr_in)) + return EINVAL; + error = rip_connect_pcb(inp, mtod(nam, struct sockaddr_in *)); if (! error) soisconnected(so); splx(s); @@ -763,7 +762,9 @@ rip_send(struct socket *so, struct mbuf error = EISCONN; goto die; } - error = rip_connect_pcb(inp, nam); + if (nam-m_len != sizeof(struct sockaddr_in)) + return EINVAL; + error = rip_connect_pcb(inp, mtod(nam, struct sockaddr_in *)); if (error) { die: m_freem(m);
CVS commit: src/sys/netatalk
Module Name:src Committed By: rtr Date: Fri Apr 24 23:36:49 UTC 2015 Modified Files: src/sys/netatalk: ddp_usrreq.c Log Message: make at_pcbconnect() take sockaddr_at * instead of mbuf *. move m_len check into callers which results in small duplication of code that will go away when the callers are converted to receive sockaddr * instead of mbuf *. To generate a diff of this commit: cvs rdiff -u -r1.65 -r1.66 src/sys/netatalk/ddp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.65 src/sys/netatalk/ddp_usrreq.c:1.66 --- src/sys/netatalk/ddp_usrreq.c:1.65 Fri Apr 24 22:32:37 2015 +++ src/sys/netatalk/ddp_usrreq.c Fri Apr 24 23:36:48 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.65 2015/04/24 22:32:37 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.66 2015/04/24 23:36:48 rtr Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.65 2015/04/24 22:32:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.66 2015/04/24 23:36:48 rtr Exp $); #include opt_mbuftrace.h @@ -59,7 +59,7 @@ __KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c static void at_pcbdisconnect(struct ddpcb *); static void at_sockaddr(struct ddpcb *, struct sockaddr_at *); static int at_pcbsetaddr(struct ddpcb *, struct sockaddr_at *); -static int at_pcbconnect(struct ddpcb *, struct mbuf *); +static int at_pcbconnect(struct ddpcb *, struct sockaddr_at *); static void ddp_detach(struct socket *); struct ifqueue atintrq1, atintrq2; @@ -231,18 +231,15 @@ at_pcbsetaddr(struct ddpcb *ddp, struct } static int -at_pcbconnect(struct ddpcb *ddp, struct mbuf *addr) +at_pcbconnect(struct ddpcb *ddp, struct sockaddr_at *sat) { struct rtentry *rt; const struct sockaddr_at *cdst; - struct sockaddr_at *sat = mtod(addr, struct sockaddr_at *); struct route *ro; struct at_ifaddr *aa; struct ifnet *ifp; u_short hintnet = 0, net; - if (addr-m_len != sizeof(*sat)) - return EINVAL; if (sat-sat_family != AF_APPLETALK) { return EAFNOSUPPORT; } @@ -435,7 +432,9 @@ ddp_connect(struct socket *so, struct mb if (ddp-ddp_fsat.sat_port != ATADDR_ANYPORT) return EISCONN; - error = at_pcbconnect(ddp, nam); + if (nam-m_len != sizeof(struct sockaddr_at)) + return EINVAL; + error = at_pcbconnect(ddp, mtod(nam, struct sockaddr_at *)); if (error == 0) soisconnected(so); @@ -550,7 +549,9 @@ ddp_send(struct socket *so, struct mbuf if (ddp-ddp_fsat.sat_port != ATADDR_ANYPORT) return EISCONN; s = splnet(); - error = at_pcbconnect(ddp, nam); + if (nam-m_len != sizeof(struct sockaddr_at)) + return EINVAL; + error = at_pcbconnect(ddp, mtod(nam, struct sockaddr_at *)); if (error) { splx(s); return error;
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Fri Apr 24 22:32:38 UTC 2015 Modified Files: src/sys/compat/svr4: svr4_stream.c src/sys/kern: uipc_socket.c uipc_syscalls.c uipc_usrreq.c src/sys/net: if_gre.c link_proto.c raw_cb.h raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: dccp_usrreq.c in_pcb.c in_pcb.h raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: dccp6_usrreq.c in6_pcb.c in6_pcb.h raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: param.h protosw.h socketvar.h Log Message: make accept, getsockname and getpeername syscalls use sockaddr_big and modify pr_{accept,sockname,peername} nam parameter type from mbuf * to sockaddr *. * retained use of mbuftypes[MT_SONAME] for now. * bump to netbsd version 7.99.12 for parameter type change. patch posted to tech-net@ 2015/04/19 To generate a diff of this commit: cvs rdiff -u -r1.83 -r1.84 src/sys/compat/svr4/svr4_stream.c cvs rdiff -u -r1.238 -r1.239 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.175 -r1.176 src/sys/kern/uipc_syscalls.c cvs rdiff -u -r1.176 -r1.177 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.163 -r1.164 src/sys/net/if_gre.c cvs rdiff -u -r1.25 -r1.26 src/sys/net/link_proto.c cvs rdiff -u -r1.23 -r1.24 src/sys/net/raw_cb.h cvs rdiff -u -r1.52 -r1.53 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.168 -r1.169 src/sys/net/rtsock.c cvs rdiff -u -r1.64 -r1.65 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.41 -r1.42 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.32 -r1.33 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.34 -r1.35 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.2 -r1.3 src/sys/netinet/dccp_usrreq.c cvs rdiff -u -r1.156 -r1.157 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.56 -r1.57 src/sys/netinet/in_pcb.h cvs rdiff -u -r1.147 -r1.148 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.205 -r1.206 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.218 -r1.219 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.2 -r1.3 src/sys/netinet6/dccp6_usrreq.c cvs rdiff -u -r1.135 -r1.136 src/sys/netinet6/in6_pcb.c cvs rdiff -u -r1.42 -r1.43 src/sys/netinet6/in6_pcb.h cvs rdiff -u -r1.137 -r1.138 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.117 -r1.118 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.45 -r1.46 src/sys/netipsec/keysock.c cvs rdiff -u -r1.25 -r1.26 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.46 -r1.47 src/sys/netnatm/natm.c cvs rdiff -u -r1.59 -r1.60 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.473 -r1.474 src/sys/sys/param.h cvs rdiff -u -r1.61 -r1.62 src/sys/sys/protosw.h cvs rdiff -u -r1.136 -r1.137 src/sys/sys/socketvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/svr4/svr4_stream.c diff -u src/sys/compat/svr4/svr4_stream.c:1.83 src/sys/compat/svr4/svr4_stream.c:1.84 --- src/sys/compat/svr4/svr4_stream.c:1.83 Sun Apr 19 19:17:37 2015 +++ src/sys/compat/svr4/svr4_stream.c Fri Apr 24 22:32:37 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_stream.c,v 1.83 2015/04/19 19:17:37 rtr Exp $ */ +/* $NetBSD: svr4_stream.c,v 1.84 2015/04/24 22:32:37 rtr Exp $ */ /*- * Copyright (c) 1994, 2008 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: svr4_stream.c,v 1.83 2015/04/19 19:17:37 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: svr4_stream.c,v 1.84 2015/04/24 22:32:37 rtr Exp $); #include sys/param.h #include sys/kernel.h @@ -872,11 +872,12 @@ svr4_stream_ti_ioctl(file_t *fp, struct struct svr4_strm *st = svr4_stream_get(fp); int error; struct svr4_strmcmd sc; - struct mbuf *name; + struct sockaddr_big sbig; if (st == NULL) return EINVAL; + sbig.sb_len = UCHAR_MAX; sc.offs = 0x10; if ((error = copyin(sub, skb, sizeof(skb))) != 0) { @@ -887,14 +888,14 @@ svr4_stream_ti_ioctl(file_t *fp, struct switch (cmd) { case SVR4_TI_GETMYNAME: DPRINTF((TI_GETMYNAME\n)); - error = do_sys_getsockname(fd, name); + error = do_sys_getsockname(fd, (struct sockaddr *)sbig); if (error != 0) return error; break; case SVR4_TI_GETPEERNAME: DPRINTF((TI_GETPEERNAME\n)); - error = do_sys_getpeername(fd, name); + error = do_sys_getpeername(fd, (struct sockaddr *)sbig); if (error != 0) return error; break; @@ -913,12 +914,12 @@ svr4_stream_ti_ioctl(file_t *fp, struct switch (st-s_family) { case AF_INET: - sockaddr_to_netaddr_in(sc, mtod(name, void *)); + sockaddr_to_netaddr_in(sc, (struct sockaddr_in *)sbig); skb.len = sizeof (struct sockaddr_in); break; case AF_LOCAL: - sockaddr_to_netaddr_un(sc, mtod(name, void *)); + sockaddr_to_netaddr_un(sc, (struct sockaddr_un *)sbig); /* XXX: the
CVS commit: src/sys/compat/svr4
Module Name:src Committed By: rtr Date: Sun Apr 19 19:17:37 UTC 2015 Modified Files: src/sys/compat/svr4: svr4_stream.c Log Message: clean up the way ti_bind() was converted to use sockaddr_big. instead of using the original sockaddr_{in,un} structures for storage use the single sockaddr_big structure instead. while here ditch superfluous assignment of sockaddr sb_len since the assignment is already performed in netaddr_to_sockaddr_{in,un} To generate a diff of this commit: cvs rdiff -u -r1.82 -r1.83 src/sys/compat/svr4/svr4_stream.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/svr4/svr4_stream.c diff -u src/sys/compat/svr4/svr4_stream.c:1.82 src/sys/compat/svr4/svr4_stream.c:1.83 --- src/sys/compat/svr4/svr4_stream.c:1.82 Fri Apr 3 20:01:07 2015 +++ src/sys/compat/svr4/svr4_stream.c Sun Apr 19 19:17:37 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_stream.c,v 1.82 2015/04/03 20:01:07 rtr Exp $ */ +/* $NetBSD: svr4_stream.c,v 1.83 2015/04/19 19:17:37 rtr Exp $ */ /*- * Copyright (c) 1994, 2008 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: svr4_stream.c,v 1.82 2015/04/03 20:01:07 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: svr4_stream.c,v 1.83 2015/04/19 19:17:37 rtr Exp $); #include sys/param.h #include sys/kernel.h @@ -750,9 +750,9 @@ ti_bind(file_t *fp, int fd, struct svr4_ { int error; struct svr4_strm *st = svr4_stream_get(fp); - struct sockaddr_in sain; - struct sockaddr_un saun; - struct sockaddr_big *sbig; + struct sockaddr_in *sain; + struct sockaddr_un *saun; + struct sockaddr_big sbig; void *sup = NULL; int sasize; struct svr4_strmcmd bnd; @@ -775,34 +775,34 @@ ti_bind(file_t *fp, int fd, struct svr4_ switch (st-s_family) { case AF_INET: - sbig = (struct sockaddr_big *)sain; - sbig-sb_len = sasize = sizeof(sain); + sain = (struct sockaddr_in *)sbig; + sasize = sizeof(*sain); if (bnd.offs == 0) goto reply; - netaddr_to_sockaddr_in(sain, bnd); + netaddr_to_sockaddr_in(sain, bnd); DPRINTF((TI_BIND: fam %d, port %d, addr %x\n, - sain.sin_family, sain.sin_port, - sain.sin_addr.s_addr)); + sain-sin_family, sain-sin_port, + sain-sin_addr.s_addr)); break; case AF_LOCAL: - sbig = (struct sockaddr_big *)saun; - sbig-sb_len = sasize = sizeof(saun); + saun = (struct sockaddr_un *)sbig; + sasize = sizeof(*saun); if (bnd.offs == 0) goto reply; - netaddr_to_sockaddr_un(saun, bnd); + netaddr_to_sockaddr_un(saun, bnd); - if (saun.sun_path[0] == '\0') + if (saun-sun_path[0] == '\0') goto reply; DPRINTF((TI_BIND: fam %d, path %s\n, - saun.sun_family, saun.sun_path)); + saun-sun_family, saun-sun_path)); - if ((error = clean_pipe(l, saun.sun_path)) != 0) + if ((error = clean_pipe(l, saun-sun_path)) != 0) return error; bnd.pad[28] = 0x1000; /* magic again */ @@ -816,7 +816,7 @@ ti_bind(file_t *fp, int fd, struct svr4_ DPRINTF((TI_BIND: fileno %d\n, fd)); - error = do_sys_bind(l, fd, (struct sockaddr *)sbig); + error = do_sys_bind(l, fd, (struct sockaddr *)sbig); if (error != 0) { DPRINTF((TI_BIND: bind failed %d\n, error)); return error;
CVS commit: src/tests/lib/libc/sys
Module Name:src Committed By: rtr Date: Sun Apr 5 23:28:10 UTC 2015 Modified Files: src/tests/lib/libc/sys: t_bind.c Log Message: fix typo bindinging - binding To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/sys/t_bind.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tests/lib/libc/sys/t_bind.c diff -u src/tests/lib/libc/sys/t_bind.c:1.2 src/tests/lib/libc/sys/t_bind.c:1.3 --- src/tests/lib/libc/sys/t_bind.c:1.2 Sun Apr 5 23:15:54 2015 +++ src/tests/lib/libc/sys/t_bind.c Sun Apr 5 23:28:10 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: t_bind.c,v 1.2 2015/04/05 23:15:54 rtr Exp $ */ +/* $NetBSD: t_bind.c,v 1.3 2015/04/05 23:28:10 rtr Exp $ */ /* * Copyright (c) 2015 The NetBSD Foundation, Inc. * All rights reserved. @@ -42,7 +42,7 @@ ATF_TC(bind_foreign_family); ATF_TC_HEAD(bind_foreign_family, tc) { - atf_tc_set_md_var(tc, descr, Checks that bindinging a socket + atf_tc_set_md_var(tc, descr, Checks that binding a socket with a different address family fails); }
CVS commit: src/tests/lib/libc/sys
Module Name:src Committed By: rtr Date: Sun Apr 5 23:17:41 UTC 2015 Modified Files: src/tests/lib/libc/sys: t_connect.c Log Message: add another test program for connect(2) that checks that connect fails with EAFNOSUPPORT (similar to the bind test) if the domain of the socket does not match the address family of the supplied address. test currently fails as it should To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/sys/t_connect.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tests/lib/libc/sys/t_connect.c diff -u src/tests/lib/libc/sys/t_connect.c:1.1 src/tests/lib/libc/sys/t_connect.c:1.2 --- src/tests/lib/libc/sys/t_connect.c:1.1 Sat Nov 5 18:19:02 2011 +++ src/tests/lib/libc/sys/t_connect.c Sun Apr 5 23:17:41 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: t_connect.c,v 1.1 2011/11/05 18:19:02 jruoho Exp $ */ +/* $NetBSD: t_connect.c,v 1.2 2015/04/05 23:17:41 rtr Exp $ */ /* * Copyright (c) 2007, 2008 The NetBSD Foundation, Inc. * All rights reserved. @@ -90,10 +90,39 @@ ATF_TC_BODY(connect_low_port, tc) close(sd); } +ATF_TC(connect_foreign_family); +ATF_TC_HEAD(connect_foreign_family, tc) +{ + atf_tc_set_md_var(tc, descr, Checks that connecting a socket + with a different address family fails); +} +ATF_TC_BODY(connect_foreign_family, tc) +{ + struct sockaddr_in addr; + + /* addr.sin_family = AF_UNSPEC = 0 */ + memset(addr, 0, sizeof(addr)); + + /* + * it is not necessary to initialize sin_{addr,port} since + * those structure members shall not be accessed if connect + * fails correctly. + */ + + int sock = socket(AF_LOCAL, SOCK_STREAM, 0); + ATF_REQUIRE(sock != -1); + + ATF_REQUIRE(-1 == connect(sock, (struct sockaddr *)addr, sizeof(addr))); + ATF_REQUIRE(EAFNOSUPPORT == errno); + + close(sock); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, connect_low_port); + ATF_TP_ADD_TC(tp, connect_foreign_family); return atf_no_error(); }
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sun Apr 5 23:19:56 UTC 2015 Modified Files: src/sys/kern: uipc_socket.c Log Message: change return from EINVAL to EAFNOSUPPORT when the domain of the socket does not match the family of the address to be bound. fixes atf test lib/libc/sys/t_bind bind_foreign_family To generate a diff of this commit: cvs rdiff -u -r1.237 -r1.238 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.237 src/sys/kern/uipc_socket.c:1.238 --- src/sys/kern/uipc_socket.c:1.237 Sun Apr 5 02:26:39 2015 +++ src/sys/kern/uipc_socket.c Sun Apr 5 23:19:56 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.237 2015/04/05 02:26:39 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.238 2015/04/05 23:19:56 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.237 2015/04/05 02:26:39 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.238 2015/04/05 23:19:56 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -631,7 +631,7 @@ sobind(struct socket *so, struct sockadd solock(so); if (nam-sa_family != so-so_proto-pr_domain-dom_family) { sounlock(so); - return EINVAL; + return EAFNOSUPPORT; } error = (*so-so_proto-pr_usrreqs-pr_bind)(so, nam, l); sounlock(so);
CVS commit: src/tests/lib/libc/sys
Module Name:src Committed By: rtr Date: Sun Apr 5 23:15:54 UTC 2015 Modified Files: src/tests/lib/libc/sys: t_bind.c Log Message: - ATF_REQUIRE(EINVAL == errno); + ATF_REQUIRE(EAFNOSUPPORT == errno); as per http://pubs.opengroup.org/onlinepubs/009695399/functions/bind.html while here remove some unnecessary initialization of port and addr members and replace with a comment explaining why. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/sys/t_bind.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tests/lib/libc/sys/t_bind.c diff -u src/tests/lib/libc/sys/t_bind.c:1.1 src/tests/lib/libc/sys/t_bind.c:1.2 --- src/tests/lib/libc/sys/t_bind.c:1.1 Sun Apr 5 06:36:52 2015 +++ src/tests/lib/libc/sys/t_bind.c Sun Apr 5 23:15:54 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: t_bind.c,v 1.1 2015/04/05 06:36:52 martin Exp $ */ +/* $NetBSD: t_bind.c,v 1.2 2015/04/05 23:15:54 rtr Exp $ */ /* * Copyright (c) 2015 The NetBSD Foundation, Inc. * All rights reserved. @@ -50,17 +50,21 @@ ATF_TC_BODY(bind_foreign_family, tc) { struct sockaddr_in addr; + /* addr.sin_family = AF_UNSPEC = 0 */ memset(addr, 0, sizeof(addr)); - /* use a sin_family != the socket type */ - addr.sin_port = htons(8000); - addr.sin_addr.s_addr = INADDR_ANY; + + /* + * it is not necessary to initialize sin_{addr,port} since + * those structure members shall not be accessed if bind + * fails correctly. + */ int sock = socket(AF_LOCAL, SOCK_STREAM, 0); ATF_REQUIRE(sock != -1); /* should fail but currently doesn't */ ATF_REQUIRE(-1 == bind(sock, (struct sockaddr *)addr, sizeof(addr))); - ATF_REQUIRE(EINVAL == errno); + ATF_REQUIRE(EAFNOSUPPORT == errno); close(sock); }
CVS commit: src/lib/libc/sys
Module Name:src Committed By: rtr Date: Sun Apr 5 20:33:45 UTC 2015 Modified Files: src/lib/libc/sys: bind.2 Log Message: Note that bind(2) can fail with EAFNOSUPPORT. The description of why is taken from the connect(2) manpage. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/lib/libc/sys/bind.2 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/lib/libc/sys/bind.2 diff -u src/lib/libc/sys/bind.2:1.27 src/lib/libc/sys/bind.2:1.28 --- src/lib/libc/sys/bind.2:1.27 Mon May 31 12:16:20 2010 +++ src/lib/libc/sys/bind.2 Sun Apr 5 20:33:45 2015 @@ -1,4 +1,4 @@ -.\ $NetBSD: bind.2,v 1.27 2010/05/31 12:16:20 njoly Exp $ +.\ $NetBSD: bind.2,v 1.28 2015/04/05 20:33:45 rtr Exp $ .\ .\ Copyright (c) 1983, 1993 .\ The Regents of the University of California. All rights reserved. @@ -85,6 +85,8 @@ is not a valid descriptor. is not a socket. .It Bq Er EADDRNOTAVAIL The specified address is not available from the local machine. +.It Bq Er EAFNOSUPPORT +Addresses in the specified address family cannot be used with this socket. .It Bq Er EADDRINUSE The specified address is already in use. .It Bq Er EINVAL
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sun Apr 5 02:26:39 UTC 2015 Modified Files: src/sys/kern: uipc_socket.c Log Message: make bind() fail with EINVAL if the address family of the provided socket does not match the address family of the sockaddr received. To generate a diff of this commit: cvs rdiff -u -r1.236 -r1.237 src/sys/kern/uipc_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.236 src/sys/kern/uipc_socket.c:1.237 --- src/sys/kern/uipc_socket.c:1.236 Fri Apr 3 20:01:07 2015 +++ src/sys/kern/uipc_socket.c Sun Apr 5 02:26:39 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.236 2015/04/03 20:01:07 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.237 2015/04/05 02:26:39 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.236 2015/04/03 20:01:07 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.237 2015/04/05 02:26:39 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -629,6 +629,10 @@ sobind(struct socket *so, struct sockadd int error; solock(so); + if (nam-sa_family != so-so_proto-pr_domain-dom_family) { + sounlock(so); + return EINVAL; + } error = (*so-so_proto-pr_usrreqs-pr_bind)(so, nam, l); sounlock(so); return error;
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Fri Apr 3 20:01:08 UTC 2015 Modified Files: src/sys/compat/linux/common: linux_socket.c src/sys/compat/svr4: svr4_stream.c src/sys/kern: uipc_socket.c uipc_syscalls.c uipc_usrreq.c src/sys/net: if_gre.c link_proto.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: in_pcb.c in_pcb.h raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: in6_pcb.c in6_pcb.h raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/nfs: nfs_boot.c nfs_socket.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: param.h protosw.h socket.h socketvar.h Log Message: * change pr_bind to accept struct sockaddr * instead of struct mbuf * * update protocol bind implementations to use/expect sockaddr * instead of mbuf * * introduce sockaddr_big struct for storage of addr data passed via sys_bind; sockaddr_big is of sufficient size and alignment to accommodate all addr data sizes received. * modify sys_bind to allocate sockaddr_big instead of using an mbuf. * bump kernel version to 7.99.9 for change to pr_bind() parameter type. Patch posted to tech-net@ http://mail-index.netbsd.org/tech-net/2015/03/15/msg005004.html The choice to use a new structure sockaddr_big has been retained since changing sockaddr_storage size would lead to unnecessary ABI change. The use of the new structure does not preclude future work that increases the size of sockaddr_storage and at that time sockaddr_big may be trivially replaced. Tested by mrg@ and myself, discussed with rmind@, posted to tech-net@ To generate a diff of this commit: cvs rdiff -u -r1.122 -r1.123 src/sys/compat/linux/common/linux_socket.c cvs rdiff -u -r1.81 -r1.82 src/sys/compat/svr4/svr4_stream.c cvs rdiff -u -r1.235 -r1.236 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.174 -r1.175 src/sys/kern/uipc_syscalls.c cvs rdiff -u -r1.175 -r1.176 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.161 -r1.162 src/sys/net/if_gre.c cvs rdiff -u -r1.24 -r1.25 src/sys/net/link_proto.c cvs rdiff -u -r1.166 -r1.167 src/sys/net/rtsock.c cvs rdiff -u -r1.63 -r1.64 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.40 -r1.41 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.31 -r1.32 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.33 -r1.34 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.155 -r1.156 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.55 -r1.56 src/sys/netinet/in_pcb.h cvs rdiff -u -r1.146 -r1.147 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.204 -r1.205 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.217 -r1.218 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.134 -r1.135 src/sys/netinet6/in6_pcb.c cvs rdiff -u -r1.41 -r1.42 src/sys/netinet6/in6_pcb.h cvs rdiff -u -r1.136 -r1.137 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.116 -r1.117 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.44 -r1.45 src/sys/netipsec/keysock.c cvs rdiff -u -r1.24 -r1.25 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.45 -r1.46 src/sys/netnatm/natm.c cvs rdiff -u -r1.82 -r1.83 src/sys/nfs/nfs_boot.c cvs rdiff -u -r1.193 -r1.194 src/sys/nfs/nfs_socket.c cvs rdiff -u -r1.58 -r1.59 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.468 -r1.469 src/sys/sys/param.h cvs rdiff -u -r1.60 -r1.61 src/sys/sys/protosw.h cvs rdiff -u -r1.116 -r1.117 src/sys/sys/socket.h cvs rdiff -u -r1.135 -r1.136 src/sys/sys/socketvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/linux/common/linux_socket.c diff -u src/sys/compat/linux/common/linux_socket.c:1.122 src/sys/compat/linux/common/linux_socket.c:1.123 --- src/sys/compat/linux/common/linux_socket.c:1.122 Wed Nov 26 09:53:53 2014 +++ src/sys/compat/linux/common/linux_socket.c Fri Apr 3 20:01:07 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_socket.c,v 1.122 2014/11/26 09:53:53 ozaki-r Exp $ */ +/* $NetBSD: linux_socket.c,v 1.123 2015/04/03 20:01:07 rtr Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: linux_socket.c,v 1.122 2014/11/26 09:53:53 ozaki-r Exp $); +__KERNEL_RCSID(0, $NetBSD: linux_socket.c,v 1.123 2015/04/03 20:01:07 rtr Exp $); #if defined(_KERNEL_OPT) #include opt_inet.h @@ -121,6 +121,8 @@ int linux_getifconf(struct lwp *, regist int linux_getifhwaddr(struct lwp *, register_t *, u_int, void *); static int linux_get_sa(struct lwp *, int, struct mbuf **, const struct osockaddr *, unsigned int); +static int linux_get_sa_sb(struct lwp *, int, struct sockaddr_big *, + const struct osockaddr *, socklen_t); static int linux_sa_put(struct osockaddr *osa); static int linux_to_bsd_msg_flags(int); static int bsd_to_linux_msg_flags(int); @@ -1445,14
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sat Apr 4 04:33:39 UTC 2015 Modified Files: src/sys/netinet: dccp_usrreq.c src/sys/netinet6: dccp6_usrreq.c dccp6_var.h Log Message: * update dccp_bind for struct mbuf * to struct sockaddr * parameter change * pass NULL instead of casting 0 to a pointer when calling in_pcbbind() To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/netinet/dccp_usrreq.c cvs rdiff -u -r1.1 -r1.2 src/sys/netinet6/dccp6_usrreq.c \ src/sys/netinet6/dccp6_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/dccp_usrreq.c diff -u src/sys/netinet/dccp_usrreq.c:1.1 src/sys/netinet/dccp_usrreq.c:1.2 --- src/sys/netinet/dccp_usrreq.c:1.1 Tue Feb 10 19:11:52 2015 +++ src/sys/netinet/dccp_usrreq.c Sat Apr 4 04:33:38 2015 @@ -1,5 +1,5 @@ /* $KAME: dccp_usrreq.c,v 1.67 2005/11/03 16:05:04 nishida Exp $ */ -/* $NetBSD: dccp_usrreq.c,v 1.1 2015/02/10 19:11:52 rjs Exp $ */ +/* $NetBSD: dccp_usrreq.c,v 1.2 2015/04/04 04:33:38 rtr Exp $ */ /* * Copyright (c) 2003 Joacim Häggmark, Magnus Erixzon, Nils-Erik Mattsson @@ -67,7 +67,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: dccp_usrreq.c,v 1.1 2015/02/10 19:11:52 rjs Exp $); +__KERNEL_RCSID(0, $NetBSD: dccp_usrreq.c,v 1.2 2015/04/04 04:33:38 rtr Exp $); #include opt_inet.h #include opt_dccp.h @@ -1820,12 +1820,11 @@ out: } static int -dccp_bind(struct socket *so, struct mbuf *m, struct lwp *l) +dccp_bind(struct socket *so, struct sockaddr *nam, struct lwp *l) { struct inpcb *inp; int error; - struct sockaddr_in *sinp; - struct sockaddr *nam; + struct sockaddr_in *sin = (struct sockaddr_in *)nam; DCCP_DEBUG((LOG_INFO, Entering dccp_bind!\n)); INP_INFO_WLOCK(dccpbinfo); @@ -1836,15 +1835,13 @@ dccp_bind(struct socket *so, struct mbuf } /* Do not bind to multicast addresses! */ - nam = mtod(m, struct sockaddr *); - sinp = (struct sockaddr_in *)nam; - if (sinp-sin_family == AF_INET - IN_MULTICAST(ntohl(sinp-sin_addr.s_addr))) { + if (sin-sin_family == AF_INET + IN_MULTICAST(ntohl(sin-sin_addr.s_addr))) { INP_INFO_WUNLOCK(dccpbinfo); return EAFNOSUPPORT; } INP_LOCK(inp); - error = in_pcbbind(inp, m, l); + error = in_pcbbind(inp, sin, l); INP_UNLOCK(inp); INP_INFO_WUNLOCK(dccpbinfo); return error; @@ -1964,11 +1961,11 @@ dccp_doconnect(struct socket *so, struct #ifdef INET6 if (isipv6) { DCCP_DEBUG((LOG_INFO, Running in6_pcbbind!\n)); - error = in6_pcbbind(in6p, (struct mbuf *)0, l); + error = in6_pcbbind(in6p, NULL, l); } else #endif /* INET6 */ { - error = in_pcbbind(inp, (struct mbuf *)0, l); + error = in_pcbbind(inp, NULL, l); } if (error) { DCCP_DEBUG((LOG_INFO, in_pcbbind=%d\n,error)); @@ -2260,7 +2257,7 @@ dccp_listen(struct socket *so, struct lw INP_INFO_RUNLOCK(dccpbinfo); dp = (struct dccpcb *)inp-inp_ppcb; if (inp-inp_lport == 0) - error = in_pcbbind(inp, (struct mbuf *)0, td); + error = in_pcbbind(inp, NULL, td); if (error == 0) { dp-state = DCCPS_LISTEN; dp-who = DCCP_LISTENER; Index: src/sys/netinet6/dccp6_usrreq.c diff -u src/sys/netinet6/dccp6_usrreq.c:1.1 src/sys/netinet6/dccp6_usrreq.c:1.2 --- src/sys/netinet6/dccp6_usrreq.c:1.1 Tue Feb 10 19:11:52 2015 +++ src/sys/netinet6/dccp6_usrreq.c Sat Apr 4 04:33:39 2015 @@ -1,5 +1,5 @@ /* $KAME: dccp6_usrreq.c,v 1.13 2005/07/27 08:42:56 nishida Exp $ */ -/* $NetBSD: dccp6_usrreq.c,v 1.1 2015/02/10 19:11:52 rjs Exp $ */ +/* $NetBSD: dccp6_usrreq.c,v 1.2 2015/04/04 04:33:39 rtr Exp $ */ /* * Copyright (C) 2003 WIDE Project. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: dccp6_usrreq.c,v 1.1 2015/02/10 19:11:52 rjs Exp $); +__KERNEL_RCSID(0, $NetBSD: dccp6_usrreq.c,v 1.2 2015/04/04 04:33:39 rtr Exp $); #include opt_inet.h #include opt_dccp.h @@ -111,12 +111,11 @@ dccp6_ctlinput(int cmd, const struct soc } int -dccp6_bind(struct socket *so, struct mbuf *m, struct lwp *td) +dccp6_bind(struct socket *so, struct sockaddr *nam, struct lwp *td) { struct in6pcb *in6p; - struct sockaddr *nam; int error; - struct sockaddr_in6 *sin6p; + struct sockaddr_in6 *sin6p = (struct sockaddr_in6 *)nam; DCCP_DEBUG((LOG_INFO, Entering dccp6_bind!\n)); INP_INFO_WLOCK(dccpbinfo); @@ -127,8 +126,6 @@ dccp6_bind(struct socket *so, struct mbu return EINVAL; } /* Do not bind to multicast addresses! */ - nam = mtod(m, struct sockaddr *); - sin6p = (struct sockaddr_in6 *)nam; if (sin6p-sin6_family == AF_INET6 IN6_IS_ADDR_MULTICAST(sin6p-sin6_addr)) { INP_INFO_WUNLOCK(dccpbinfo); @@ -139,7 +136,7 @@ dccp6_bind(struct socket *so, struct mbu in6todccpcb(in6p)-inp_vflag = ~INP_IPV4; in6todccpcb(in6p)-inp_vflag |= INP_IPV6; - error = in6_pcbbind(in6p, m, td); + error = in6_pcbbind(in6p, sin6p, td); INP_UNLOCK(inp); INP_INFO_WUNLOCK(dccpbinfo); return error; @@ -253,7
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Sat Mar 14 02:08:16 UTC 2015 Modified Files: src/sys/netinet: tcp_input.c Log Message: Move code that is conditional on options INET6 into #ifdef INET6. * Re-organize some variable declarations to limit #ifdef's. * Move INET and INET6 code into respective switch cases to simplify #ifdef INET6. No intended functional change. To generate a diff of this commit: cvs rdiff -u -r1.336 -r1.337 src/sys/netinet/tcp_input.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/tcp_input.c diff -u src/sys/netinet/tcp_input.c:1.336 src/sys/netinet/tcp_input.c:1.337 --- src/sys/netinet/tcp_input.c:1.336 Sat Feb 14 12:57:53 2015 +++ src/sys/netinet/tcp_input.c Sat Mar 14 02:08:16 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_input.c,v 1.336 2015/02/14 12:57:53 he Exp $ */ +/* $NetBSD: tcp_input.c,v 1.337 2015/03/14 02:08:16 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -148,7 +148,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: tcp_input.c,v 1.336 2015/02/14 12:57:53 he Exp $); +__KERNEL_RCSID(0, $NetBSD: tcp_input.c,v 1.337 2015/03/14 02:08:16 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -3191,9 +3191,11 @@ tcp_signature(struct mbuf *m, struct tcp MD5_CTX ctx; struct ip *ip; struct ipovly *ipovly; +#ifdef INET6 struct ip6_hdr *ip6; - struct ippseudo ippseudo; struct ip6_hdr_pseudo ip6pseudo; +#endif /* INET6 */ + struct ippseudo ippseudo; struct tcphdr th0; int l, tcphdrlen; @@ -3204,20 +3206,8 @@ tcp_signature(struct mbuf *m, struct tcp switch (mtod(m, struct ip *)-ip_v) { case 4: + MD5Init(ctx); ip = mtod(m, struct ip *); - ip6 = NULL; - break; - case 6: - ip = NULL; - ip6 = mtod(m, struct ip6_hdr *); - break; - default: - return (-1); - } - - MD5Init(ctx); - - if (ip) { memset(ippseudo, 0, sizeof(ippseudo)); ipovly = (struct ipovly *)ip; ippseudo.ippseudo_src = ipovly-ih_src; @@ -3226,7 +3216,11 @@ tcp_signature(struct mbuf *m, struct tcp ippseudo.ippseudo_p = IPPROTO_TCP; ippseudo.ippseudo_len = htons(m-m_pkthdr.len - thoff); MD5Update(ctx, (char *)ippseudo, sizeof(ippseudo)); - } else { + break; +#if INET6 + case 6: + MD5Init(ctx); + ip6 = mtod(m, struct ip6_hdr *); memset(ip6pseudo, 0, sizeof(ip6pseudo)); ip6pseudo.ip6ph_src = ip6-ip6_src; in6_clearscope(ip6pseudo.ip6ph_src); @@ -3235,6 +3229,10 @@ tcp_signature(struct mbuf *m, struct tcp ip6pseudo.ip6ph_len = htons(m-m_pkthdr.len - thoff); ip6pseudo.ip6ph_nxt = IPPROTO_TCP; MD5Update(ctx, (char *)ip6pseudo, sizeof(ip6pseudo)); + break; +#endif /* INET6 */ + default: + return (-1); } th0 = *th;
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Fri Mar 6 03:35:00 UTC 2015 Modified Files: src/sys/kern: uipc_syscalls.c Log Message: Return EINVAL if namelen isn't large enough to encompass the expected members of sockaddr structures. i.e. sa_len and sa_family. Discussed with and patch by christos@ To generate a diff of this commit: cvs rdiff -u -r1.173 -r1.174 src/sys/kern/uipc_syscalls.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_syscalls.c diff -u src/sys/kern/uipc_syscalls.c:1.173 src/sys/kern/uipc_syscalls.c:1.174 --- src/sys/kern/uipc_syscalls.c:1.173 Fri Sep 5 09:20:59 2014 +++ src/sys/kern/uipc_syscalls.c Fri Mar 6 03:35:00 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_syscalls.c,v 1.173 2014/09/05 09:20:59 matt Exp $ */ +/* $NetBSD: uipc_syscalls.c,v 1.174 2015/03/06 03:35:00 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_syscalls.c,v 1.173 2014/09/05 09:20:59 matt Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_syscalls.c,v 1.174 2015/03/06 03:35:00 rtr Exp $); #include opt_pipe.h @@ -1463,6 +1463,12 @@ sockargs(struct mbuf **mp, const void *b if (buflen (type == MT_SONAME ? UCHAR_MAX : PAGE_SIZE)) return EINVAL; + /* + * length must greater than sizeof(sa_family) + sizeof(sa_len) + */ + if (type == MT_SONAME buflen = 2) + return EINVAL; + /* Allocate an mbuf to hold the arguments. */ m = m_get(M_WAIT, type); /* can't claim. don't who to assign it to. */
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Sat Feb 28 21:42:01 UTC 2015 Modified Files: src/sys/kern: uipc_usrreq.c Log Message: Place opening brace to function at column 0, like in the rest of the file. To generate a diff of this commit: cvs rdiff -u -r1.173 -r1.174 src/sys/kern/uipc_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.173 src/sys/kern/uipc_usrreq.c:1.174 --- src/sys/kern/uipc_usrreq.c:1.173 Mon Feb 2 02:28:26 2015 +++ src/sys/kern/uipc_usrreq.c Sat Feb 28 21:42:01 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.173 2015/02/02 02:28:26 christos Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.174 2015/02/28 21:42:01 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.173 2015/02/02 02:28:26 christos Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.174 2015/02/28 21:42:01 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -920,7 +920,8 @@ unp_sockaddr(struct socket *so, struct m * what it calls abstract unix sockets. */ static struct sockaddr_un * -makeun(struct mbuf *nam, size_t *addrlen) { +makeun(struct mbuf *nam, size_t *addrlen) +{ struct sockaddr_un *sun; *addrlen = nam-m_len + 1;
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sat Aug 9 05:33:01 UTC 2014 Modified Files: src/sys/kern: uipc_socket.c uipc_syscalls.c uipc_usrreq.c src/sys/miscfs/fifofs: fifo_vnops.c src/sys/net: if.c link_proto.c raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h un.h Log Message: split PRU_CONNECT2 PRU_PURGEIF function out of pr_generic() usrreq switches and put into separate functions - always KASSERT(solocked(so)) even if not implemented (for PRU_CONNECT2 only) - replace calls to pr_generic() with req = PRU_CONNECT2 with calls to pr_connect2() - replace calls to pr_generic() with req = PRU_PURGEIF with calls to pr_purgeif() put common code from unp_connect2() (used by unp_connect() into unp_connect1() and call out to it when needed patch only briefly reviewed by rmind@ To generate a diff of this commit: cvs rdiff -u -r1.233 -r1.234 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.171 -r1.172 src/sys/kern/uipc_syscalls.c cvs rdiff -u -r1.168 -r1.169 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.76 -r1.77 src/sys/miscfs/fifofs/fifo_vnops.c cvs rdiff -u -r1.289 -r1.290 src/sys/net/if.c cvs rdiff -u -r1.23 -r1.24 src/sys/net/link_proto.c cvs rdiff -u -r1.51 -r1.52 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.162 -r1.163 src/sys/net/rtsock.c cvs rdiff -u -r1.62 -r1.63 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.39 -r1.40 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.30 -r1.31 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.32 -r1.33 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.144 -r1.145 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.199 -r1.200 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.216 -r1.217 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.135 -r1.136 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.114 -r1.115 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.42 -r1.43 src/sys/netipsec/keysock.c cvs rdiff -u -r1.23 -r1.24 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.44 -r1.45 src/sys/netnatm/natm.c cvs rdiff -u -r1.57 -r1.58 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.59 -r1.60 src/sys/sys/protosw.h cvs rdiff -u -r1.54 -r1.55 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.233 src/sys/kern/uipc_socket.c:1.234 --- src/sys/kern/uipc_socket.c:1.233 Fri Aug 8 03:05:45 2014 +++ src/sys/kern/uipc_socket.c Sat Aug 9 05:33:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.233 2014/08/08 03:05:45 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.234 2014/08/09 05:33:00 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.233 2014/08/08 03:05:45 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.234 2014/08/09 05:33:00 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -836,8 +836,7 @@ soconnect2(struct socket *so1, struct so { KASSERT(solocked2(so1, so2)); - return (*so1-so_proto-pr_usrreqs-pr_generic)(so1, - PRU_CONNECT2, NULL, (struct mbuf *)so2, NULL, NULL); + return (*so1-so_proto-pr_usrreqs-pr_connect2)(so1, so2); } int Index: src/sys/kern/uipc_syscalls.c diff -u src/sys/kern/uipc_syscalls.c:1.171 src/sys/kern/uipc_syscalls.c:1.172 --- src/sys/kern/uipc_syscalls.c:1.171 Wed Jul 9 04:54:03 2014 +++ src/sys/kern/uipc_syscalls.c Sat Aug 9 05:33:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_syscalls.c,v 1.171 2014/07/09 04:54:03 rtr Exp $ */ +/* $NetBSD: uipc_syscalls.c,v 1.172 2014/08/09 05:33:00 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_syscalls.c,v 1.171 2014/07/09 04:54:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_syscalls.c,v 1.172 2014/08/09 05:33:00 rtr Exp $); #include opt_pipe.h @@ -1276,7 +1276,7 @@ pipe1(struct lwp *l, register_t *retval, wf-f_data = wso; retval[1] = fd; solock(wso); - error = unp_connect2(wso, rso, PRU_CONNECT2); + error = unp_connect2(wso, rso); sounlock(wso); if (error != 0) goto free4; Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.168 src/sys/kern/uipc_usrreq.c:1.169 --- src/sys/kern/uipc_usrreq.c:1.168 Fri Aug 8 03:05:45 2014 +++ src/sys/kern/uipc_usrreq.c Sat Aug 9 05:33:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.168 2014/08/08 03:05:45 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.169
CVS commit: src/sys/netatalk
Module Name:src Committed By: rtr Date: Thu Aug 7 07:51:28 UTC 2014 Modified Files: src/sys/netatalk: ddp_usrreq.c Log Message: suppress possibly used uninitialized warning on sgimips from martin@ To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/sys/netatalk/ddp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.60 src/sys/netatalk/ddp_usrreq.c:1.61 --- src/sys/netatalk/ddp_usrreq.c:1.60 Thu Aug 7 01:02:30 2014 +++ src/sys/netatalk/ddp_usrreq.c Thu Aug 7 07:51:28 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.60 2014/08/07 01:02:30 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.61 2014/08/07 07:51:28 rtr Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.60 2014/08/07 01:02:30 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.61 2014/08/07 07:51:28 rtr Exp $); #include opt_mbuftrace.h @@ -541,7 +541,7 @@ ddp_send(struct socket *so, struct mbuf { struct ddpcb *ddp = sotoddpcb(so); int error = 0; - int s; + int s = 0; /* XXX gcc 4.8 warns on sgimips */ KASSERT(solocked(so)); KASSERT(ddp != NULL);
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Fri Aug 8 03:05:45 UTC 2014 Modified Files: src/sys/dev: kttcp.c src/sys/kern: uipc_socket.c uipc_usrreq.c src/sys/net: if_gre.c link_proto.c raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm.h rfcomm_socket.c rfcomm_upper.c sco_socket.c src/sys/netinet: raw_ip.c tcp_input.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h Log Message: split PRU_RCVD function out of pr_generic() usrreq switches and put into separate functions - always KASSERT(solocked(so)) even if not implemented - replace calls to pr_generic() with req = PRU_RCVD with calls to pr_rcvd() To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 src/sys/dev/kttcp.c cvs rdiff -u -r1.232 -r1.233 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.167 -r1.168 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.158 -r1.159 src/sys/net/if_gre.c cvs rdiff -u -r1.22 -r1.23 src/sys/net/link_proto.c cvs rdiff -u -r1.50 -r1.51 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.161 -r1.162 src/sys/net/rtsock.c cvs rdiff -u -r1.61 -r1.62 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.38 -r1.39 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.29 -r1.30 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.17 -r1.18 src/sys/netbt/rfcomm.h cvs rdiff -u -r1.31 -r1.32 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.20 -r1.21 src/sys/netbt/rfcomm_upper.c cvs rdiff -u -r1.143 -r1.144 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.333 -r1.334 src/sys/netinet/tcp_input.c cvs rdiff -u -r1.198 -r1.199 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.215 -r1.216 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.134 -r1.135 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.113 -r1.114 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.41 -r1.42 src/sys/netipsec/keysock.c cvs rdiff -u -r1.22 -r1.23 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.43 -r1.44 src/sys/netnatm/natm.c cvs rdiff -u -r1.56 -r1.57 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.58 -r1.59 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/kttcp.c diff -u src/sys/dev/kttcp.c:1.36 src/sys/dev/kttcp.c:1.37 --- src/sys/dev/kttcp.c:1.36 Tue Aug 5 07:55:31 2014 +++ src/sys/dev/kttcp.c Fri Aug 8 03:05:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: kttcp.c,v 1.36 2014/08/05 07:55:31 rtr Exp $ */ +/* $NetBSD: kttcp.c,v 1.37 2014/08/08 03:05:44 rtr Exp $ */ /* * Copyright (c) 2002 Wasabi Systems, Inc. @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: kttcp.c,v 1.36 2014/08/05 07:55:31 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: kttcp.c,v 1.37 2014/08/08 03:05:44 rtr Exp $); #include sys/param.h #include sys/types.h @@ -635,8 +635,7 @@ kttcp_soreceive(struct socket *so, unsig * get it filled again. */ if ((pr-pr_flags PR_WANTRCVD) so-so_pcb) { -(*pr-pr_usrreqs-pr_generic)(so, PRU_RCVD, NULL, -(struct mbuf *)(long)flags, NULL, NULL); +(*pr-pr_usrreqs-pr_rcvd)(so, flags, l); } SBLASTRECORDCHK(so-so_rcv, kttcp_soreceive sbwait 2); @@ -675,8 +674,7 @@ kttcp_soreceive(struct socket *so, unsig SBLASTRECORDCHK(so-so_rcv, kttcp_soreceive 4); SBLASTMBUFCHK(so-so_rcv, kttcp_soreceive 4); if (pr-pr_flags PR_WANTRCVD so-so_pcb) { - (*pr-pr_usrreqs-pr_generic)(so, PRU_RCVD, NULL, - (struct mbuf *)(long)flags, NULL, NULL); + (*pr-pr_usrreqs-pr_rcvd)(so, flags, l); } } if (orig_resid == resid orig_resid Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.232 src/sys/kern/uipc_socket.c:1.233 --- src/sys/kern/uipc_socket.c:1.232 Tue Aug 5 07:55:31 2014 +++ src/sys/kern/uipc_socket.c Fri Aug 8 03:05:45 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.232 2014/08/05 07:55:31 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.233 2014/08/08 03:05:45 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.232 2014/08/05 07:55:31 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.233 2014/08/08 03:05:45 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -1532,8 +1532,7 @@ soreceive(struct socket *so, struct mbuf * get it filled again. */ if ((pr-pr_flags PR_WANTRCVD) so-so_pcb) -(*pr-pr_usrreqs-pr_generic)(so, PRU_RCVD, -NULL, (struct mbuf *)(long)flags, NULL, l); +(*pr-pr_usrreqs-pr_rcvd)(so, flags, l); SBLASTRECORDCHK(so-so_rcv, soreceive sbwait 2); SBLASTMBUFCHK(so-so_rcv, soreceive sbwait 2); if (wakeup_state
CVS commit: src/sys/netatalk
Module Name:src Committed By: rtr Date: Thu Aug 7 01:02:30 UTC 2014 Modified Files: src/sys/netatalk: ddp_usrreq.c Log Message: remove KASSERT(nam != NULL) from ddp_send() the following code makes the validity of it questionable. we'll investigate later whether it can be put back and the code simplified. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/sys/netatalk/ddp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.59 src/sys/netatalk/ddp_usrreq.c:1.60 --- src/sys/netatalk/ddp_usrreq.c:1.59 Tue Aug 5 07:55:31 2014 +++ src/sys/netatalk/ddp_usrreq.c Thu Aug 7 01:02:30 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.59 2014/08/05 07:55:31 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.60 2014/08/07 01:02:30 rtr Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.59 2014/08/05 07:55:31 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.60 2014/08/07 01:02:30 rtr Exp $); #include opt_mbuftrace.h @@ -545,7 +545,6 @@ ddp_send(struct socket *so, struct mbuf KASSERT(solocked(so)); KASSERT(ddp != NULL); - KASSERT(nam != NULL); if (nam) { if (ddp-ddp_fsat.sat_port != ATADDR_ANYPORT)
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Tue Aug 5 07:10:41 UTC 2014 Modified Files: src/sys/netinet: tcp_usrreq.c Log Message: get_tcppcb() is nearly always called upon entry to usrreqs so KASSERT(solocked(so)) inside it and remove the redundant KASSERT everywhere we are using tcp_getpcb() To generate a diff of this commit: cvs rdiff -u -r1.196 -r1.197 src/sys/netinet/tcp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.196 src/sys/netinet/tcp_usrreq.c:1.197 --- src/sys/netinet/tcp_usrreq.c:1.196 Tue Aug 5 05:24:26 2014 +++ src/sys/netinet/tcp_usrreq.c Tue Aug 5 07:10:41 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.196 2014/08/05 05:24:26 rtr Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.197 2014/08/05 07:10:41 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -99,7 +99,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.196 2014/08/05 05:24:26 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.197 2014/08/05 07:10:41 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -181,6 +181,9 @@ static int tcp_getpcb(struct socket *so, struct inpcb **inp, struct in6pcb **in6p, struct tcpcb **tp) { + + KASSERT(solocked(so)); + /* * When a TCP is attached to a socket, then there will be * a (struct inpcb) pointed at by the socket, and this @@ -273,8 +276,6 @@ tcp_usrreq(struct socket *so, int req, s return (0); } - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) { splx(s); return error; @@ -687,8 +688,6 @@ tcp_detach(struct socket *so) struct tcpcb *tp = NULL; int s; - KASSERT(solocked(so)); - if (tcp_getpcb(so, inp, in6p, tp) != 0) return; @@ -707,8 +706,6 @@ tcp_accept(struct socket *so, struct mbu int error = 0; int s; - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) return error; @@ -746,8 +743,6 @@ tcp_bind(struct socket *so, struct mbuf int error = 0; int ostate = 0; - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) return error; @@ -792,8 +787,6 @@ tcp_listen(struct socket *so, struct lwp int ostate = 0; int s; - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) return error; @@ -836,8 +829,6 @@ tcp_connect(struct socket *so, struct mb int error = 0; int ostate = 0; - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) return error; @@ -925,8 +916,6 @@ tcp_disconnect(struct socket *so) int ostate = 0; int s; - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) return error; @@ -961,8 +950,6 @@ tcp_shutdown(struct socket *so) int ostate = 0; int s; - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) return error; @@ -991,8 +978,6 @@ tcp_abort(struct socket *so) int ostate = 0; int s; - KASSERT(solocked(so)); - if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) return error;
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Tue Aug 5 07:55:32 UTC 2014 Modified Files: src/sys/dev: kttcp.c src/sys/dev/bluetooth: bthidev.c btmagic.c btsco.c src/sys/kern: uipc_socket.c uipc_usrreq.c src/sys/net: if_gre.c link_proto.c raw_cb.h raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap.h l2cap_lower.c l2cap_socket.c l2cap_upper.c rfcomm.h rfcomm_session.c rfcomm_socket.c rfcomm_upper.c sco.h sco_socket.c sco_upper.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/nfs: nfs_socket.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h Log Message: split PRU_SEND function out of pr_generic() usrreq switches and put into separate functions xxx_send(struct socket *, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *) - always KASSERT(solocked(so)) even if not implemented - replace calls to pr_generic() with req = PRU_SEND with calls to pr_send() rename existing functions that operate on PCB for consistency (and to free up their names for xxx_send() PRUs - l2cap_send() - l2cap_send_pcb() - sco_send() - sco_send_pcb() - rfcomm_send() - rfcomm_send_pcb() patch reviewed by rmind To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/dev/kttcp.c cvs rdiff -u -r1.28 -r1.29 src/sys/dev/bluetooth/bthidev.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/bluetooth/btmagic.c cvs rdiff -u -r1.32 -r1.33 src/sys/dev/bluetooth/btsco.c cvs rdiff -u -r1.231 -r1.232 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.165 -r1.166 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.157 -r1.158 src/sys/net/if_gre.c cvs rdiff -u -r1.21 -r1.22 src/sys/net/link_proto.c cvs rdiff -u -r1.22 -r1.23 src/sys/net/raw_cb.h cvs rdiff -u -r1.49 -r1.50 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.160 -r1.161 src/sys/net/rtsock.c cvs rdiff -u -r1.58 -r1.59 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.37 -r1.38 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.17 -r1.18 src/sys/netbt/l2cap.h src/sys/netbt/l2cap_upper.c cvs rdiff -u -r1.9 -r1.10 src/sys/netbt/l2cap_lower.c cvs rdiff -u -r1.28 -r1.29 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.16 -r1.17 src/sys/netbt/rfcomm.h cvs rdiff -u -r1.22 -r1.23 src/sys/netbt/rfcomm_session.c cvs rdiff -u -r1.30 -r1.31 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.19 -r1.20 src/sys/netbt/rfcomm_upper.c cvs rdiff -u -r1.10 -r1.11 src/sys/netbt/sco.h cvs rdiff -u -r1.15 -r1.16 src/sys/netbt/sco_upper.c cvs rdiff -u -r1.142 -r1.143 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.197 -r1.198 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.214 -r1.215 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.133 -r1.134 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.112 -r1.113 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.40 -r1.41 src/sys/netipsec/keysock.c cvs rdiff -u -r1.21 -r1.22 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.42 -r1.43 src/sys/netnatm/natm.c cvs rdiff -u -r1.191 -r1.192 src/sys/nfs/nfs_socket.c cvs rdiff -u -r1.55 -r1.56 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.57 -r1.58 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/kttcp.c diff -u src/sys/dev/kttcp.c:1.35 src/sys/dev/kttcp.c:1.36 --- src/sys/dev/kttcp.c:1.35 Fri Jul 25 08:10:35 2014 +++ src/sys/dev/kttcp.c Tue Aug 5 07:55:31 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: kttcp.c,v 1.35 2014/07/25 08:10:35 dholland Exp $ */ +/* $NetBSD: kttcp.c,v 1.36 2014/08/05 07:55:31 rtr Exp $ */ /* * Copyright (c) 2002 Wasabi Systems, Inc. @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: kttcp.c,v 1.35 2014/07/25 08:10:35 dholland Exp $); +__KERNEL_RCSID(0, $NetBSD: kttcp.c,v 1.36 2014/08/05 07:55:31 rtr Exp $); #include sys/param.h #include sys/types.h @@ -324,8 +324,8 @@ nopages: error = (*so-so_proto-pr_usrreqs-pr_sendoob)(so, top, NULL); else -error = (*so-so_proto-pr_usrreqs-pr_generic)(so, -PRU_SEND, top, NULL, NULL, l); +error = (*so-so_proto-pr_usrreqs-pr_send)(so, +top, NULL, NULL, l); if (dontroute) so-so_options = ~SO_DONTROUTE; if (resid 0) Index: src/sys/dev/bluetooth/bthidev.c diff -u src/sys/dev/bluetooth/bthidev.c:1.28 src/sys/dev/bluetooth/bthidev.c:1.29 --- src/sys/dev/bluetooth/bthidev.c:1.28 Thu Jul 31 03:39:35 2014 +++ src/sys/dev/bluetooth/bthidev.c Tue Aug 5 07:55:31 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: bthidev.c,v 1.28 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: bthidev.c,v 1.29 2014/08/05 07:55:31 rtr Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD:
CVS commit: src/sys/kern
Module Name:src Committed By: rtr Date: Tue Aug 5 08:52:10 UTC 2014 Modified Files: src/sys/kern: uipc_usrreq.c Log Message: actually use the passed in struct lwp *l instead of curlwp in unp_connect() To generate a diff of this commit: cvs rdiff -u -r1.166 -r1.167 src/sys/kern/uipc_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.166 src/sys/kern/uipc_usrreq.c:1.167 --- src/sys/kern/uipc_usrreq.c:1.166 Tue Aug 5 07:55:31 2014 +++ src/sys/kern/uipc_usrreq.c Tue Aug 5 08:52:10 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.166 2014/08/05 07:55:31 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.167 2014/08/05 08:52:10 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.166 2014/08/05 07:55:31 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.167 2014/08/05 08:52:10 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -1120,7 +1120,7 @@ unp_connect(struct socket *so, struct mb goto bad; } pathbuf_destroy(pb); - if ((error = VOP_ACCESS(vp, VWRITE, curlwp-l_cred)) != 0) + if ((error = VOP_ACCESS(vp, VWRITE, l-l_cred)) != 0) goto bad; /* Acquire v_interlock to protect against unp_detach(). */ mutex_enter(vp-v_interlock); @@ -1162,9 +1162,9 @@ unp_connect(struct socket *so, struct mb unp3-unp_addrlen = unp2-unp_addrlen; } unp3-unp_flags = unp2-unp_flags; - unp3-unp_connid.unp_pid = curlwp-l_proc-p_pid; - unp3-unp_connid.unp_euid = kauth_cred_geteuid(curlwp-l_cred); - unp3-unp_connid.unp_egid = kauth_cred_getegid(curlwp-l_cred); + unp3-unp_connid.unp_pid = l-l_proc-p_pid; + unp3-unp_connid.unp_euid = kauth_cred_geteuid(l-l_cred); + unp3-unp_connid.unp_egid = kauth_cred_getegid(l-l_cred); unp3-unp_flags |= UNP_EIDSVALID; if (unp2-unp_flags UNP_EIDSBIND) { unp-unp_connid = unp2-unp_connid;
CVS commit: src/sys/sys
Module Name:src Committed By: rtr Date: Tue Aug 5 14:02:42 UTC 2014 Modified Files: src/sys/sys: un.h Log Message: whitespace To generate a diff of this commit: cvs rdiff -u -r1.53 -r1.54 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/sys/un.h diff -u src/sys/sys/un.h:1.53 src/sys/sys/un.h:1.54 --- src/sys/sys/un.h:1.53 Tue Aug 5 05:24:27 2014 +++ src/sys/sys/un.h Tue Aug 5 14:02:42 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: un.h,v 1.53 2014/08/05 05:24:27 rtr Exp $ */ +/* $NetBSD: un.h,v 1.54 2014/08/05 14:02:42 rtr Exp $ */ /* * Copyright (c) 1982, 1986, 1993 @@ -79,15 +79,15 @@ struct sockopt; extern const struct pr_usrreqs unp_usrreqs; int uipc_ctloutput(int, struct socket *, struct sockopt *); -void uipc_init (void); -kmutex_t *uipc_dgramlock (void); -kmutex_t *uipc_streamlock (void); -kmutex_t *uipc_rawlock (void); - -int unp_connect (struct socket *, struct mbuf *, struct lwp *); -int unp_connect2 (struct socket *, struct socket *, int); -void unp_dispose (struct mbuf *); -int unp_externalize (struct mbuf *, struct lwp *, int); +void uipc_init(void); +kmutex_t *uipc_dgramlock(void); +kmutex_t *uipc_streamlock(void); +kmutex_t *uipc_rawlock(void); + +int unp_connect(struct socket *, struct mbuf *, struct lwp *); +int unp_connect2(struct socket *, struct socket *, int); +void unp_dispose(struct mbuf *); +int unp_externalize(struct mbuf *, struct lwp *, int); #else /* !_KERNEL */
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Tue Aug 5 05:24:27 UTC 2014 Modified Files: src/sys/kern: uipc_socket.c uipc_usrreq.c src/sys/net: link_proto.c raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: in_pcb.c in_pcb.h raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: in6_pcb.c in6_pcb.h raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h un.h Log Message: revert the removal of struct lwp * parameter from bind, listen and connect user requests. this should resolve the issue relating to nfs client hangs presented recently by wiz on current-users@ To generate a diff of this commit: cvs rdiff -u -r1.230 -r1.231 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.164 -r1.165 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.20 -r1.21 src/sys/net/link_proto.c cvs rdiff -u -r1.48 -r1.49 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.159 -r1.160 src/sys/net/rtsock.c cvs rdiff -u -r1.57 -r1.58 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.36 -r1.37 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.27 -r1.28 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.29 -r1.30 src/sys/netbt/rfcomm_socket.c \ src/sys/netbt/sco_socket.c cvs rdiff -u -r1.150 -r1.151 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.53 -r1.54 src/sys/netinet/in_pcb.h cvs rdiff -u -r1.141 -r1.142 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.195 -r1.196 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.213 -r1.214 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.127 -r1.128 src/sys/netinet6/in6_pcb.c cvs rdiff -u -r1.38 -r1.39 src/sys/netinet6/in6_pcb.h cvs rdiff -u -r1.132 -r1.133 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.111 -r1.112 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.39 -r1.40 src/sys/netipsec/keysock.c cvs rdiff -u -r1.20 -r1.21 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.41 -r1.42 src/sys/netnatm/natm.c cvs rdiff -u -r1.54 -r1.55 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.56 -r1.57 src/sys/sys/protosw.h cvs rdiff -u -r1.52 -r1.53 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.230 src/sys/kern/uipc_socket.c:1.231 --- src/sys/kern/uipc_socket.c:1.230 Thu Jul 31 20:28:59 2014 +++ src/sys/kern/uipc_socket.c Tue Aug 5 05:24:26 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.230 2014/07/31 20:28:59 mrg Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.231 2014/08/05 05:24:26 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.230 2014/07/31 20:28:59 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.231 2014/08/05 05:24:26 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -629,7 +629,7 @@ sobind(struct socket *so, struct mbuf *n int error; solock(so); - error = (*so-so_proto-pr_usrreqs-pr_bind)(so, nam); + error = (*so-so_proto-pr_usrreqs-pr_bind)(so, nam, l); sounlock(so); return error; } @@ -645,7 +645,7 @@ solisten(struct socket *so, int backlog, sounlock(so); return EINVAL; } - error = (*so-so_proto-pr_usrreqs-pr_listen)(so); + error = (*so-so_proto-pr_usrreqs-pr_listen)(so, l); if (error != 0) { sounlock(so); return error; @@ -826,7 +826,7 @@ soconnect(struct socket *so, struct mbuf (error = sodisconnect(so error = EISCONN; else - error = (*so-so_proto-pr_usrreqs-pr_connect)(so, nam); + error = (*so-so_proto-pr_usrreqs-pr_connect)(so, nam, l); return error; } Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.164 src/sys/kern/uipc_usrreq.c:1.165 --- src/sys/kern/uipc_usrreq.c:1.164 Thu Jul 31 14:12:57 2014 +++ src/sys/kern/uipc_usrreq.c Tue Aug 5 05:24:26 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.164 2014/07/31 14:12:57 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.165 2014/08/05 05:24:26 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.164 2014/07/31 14:12:57 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.165 2014/08/05 05:24:26 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -495,7 +495,7 @@ unp_usrreq(struct socket *so, int req, s * intervening control ops, like * another connection. */ - error = unp_connect(so, nam); + error = unp_connect(so, nam, l); } } else { if ((so-so_state SS_ISCONNECTED) == 0) @@ -920,7 +920,7 @@ makeun(struct mbuf *nam, size_t *addrlen } static int -unp_bind(struct socket *so, struct mbuf *nam)
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Sun Aug 3 11:44:52 UTC 2014 Modified Files: src/sys/netinet: raw_ip.c Log Message: req cannot be PRU_SENDOOB here as per KASSERT() earlier in the rip_usrreq() function. - KASSERT(!control || (req == PRU_SEND || req == PRU_SENDOOB)); + KASSERT(!control || (req == PRU_SEND)); To generate a diff of this commit: cvs rdiff -u -r1.140 -r1.141 src/sys/netinet/raw_ip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/raw_ip.c diff -u src/sys/netinet/raw_ip.c:1.140 src/sys/netinet/raw_ip.c:1.141 --- src/sys/netinet/raw_ip.c:1.140 Sat Aug 2 03:55:26 2014 +++ src/sys/netinet/raw_ip.c Sun Aug 3 11:44:52 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.140 2014/08/02 03:55:26 rtr Exp $ */ +/* $NetBSD: raw_ip.c,v 1.141 2014/08/03 11:44:52 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -65,7 +65,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.140 2014/08/02 03:55:26 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.141 2014/08/03 11:44:52 rtr Exp $); #include opt_inet.h #include opt_compat_netbsd.h @@ -770,7 +770,7 @@ rip_usrreq(struct socket *so, int req, s KASSERT(solocked(so)); inp = sotoinpcb(so); - KASSERT(!control || (req == PRU_SEND || req == PRU_SENDOOB)); + KASSERT(!control || (req == PRU_SEND)); if (inp == NULL) { splx(s); return EINVAL;
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Sat Aug 2 03:55:26 UTC 2014 Modified Files: src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c Log Message: restore splsoftnet() in various usrreqs that were removed during the PRU splits. we will properly review removal after the PRU split work is complete. To generate a diff of this commit: cvs rdiff -u -r1.139 -r1.140 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.194 -r1.195 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.212 -r1.213 src/sys/netinet/udp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/raw_ip.c diff -u src/sys/netinet/raw_ip.c:1.139 src/sys/netinet/raw_ip.c:1.140 --- src/sys/netinet/raw_ip.c:1.139 Thu Jul 31 03:39:35 2014 +++ src/sys/netinet/raw_ip.c Sat Aug 2 03:55:26 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.139 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: raw_ip.c,v 1.140 2014/08/02 03:55:26 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -65,7 +65,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.139 2014/07/31 03:39:35 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.140 2014/08/02 03:55:26 rtr Exp $); #include opt_inet.h #include opt_compat_netbsd.h @@ -618,8 +618,8 @@ rip_connect(struct socket *so, struct mb error = rip_connect_pcb(inp, nam); if (! error) soisconnected(so); - splx(s); + return error; } @@ -627,24 +627,33 @@ static int rip_disconnect(struct socket *so) { struct inpcb *inp = sotoinpcb(so); + int s; KASSERT(solocked(so)); KASSERT(inp != NULL); + s = splsoftnet(); soisdisconnected(so); rip_disconnect1(inp); + splx(s); + return 0; } static int rip_shutdown(struct socket *so) { + int s; + KASSERT(solocked(so)); /* * Mark the connection as being incapable of further input. */ + s = splsoftnet(); socantsendmore(so); + splx(s); + return 0; } @@ -676,22 +685,32 @@ rip_stat(struct socket *so, struct stat static int rip_peeraddr(struct socket *so, struct mbuf *nam) { + int s; + KASSERT(solocked(so)); KASSERT(sotoinpcb(so) != NULL); KASSERT(nam != NULL); + s = splsoftnet(); in_setpeeraddr(sotoinpcb(so), nam); + splx(s); + return 0; } static int rip_sockaddr(struct socket *so, struct mbuf *nam) { + int s; + KASSERT(solocked(so)); KASSERT(sotoinpcb(so) != NULL); KASSERT(nam != NULL); + s = splsoftnet(); in_setsockaddr(sotoinpcb(so), nam); + splx(s); + return 0; } Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.194 src/sys/netinet/tcp_usrreq.c:1.195 --- src/sys/netinet/tcp_usrreq.c:1.194 Thu Jul 31 03:39:35 2014 +++ src/sys/netinet/tcp_usrreq.c Sat Aug 2 03:55:26 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.194 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.195 2014/08/02 03:55:26 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -99,7 +99,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.194 2014/07/31 03:39:35 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.195 2014/08/02 03:55:26 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -705,6 +705,7 @@ tcp_accept(struct socket *so, struct mbu struct tcpcb *tp = NULL; int ostate = 0; int error = 0; + int s; KASSERT(solocked(so)); @@ -718,6 +719,7 @@ tcp_accept(struct socket *so, struct mbu * done at higher levels; just return the address * of the peer, storing through addr. */ + s = splsoftnet(); #ifdef INET if (inp) { in_setpeeraddr(inp, nam); @@ -729,6 +731,7 @@ tcp_accept(struct socket *so, struct mbu } #endif tcp_debug_trace(so, tp, ostate, PRU_ACCEPT); + splx(s); return 0; } @@ -773,7 +776,6 @@ tcp_bind(struct socket *so, struct mbuf break; #endif } - tcp_debug_trace(so, tp, ostate, PRU_BIND); splx(s); @@ -786,9 +788,9 @@ tcp_listen(struct socket *so) struct inpcb *inp = NULL; struct in6pcb *in6p = NULL; struct tcpcb *tp = NULL; - int s; int error = 0; int ostate = 0; + int s; KASSERT(solocked(so)); @@ -841,8 +843,6 @@ tcp_connect(struct socket *so, struct mb ostate = tcp_debug_capture(tp, PRU_CONNECT); - s = splsoftnet(); - /* * Initiate connection to peer. * Create a template for use in transmissions on this connection. @@ -850,6 +850,7 @@ tcp_connect(struct socket *so, struct mb * Start keep-alive timer, and seed output sequence space. * Send initial segment on connection. */ + s = splsoftnet(); #ifdef INET if (inp) { if (inp-inp_lport == 0) { @@ -920,9 +921,9 @@ tcp_disconnect(struct socket *so) struct inpcb *inp = NULL; struct in6pcb *in6p = NULL; struct tcpcb *tp = NULL; - int s; int error = 0; int ostate = 0; + int s; KASSERT(solocked(so)); @@ -956,9 +957,9 @@ tcp_shutdown(struct socket *so) struct inpcb *inp = NULL; struct in6pcb *in6p =
CVS commit: src/sys/net
Module Name:src Committed By: rtr Date: Thu Jul 31 13:21:33 UTC 2014 Modified Files: src/sys/net: link_proto.c Log Message: split PRU_CONNECT, PRU_RCVOOB and PRU_SENDOOB into separate functions (all implemented as EOPNOTSUPP). To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/net/link_proto.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/net/link_proto.c diff -u src/sys/net/link_proto.c:1.19 src/sys/net/link_proto.c:1.20 --- src/sys/net/link_proto.c:1.19 Thu Jul 31 03:39:35 2014 +++ src/sys/net/link_proto.c Thu Jul 31 13:21:33 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: link_proto.c,v 1.19 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: link_proto.c,v 1.20 2014/07/31 13:21:33 rtr Exp $ */ /*- * Copyright (c) 1982, 1986, 1993 @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.19 2014/07/31 03:39:35 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.20 2014/07/31 13:21:33 rtr Exp $); #include sys/param.h #include sys/socket.h @@ -53,6 +53,7 @@ static void link_detach(struct socket *) static int link_accept(struct socket *, struct mbuf *); static int link_bind(struct socket *, struct mbuf *); static int link_listen(struct socket *); +static int link_connect(struct socket *, struct mbuf *); static int link_disconnect(struct socket *); static int link_shutdown(struct socket *); static int link_abort(struct socket *); @@ -60,6 +61,8 @@ static int link_ioctl(struct socket *, u static int link_stat(struct socket *, struct stat *); static int link_peeraddr(struct socket *, struct mbuf *); static int link_sockaddr(struct socket *, struct mbuf *); +static int link_recvoob(struct socket *, struct mbuf *, int); +static int link_sendoob(struct socket *, struct mbuf *, struct mbuf *); static int link_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *); static void link_init(void); @@ -76,6 +79,7 @@ static const struct pr_usrreqs link_usrr .pr_accept = link_accept, .pr_bind = link_bind, .pr_listen = link_listen, + .pr_connect = link_connect, .pr_disconnect = link_disconnect, .pr_shutdown = link_shutdown, .pr_abort = link_abort, @@ -83,6 +87,8 @@ static const struct pr_usrreqs link_usrr .pr_stat = link_stat, .pr_peeraddr = link_peeraddr, .pr_sockaddr = link_sockaddr, + .pr_recvoob = link_recvoob, + .pr_sendoob = link_sendoob, .pr_generic = link_usrreq, }; @@ -275,6 +281,14 @@ link_listen(struct socket *so) } static int +link_connect(struct socket *so, struct mbuf *nam) +{ + KASSERT(solocked(so)); + + return EOPNOTSUPP; +} + +static int link_disconnect(struct socket *so) { KASSERT(solocked(so)); @@ -329,6 +343,22 @@ link_sockaddr(struct socket *so, struct } static int +link_recvoob(struct socket *so, struct mbuf *m, int flags) +{ + KASSERT(solocked(so)); + + return EOPNOTSUPP; +} + +static int +link_sendoob(struct socket *so, struct mbuf *m, struct mbuf *control) +{ + KASSERT(solocked(so)); + + return EOPNOTSUPP; +} + +static int link_usrreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct lwp *l) { @@ -337,6 +367,7 @@ link_usrreq(struct socket *so, int req, KASSERT(req != PRU_ACCEPT); KASSERT(req != PRU_BIND); KASSERT(req != PRU_LISTEN); + KASSERT(req != PRU_CONNECT); KASSERT(req != PRU_DISCONNECT); KASSERT(req != PRU_SHUTDOWN); KASSERT(req != PRU_ABORT); @@ -344,6 +375,8 @@ link_usrreq(struct socket *so, int req, KASSERT(req != PRU_SENSE); KASSERT(req != PRU_PEERADDR); KASSERT(req != PRU_SOCKADDR); + KASSERT(req != PRU_RCVOOB); + KASSERT(req != PRU_SENDOOB); return EOPNOTSUPP; }
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Thu Jul 31 14:12:57 UTC 2014 Modified Files: src/sys/kern: uipc_usrreq.c src/sys/sys: un.h Log Message: * remove declarations of unp_bind, unp_discard, unp_disconnect1, unp_drop, unp_shutdown1, unp_internalize and unp_output functions from sys/un.h and instead declare them as static in uipc_usrreq.c with prototype declarations as necessary. * remove struct lwp * parameter from unp_output() while here and just use curlwp instead. as discussed with rmind To generate a diff of this commit: cvs rdiff -u -r1.163 -r1.164 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.51 -r1.52 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.163 src/sys/kern/uipc_usrreq.c:1.164 --- src/sys/kern/uipc_usrreq.c:1.163 Thu Jul 31 03:39:35 2014 +++ src/sys/kern/uipc_usrreq.c Thu Jul 31 14:12:57 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.163 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.164 2014/07/31 14:12:57 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.163 2014/07/31 03:39:35 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.164 2014/07/31 14:12:57 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -170,14 +170,18 @@ const struct sockaddr_un sun_noname = { }; ino_t unp_ino; /* prototype for fake inode numbers */ -static void unp_detach(struct socket *); -struct mbuf *unp_addsockcred(struct lwp *, struct mbuf *); -static void unp_mark(file_t *); -static void unp_scan(struct mbuf *, void (*)(file_t *), int); -static void unp_discard_now(file_t *); -static void unp_discard_later(file_t *); -static void unp_thread(void *); -static void unp_thread_kick(void); +static struct mbuf * unp_addsockcred(struct lwp *, struct mbuf *); +static void unp_discard_later(file_t *); +static void unp_discard_now(file_t *); +static void unp_disconnect1(struct unpcb *); +static bool unp_drop(struct unpcb *, int); +static intunp_internalize(struct mbuf **); +static void unp_mark(file_t *); +static void unp_scan(struct mbuf *, void (*)(file_t *), int); +static void unp_shutdown1(struct unpcb *); +static void unp_thread(void *); +static void unp_thread_kick(void); + static kmutex_t *uipc_lock; static kcondvar_t unp_thread_cv; @@ -296,9 +300,8 @@ unp_free(struct unpcb *unp) kmem_free(unp, sizeof(*unp)); } -int -unp_output(struct mbuf *m, struct mbuf *control, struct unpcb *unp, - struct lwp *l) +static int +unp_output(struct mbuf *m, struct mbuf *control, struct unpcb *unp) { struct socket *so2; const struct sockaddr_un *sun; @@ -315,7 +318,7 @@ unp_output(struct mbuf *m, struct mbuf * else sun = sun_noname; if (unp-unp_conn-unp_flags UNP_WANTCRED) - control = unp_addsockcred(l, control); + control = unp_addsockcred(curlwp, control); if (sbappendaddr(so2-so_rcv, (const struct sockaddr *)sun, m, control) == 0) { so2-so_rcv.sb_overflowed++; @@ -329,7 +332,7 @@ unp_output(struct mbuf *m, struct mbuf * } } -void +static void unp_setaddr(struct socket *so, struct mbuf *nam, bool peeraddr) { const struct sockaddr_un *sun; @@ -505,7 +508,7 @@ unp_usrreq(struct socket *so, int req, s break; } KASSERT(l != NULL); - error = unp_output(m, control, unp, l); + error = unp_output(m, control, unp); if (nam) unp_disconnect1(unp); break; @@ -916,7 +919,7 @@ makeun(struct mbuf *nam, size_t *addrlen return sun; } -int +static int unp_bind(struct socket *so, struct mbuf *nam) { struct sockaddr_un *sun; @@ -1226,7 +1229,7 @@ unp_connect2(struct socket *so, struct s return (0); } -void +static void unp_disconnect1(struct unpcb *unp) { struct unpcb *unp2 = unp-unp_conn; @@ -1266,7 +1269,7 @@ unp_disconnect1(struct unpcb *unp) } } -void +static void unp_shutdown1(struct unpcb *unp) { struct socket *so; @@ -1282,7 +1285,7 @@ unp_shutdown1(struct unpcb *unp) } } -bool +static bool unp_drop(struct unpcb *unp, int errno) { struct socket *so = unp-unp_socket; @@ -1437,7 +1440,7 @@ unp_externalize(struct mbuf *rights, str return error; } -int +static int unp_internalize(struct mbuf **controlp) { filedesc_t *fdescp = curlwp-l_fd; Index: src/sys/sys/un.h diff -u src/sys/sys/un.h:1.51 src/sys/sys/un.h:1.52 --- src/sys/sys/un.h:1.51 Thu Jul 31 03:39:36 2014 +++ src/sys/sys/un.h Thu Jul 31 14:12:57 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: un.h,v 1.51 2014/07/31 03:39:36 rtr Exp $ */ +/* $NetBSD: un.h,v 1.52 2014/07/31 14:12:57 rtr Exp $ */ /* * Copyright (c) 1982, 1986, 1993 @@ -84,19 +84,10 @@ kmutex_t *uipc_dgramlock (void); kmutex_t *uipc_streamlock (void); kmutex_t *uipc_rawlock (void); -int unp_bind (struct
CVS commit: src/sys/netbt
Module Name:src Committed By: rtr Date: Thu Jul 31 15:16:06 UTC 2014 Modified Files: src/sys/netbt: rfcomm_socket.c Log Message: release mbuf on failure of PRU_SEND To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/sys/netbt/rfcomm_socket.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netbt/rfcomm_socket.c diff -u src/sys/netbt/rfcomm_socket.c:1.28 src/sys/netbt/rfcomm_socket.c:1.29 --- src/sys/netbt/rfcomm_socket.c:1.28 Thu Jul 31 03:39:35 2014 +++ src/sys/netbt/rfcomm_socket.c Thu Jul 31 15:16:06 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rfcomm_socket.c,v 1.28 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: rfcomm_socket.c,v 1.29 2014/07/31 15:16:06 rtr Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rfcomm_socket.c,v 1.28 2014/07/31 03:39:35 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: rfcomm_socket.c,v 1.29 2014/07/31 15:16:06 rtr Exp $); /* load symbolic names */ #ifdef BLUETOOTH_DEBUG @@ -360,8 +360,10 @@ rfcomm_usrreq(struct socket *up, int req m_freem(ctl); m0 = m_copypacket(m, M_DONTWAIT); - if (m0 == NULL) - return ENOMEM; + if (m0 == NULL) { + err = ENOMEM; + goto release; + } sbappendstream(up-so_snd, m);
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Wed Jul 30 06:53:53 UTC 2014 Modified Files: src/sys/netinet: tcp_usrreq.c Log Message: put boilerplate extraction of inpcb or in6pcb and tcpcb performed in tcp usrreqs into a function that can be called instead of cut pasting it to every single usrreq function. tcp_getpcb(struct socket *, struct inpcb **, struct in6pcb **, struct tcpcb **) * examines the family of the provided socket and fills in either inpcb or in6pcb and tcpcb. * if the pcb is not present for the family of the socket EINVAL is returned, if the family is not AF_INET{,6} EAFNOSUPPORT is returned. signature provided by and patch reviewed by rmind To generate a diff of this commit: cvs rdiff -u -r1.191 -r1.192 src/sys/netinet/tcp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.191 src/sys/netinet/tcp_usrreq.c:1.192 --- src/sys/netinet/tcp_usrreq.c:1.191 Thu Jul 24 16:02:19 2014 +++ src/sys/netinet/tcp_usrreq.c Wed Jul 30 06:53:53 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.191 2014/07/24 16:02:19 rtr Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.192 2014/07/30 06:53:53 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -99,7 +99,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.191 2014/07/24 16:02:19 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.192 2014/07/30 06:53:53 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -177,6 +177,41 @@ tcp_debug_trace(struct socket *so, struc #endif } +static int +tcp_getpcb(struct socket *so, struct inpcb **inp, +struct in6pcb **in6p, struct tcpcb **tp) +{ + /* + * When a TCP is attached to a socket, then there will be + * a (struct inpcb) pointed at by the socket, and this + * structure will point at a subsidary (struct tcpcb). + */ + switch (so-so_proto-pr_domain-dom_family) { +#ifdef INET + case PF_INET: + *inp = sotoinpcb(so); + if (*inp == NULL) + return EINVAL; + *tp = intotcpcb(*inp); + break; +#endif +#ifdef INET6 + case PF_INET6: + *in6p = sotoin6pcb(so); + if (*in6p == NULL) + return EINVAL; + *tp = in6totcpcb(*in6p); + break; +#endif + default: + return EAFNOSUPPORT; + } + + KASSERT(tp != NULL); + + return 0; +} + /* * Process a TCP user request for TCP tb. If this is a send request * then m is the mbuf chain of send data. If this is a timer expiration @@ -186,15 +221,12 @@ static int tcp_usrreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct lwp *l) { - struct inpcb *inp; -#ifdef INET6 - struct in6pcb *in6p; -#endif + struct inpcb *inp = NULL; + struct in6pcb *in6p = NULL; struct tcpcb *tp = NULL; int s; int error = 0; int ostate = 0; - int family; /* family of the socket */ KASSERT(req != PRU_ATTACH); KASSERT(req != PRU_DETACH); @@ -208,13 +240,11 @@ tcp_usrreq(struct socket *so, int req, s KASSERT(req != PRU_RCVOOB); KASSERT(req != PRU_SENDOOB); - family = so-so_proto-pr_domain-dom_family; - s = splsoftnet(); if (req == PRU_PURGEIF) { mutex_enter(softnet_lock); - switch (family) { + switch (so-so_proto-pr_domain-dom_family) { #ifdef INET case PF_INET: in_pcbpurgeif0(tcbtable, (struct ifnet *)control); @@ -241,57 +271,17 @@ tcp_usrreq(struct socket *so, int req, s KASSERT(solocked(so)); - switch (family) { -#ifdef INET - case PF_INET: - inp = sotoinpcb(so); -#ifdef INET6 - in6p = NULL; -#endif - break; -#endif -#ifdef INET6 - case PF_INET6: - inp = NULL; - in6p = sotoin6pcb(so); - break; -#endif - default: + if ((error = tcp_getpcb(so, inp, in6p, tp)) != 0) { splx(s); - return EAFNOSUPPORT; + return error; } + + ostate = tcp_debug_capture(tp, req); + KASSERT(!control || req == PRU_SEND); #ifdef INET6 /* XXX: KASSERT((inp != NULL) ^ (in6p != NULL)); */ #endif - /* - * When a TCP is attached to a socket, then there will be - * a (struct inpcb) pointed at by the socket, and this - * structure will point at a subsidary (struct tcpcb). - */ - if (inp == NULL -#ifdef INET6 - in6p == NULL -#endif - ) - { - error = EINVAL; - goto release; - } -#ifdef INET - if (inp) { - tp = intotcpcb(inp); - /* WHAT IF TP IS 0? */ - ostate = tcp_debug_capture(tp, req); - } -#endif -#ifdef INET6 - if (in6p) { - tp = in6totcpcb(in6p); - /* WHAT IF TP IS 0? */ - ostate = tcp_debug_capture(tp, req); - } -#endif switch (req) { @@ -435,10 +425,9 @@ tcp_usrreq(struct socket *so, int req, s } tcp_debug_trace(so, tp, ostate, req); - -release: splx(s); - return (error); + + return error; } static void @@ -462,7 +451,6 @@ change_keepalive(struct socket *so, stru TCP_TIMER_ARM(tp, TCPT_2MSL, tp-t_maxidle); } - int tcp_ctloutput(int op, struct socket *so, struct sockopt *sopt) { @@ -788,35 +776,17 @@ out: static
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Wed Jul 30 10:04:26 UTC 2014 Modified Files: src/sys/dev/bluetooth: bthidev.c btmagic.c btsco.c src/sys/kern: uipc_socket.c uipc_usrreq.c src/sys/net: raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap.h l2cap_socket.c l2cap_upper.c rfcomm.h rfcomm_socket.c rfcomm_upper.c sco.h sco_socket.c sco_upper.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h un.h Log Message: split PRU_CONNECT function out of pr_generic() usrreq switches and put into seaparate functions xxx_listen(struct socket *, struct mbuf *) - always KASSERT(solocked(so)) and KASSERT(nam != NULL) - replace calls to pr_generic() with req = PRU_CONNECT with pr_connect() - rename existin {l2cap,sco,rfcomm}_connect() to {l2cap,sco,rfcomm}_connect_pcb() respectively to permit naming consistency with other protocols functions. - drop struct lwp * parameter from unp_connect() and at_pcbconnect() and use curlwp instead where appropriate. patch reviewed by rmind To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/sys/dev/bluetooth/bthidev.c cvs rdiff -u -r1.8 -r1.9 src/sys/dev/bluetooth/btmagic.c cvs rdiff -u -r1.30 -r1.31 src/sys/dev/bluetooth/btsco.c cvs rdiff -u -r1.227 -r1.228 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.161 -r1.162 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.45 -r1.46 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.157 -r1.158 src/sys/net/rtsock.c cvs rdiff -u -r1.55 -r1.56 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.34 -r1.35 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.15 -r1.16 src/sys/netbt/l2cap.h src/sys/netbt/l2cap_upper.c cvs rdiff -u -r1.25 -r1.26 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.14 -r1.15 src/sys/netbt/rfcomm.h cvs rdiff -u -r1.26 -r1.27 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.17 -r1.18 src/sys/netbt/rfcomm_upper.c cvs rdiff -u -r1.8 -r1.9 src/sys/netbt/sco.h cvs rdiff -u -r1.27 -r1.28 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.13 -r1.14 src/sys/netbt/sco_upper.c cvs rdiff -u -r1.136 -r1.137 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.192 -r1.193 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.210 -r1.211 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.129 -r1.130 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.109 -r1.110 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.37 -r1.38 src/sys/netipsec/keysock.c cvs rdiff -u -r1.17 -r1.18 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.39 -r1.40 src/sys/netnatm/natm.c cvs rdiff -u -r1.52 -r1.53 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.54 -r1.55 src/sys/sys/protosw.h cvs rdiff -u -r1.49 -r1.50 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/bluetooth/bthidev.c diff -u src/sys/dev/bluetooth/bthidev.c:1.26 src/sys/dev/bluetooth/bthidev.c:1.27 --- src/sys/dev/bluetooth/bthidev.c:1.26 Thu Jul 24 15:12:03 2014 +++ src/sys/dev/bluetooth/bthidev.c Wed Jul 30 10:04:25 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: bthidev.c,v 1.26 2014/07/24 15:12:03 rtr Exp $ */ +/* $NetBSD: bthidev.c,v 1.27 2014/07/30 10:04:25 rtr Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: bthidev.c,v 1.26 2014/07/24 15:12:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: bthidev.c,v 1.27 2014/07/30 10:04:25 rtr Exp $); #include sys/param.h #include sys/condvar.h @@ -577,9 +577,9 @@ bthidev_connect(struct bthidev_softc *sc sa.bt_psm = sc-sc_ctlpsm; bdaddr_copy(sa.bt_bdaddr, sc-sc_raddr); - err = l2cap_connect(sc-sc_ctl, sa); + err = l2cap_connect_pcb(sc-sc_ctl, sa); if (err) { - aprint_error_dev(sc-sc_dev, l2cap_connect failed (%d)\n, err); + aprint_error_dev(sc-sc_dev, l2cap_connect_pcb failed (%d)\n, err); return err; } @@ -753,7 +753,7 @@ bthidev_ctl_connected(void *arg) sa.bt_psm = sc-sc_intpsm; bdaddr_copy(sa.bt_bdaddr, sc-sc_raddr); - err = l2cap_connect(sc-sc_int, sa); + err = l2cap_connect_pcb(sc-sc_int, sa); if (err) goto fail; } Index: src/sys/dev/bluetooth/btmagic.c diff -u src/sys/dev/bluetooth/btmagic.c:1.8 src/sys/dev/bluetooth/btmagic.c:1.9 --- src/sys/dev/bluetooth/btmagic.c:1.8 Thu Jul 24 15:12:03 2014 +++ src/sys/dev/bluetooth/btmagic.c Wed Jul 30 10:04:25 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: btmagic.c,v 1.8 2014/07/24 15:12:03 rtr Exp $ */ +/* $NetBSD: btmagic.c,v 1.9 2014/07/30 10:04:25 rtr Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -85,7 +85,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: btmagic.c,v 1.8
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Thu Jul 31 03:39:36 UTC 2014 Modified Files: src/sys/dev/bluetooth: bthidev.c btmagic.c btsco.c src/sys/kern: uipc_socket.c uipc_socket2.c uipc_usrreq.c src/sys/net: link_proto.c raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap.h l2cap_socket.c l2cap_upper.c rfcomm.h rfcomm_session.c rfcomm_socket.c rfcomm_upper.c sco.h sco_socket.c sco_upper.c src/sys/netinet: raw_ip.c tcp_usrreq.c tcp_var.h udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h un.h Log Message: split PRU_DISCONNECT, PRU_SHUTDOWN and PRU_ABORT function out of pr_generic() usrreq switches and put into separate functions xxx_disconnect(struct socket *) xxx_shutdown(struct socket *) xxx_abort(struct socket *) - always KASSERT(solocked(so)) even if not implemented - replace calls to pr_generic() with req = PRU_{DISCONNECT,SHUTDOWN,ABORT} with calls to pr_{disconnect,shutdown,abort}() respectively rename existing internal functions used to implement above functionality to permit use of the names for xxx_{disconnect,shutdown,abort}(). - {l2cap,sco,rfcomm}_disconnect() - {l2cap,sco,rfcomm}_disconnect_pcb() - {unp,rip,tcp}_disconnect() - {unp,rip,tcp}_disconnect1() - unp_shutdown() - unp_shutdown1() patch reviewed by rmind To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/dev/bluetooth/bthidev.c cvs rdiff -u -r1.9 -r1.10 src/sys/dev/bluetooth/btmagic.c cvs rdiff -u -r1.31 -r1.32 src/sys/dev/bluetooth/btsco.c cvs rdiff -u -r1.228 -r1.229 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.119 -r1.120 src/sys/kern/uipc_socket2.c cvs rdiff -u -r1.162 -r1.163 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.18 -r1.19 src/sys/net/link_proto.c cvs rdiff -u -r1.46 -r1.47 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.158 -r1.159 src/sys/net/rtsock.c cvs rdiff -u -r1.56 -r1.57 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.35 -r1.36 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.16 -r1.17 src/sys/netbt/l2cap.h src/sys/netbt/l2cap_upper.c cvs rdiff -u -r1.26 -r1.27 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.15 -r1.16 src/sys/netbt/rfcomm.h cvs rdiff -u -r1.21 -r1.22 src/sys/netbt/rfcomm_session.c cvs rdiff -u -r1.27 -r1.28 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.18 -r1.19 src/sys/netbt/rfcomm_upper.c cvs rdiff -u -r1.9 -r1.10 src/sys/netbt/sco.h cvs rdiff -u -r1.28 -r1.29 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.14 -r1.15 src/sys/netbt/sco_upper.c cvs rdiff -u -r1.138 -r1.139 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.193 -r1.194 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.174 -r1.175 src/sys/netinet/tcp_var.h cvs rdiff -u -r1.211 -r1.212 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.131 -r1.132 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.110 -r1.111 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.38 -r1.39 src/sys/netipsec/keysock.c cvs rdiff -u -r1.18 -r1.19 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.40 -r1.41 src/sys/netnatm/natm.c cvs rdiff -u -r1.53 -r1.54 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.55 -r1.56 src/sys/sys/protosw.h cvs rdiff -u -r1.50 -r1.51 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/bluetooth/bthidev.c diff -u src/sys/dev/bluetooth/bthidev.c:1.27 src/sys/dev/bluetooth/bthidev.c:1.28 --- src/sys/dev/bluetooth/bthidev.c:1.27 Wed Jul 30 10:04:25 2014 +++ src/sys/dev/bluetooth/bthidev.c Thu Jul 31 03:39:35 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: bthidev.c,v 1.27 2014/07/30 10:04:25 rtr Exp $ */ +/* $NetBSD: bthidev.c,v 1.28 2014/07/31 03:39:35 rtr Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: bthidev.c,v 1.27 2014/07/30 10:04:25 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: bthidev.c,v 1.28 2014/07/31 03:39:35 rtr Exp $); #include sys/param.h #include sys/condvar.h @@ -370,14 +370,14 @@ bthidev_detach(device_t self, int flags) /* close interrupt channel */ if (sc-sc_int != NULL) { - l2cap_disconnect(sc-sc_int, 0); + l2cap_disconnect_pcb(sc-sc_int, 0); l2cap_detach_pcb(sc-sc_int); sc-sc_int = NULL; } /* close control channel */ if (sc-sc_ctl != NULL) { - l2cap_disconnect(sc-sc_ctl, 0); + l2cap_disconnect_pcb(sc-sc_ctl, 0); l2cap_detach_pcb(sc-sc_ctl); sc-sc_ctl = NULL; } @@ -450,12 +450,12 @@ bthidev_timeout(void *arg) switch (sc-sc_state) { case BTHID_CLOSED: if (sc-sc_int != NULL) { - l2cap_disconnect(sc-sc_int, 0); + l2cap_disconnect_pcb(sc-sc_int, 0); break; } if (sc-sc_ctl != NULL) { - l2cap_disconnect(sc-sc_ctl, 0); + l2cap_disconnect_pcb(sc-sc_ctl, 0);
CVS commit: src/sys/net
Module Name:src Committed By: rtr Date: Thu Jul 31 05:13:53 UTC 2014 Modified Files: src/sys/net: raw_usrreq.c Log Message: fix missed conversion to call to pr_connect() from pr_generic() when PRU_CONNECT split was done. - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, - PRU_CONNECT, NULL, nam, NULL, l); + error = (*so-so_proto-pr_usrreqs-pr_connect)(so, nam); without this change KASSERT() would be triggered if raw send needs to perform a connect. To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/sys/net/raw_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/net/raw_usrreq.c diff -u src/sys/net/raw_usrreq.c:1.47 src/sys/net/raw_usrreq.c:1.48 --- src/sys/net/raw_usrreq.c:1.47 Thu Jul 31 03:39:35 2014 +++ src/sys/net/raw_usrreq.c Thu Jul 31 05:13:53 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_usrreq.c,v 1.47 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: raw_usrreq.c,v 1.48 2014/07/31 05:13:53 rtr Exp $ */ /* * Copyright (c) 1980, 1986, 1993 @@ -36,7 +36,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: raw_usrreq.c,v 1.47 2014/07/31 03:39:35 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: raw_usrreq.c,v 1.48 2014/07/31 05:13:53 rtr Exp $); #include sys/param.h #include sys/mbuf.h @@ -216,8 +216,7 @@ raw_usrreq(struct socket *so, int req, s error = EISCONN; goto die; } - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, - PRU_CONNECT, NULL, nam, NULL, l); + error = (*so-so_proto-pr_usrreqs-pr_connect)(so, nam); if (error) { die: m_freem(m);
CVS commit: src/sys/netmpls
Module Name:src Committed By: rtr Date: Thu Jul 31 05:37:00 UTC 2014 Modified Files: src/sys/netmpls: mpls_proto.c Log Message: add missing KASSERT(req != PRU_XXX) to mpls_usrreq() for PRUs that have already been split. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/netmpls/mpls_proto.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netmpls/mpls_proto.c diff -u src/sys/netmpls/mpls_proto.c:1.19 src/sys/netmpls/mpls_proto.c:1.20 --- src/sys/netmpls/mpls_proto.c:1.19 Thu Jul 31 03:39:35 2014 +++ src/sys/netmpls/mpls_proto.c Thu Jul 31 05:37:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: mpls_proto.c,v 1.19 2014/07/31 03:39:35 rtr Exp $ */ +/* $NetBSD: mpls_proto.c,v 1.20 2014/07/31 05:37:00 rtr Exp $ */ /* * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: mpls_proto.c,v 1.19 2014/07/31 03:39:35 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: mpls_proto.c,v 1.20 2014/07/31 05:37:00 rtr Exp $); #include opt_inet.h #include opt_mbuftrace.h @@ -200,6 +200,23 @@ static int mpls_usrreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct lwp *l) { + + KASSERT(req != PRU_ATTACH); + KASSERT(req != PRU_DETACH); + KASSERT(req != PRU_ACCEPT); + KASSERT(req != PRU_BIND); + KASSERT(req != PRU_LISTEN); + KASSERT(req != PRU_CONNECT); + KASSERT(req != PRU_DISCONNECT); + KASSERT(req != PRU_SHUTDOWN); + KASSERT(req != PRU_ABORT); + KASSERT(req != PRU_CONTROL); + KASSERT(req != PRU_SENSE); + KASSERT(req != PRU_PEERADDR); + KASSERT(req != PRU_SOCKADDR); + KASSERT(req != PRU_RCVOOB); + KASSERT(req != PRU_SENDOOB); + return EOPNOTSUPP; }
CVS commit: src/sys/rump/net/lib/libsockin
Module Name:src Committed By: rtr Date: Mon Jul 28 10:09:51 UTC 2014 Modified Files: src/sys/rump/net/lib/libsockin: sockin.c Log Message: add missing KASSERT()s at the top of sockin_usrreq(), req shall not be either of these operations. KASSERT(req != PRU_BIND); KASSERT(req != PRU_LISTEN); To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/sys/rump/net/lib/libsockin/sockin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/rump/net/lib/libsockin/sockin.c diff -u src/sys/rump/net/lib/libsockin/sockin.c:1.51 src/sys/rump/net/lib/libsockin/sockin.c:1.52 --- src/sys/rump/net/lib/libsockin/sockin.c:1.51 Thu Jul 24 15:12:03 2014 +++ src/sys/rump/net/lib/libsockin/sockin.c Mon Jul 28 10:09:51 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sockin.c,v 1.51 2014/07/24 15:12:03 rtr Exp $ */ +/* $NetBSD: sockin.c,v 1.52 2014/07/28 10:09:51 rtr Exp $ */ /* * Copyright (c) 2008, 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sockin.c,v 1.51 2014/07/24 15:12:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: sockin.c,v 1.52 2014/07/28 10:09:51 rtr Exp $); #include sys/param.h #include sys/condvar.h @@ -558,6 +558,8 @@ sockin_usrreq(struct socket *so, int req int error = 0; KASSERT(req != PRU_ACCEPT); + KASSERT(req != PRU_BIND); + KASSERT(req != PRU_LISTEN); KASSERT(req != PRU_CONTROL); KASSERT(req != PRU_SENSE); KASSERT(req != PRU_PEERADDR);
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Thu Jul 24 15:12:04 UTC 2014 Modified Files: src/sys/dev/bluetooth: bthidev.c btmagic.c btsco.c src/sys/kern: uipc_socket.c uipc_usrreq.c src/sys/net: link_proto.c raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap.h l2cap_socket.c l2cap_upper.c rfcomm.h rfcomm_session.c rfcomm_socket.c rfcomm_upper.c sco.h sco_socket.c sco_upper.c src/sys/netinet: in_pcb.c in_pcb.h raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: in6_pcb.c in6_pcb.h raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: param.h protosw.h un.h Log Message: split PRU_BIND and PRU_LISTEN function out of pr_generic() usrreq switches and put into separate functions xxx_bind(struct socket *, struct mbuf *) xxx_listen(struct socket *) - always KASSERT(solocked(so)) even if not implemented - replace calls to pr_generic() with req = PRU_BIND with call to pr_bind() - replace calls to pr_generic() with req = PRU_LISTEN with call to pr_listen() - drop struct lwp * parameter from at_pcbsetaddr(), in_pcbbind() and unp_bind() and always use curlwp. rename existing functions that operate on PCB for consistency (and to free up their names for xxx_{bind,listen}() PRUs - l2cap_{bind,listen}() - l2cap_{bind,listen}_pcb() - sco_{bind,listen}() - sco_{bind,listen}_pcb() - rfcomm_{bind,listen}() - rfcomm_{bind,listen}_pcb() patch reviewed by rmind welcome to netbsd 6.99.48 To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/sys/dev/bluetooth/bthidev.c cvs rdiff -u -r1.7 -r1.8 src/sys/dev/bluetooth/btmagic.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/bluetooth/btsco.c cvs rdiff -u -r1.226 -r1.227 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.160 -r1.161 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.17 -r1.18 src/sys/net/link_proto.c cvs rdiff -u -r1.44 -r1.45 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.156 -r1.157 src/sys/net/rtsock.c cvs rdiff -u -r1.54 -r1.55 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.33 -r1.34 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.14 -r1.15 src/sys/netbt/l2cap.h src/sys/netbt/l2cap_upper.c cvs rdiff -u -r1.24 -r1.25 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.13 -r1.14 src/sys/netbt/rfcomm.h cvs rdiff -u -r1.20 -r1.21 src/sys/netbt/rfcomm_session.c cvs rdiff -u -r1.25 -r1.26 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.16 -r1.17 src/sys/netbt/rfcomm_upper.c cvs rdiff -u -r1.7 -r1.8 src/sys/netbt/sco.h cvs rdiff -u -r1.26 -r1.27 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.12 -r1.13 src/sys/netbt/sco_upper.c cvs rdiff -u -r1.148 -r1.149 src/sys/netinet/in_pcb.c cvs rdiff -u -r1.52 -r1.53 src/sys/netinet/in_pcb.h cvs rdiff -u -r1.135 -r1.136 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.189 -r1.190 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.209 -r1.210 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.125 -r1.126 src/sys/netinet6/in6_pcb.c cvs rdiff -u -r1.37 -r1.38 src/sys/netinet6/in6_pcb.h cvs rdiff -u -r1.128 -r1.129 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.108 -r1.109 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.36 -r1.37 src/sys/netipsec/keysock.c cvs rdiff -u -r1.16 -r1.17 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.38 -r1.39 src/sys/netnatm/natm.c cvs rdiff -u -r1.50 -r1.51 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.457 -r1.458 src/sys/sys/param.h cvs rdiff -u -r1.53 -r1.54 src/sys/sys/protosw.h cvs rdiff -u -r1.48 -r1.49 src/sys/sys/un.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/bluetooth/bthidev.c diff -u src/sys/dev/bluetooth/bthidev.c:1.25 src/sys/dev/bluetooth/bthidev.c:1.26 --- src/sys/dev/bluetooth/bthidev.c:1.25 Tue May 20 18:25:54 2014 +++ src/sys/dev/bluetooth/bthidev.c Thu Jul 24 15:12:03 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: bthidev.c,v 1.25 2014/05/20 18:25:54 rmind Exp $ */ +/* $NetBSD: bthidev.c,v 1.26 2014/07/24 15:12:03 rtr Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: bthidev.c,v 1.25 2014/05/20 18:25:54 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: bthidev.c,v 1.26 2014/07/24 15:12:03 rtr Exp $); #include sys/param.h #include sys/condvar.h @@ -508,11 +508,11 @@ bthidev_listen(struct bthidev_softc *sc) return err; sa.bt_psm = sc-sc_ctlpsm; - err = l2cap_bind(sc-sc_ctl_l, sa); + err = l2cap_bind_pcb(sc-sc_ctl_l, sa); if (err) return err; - err = l2cap_listen(sc-sc_ctl_l); + err = l2cap_listen_pcb(sc-sc_ctl_l); if (err) return err; @@ -528,11 +528,11 @@ bthidev_listen(struct bthidev_softc *sc) return err; sa.bt_psm = sc-sc_intpsm; - err = l2cap_bind(sc-sc_int_l, sa); + err = l2cap_bind_pcb(sc-sc_int_l, sa); if (err)
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Thu Jul 24 16:02:19 UTC 2014 Modified Files: src/sys/netinet: tcp_usrreq.c Log Message: cleanup after last commit - add KASSERT(req != PRU_BIND) and KASSERT(req != PRU_LISTEN) inside tcp_usrreq() as these reqs should no longer reach here. - remove (now unreachable) PRU_LISTEN case in switch. To generate a diff of this commit: cvs rdiff -u -r1.190 -r1.191 src/sys/netinet/tcp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.190 src/sys/netinet/tcp_usrreq.c:1.191 --- src/sys/netinet/tcp_usrreq.c:1.190 Thu Jul 24 15:12:03 2014 +++ src/sys/netinet/tcp_usrreq.c Thu Jul 24 16:02:19 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.190 2014/07/24 15:12:03 rtr Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.191 2014/07/24 16:02:19 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -99,7 +99,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.190 2014/07/24 15:12:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.191 2014/07/24 16:02:19 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -199,6 +199,8 @@ tcp_usrreq(struct socket *so, int req, s KASSERT(req != PRU_ATTACH); KASSERT(req != PRU_DETACH); KASSERT(req != PRU_ACCEPT); + KASSERT(req != PRU_BIND); + KASSERT(req != PRU_LISTEN); KASSERT(req != PRU_CONTROL); KASSERT(req != PRU_SENSE); KASSERT(req != PRU_PEERADDR); @@ -294,27 +296,6 @@ tcp_usrreq(struct socket *so, int req, s switch (req) { /* - * Prepare to accept connections. - */ - case PRU_LISTEN: -#ifdef INET - if (inp inp-inp_lport == 0) { - error = in_pcbbind(inp, NULL); - if (error) -break; - } -#endif -#ifdef INET6 - if (in6p in6p-in6p_lport == 0) { - error = in6_pcbbind(in6p, NULL); - if (error) -break; - } -#endif - tp-t_state = TCPS_LISTEN; - break; - - /* * Initiate connection to peer. * Create a template for use in transmissions on this connection. * Enter SYN_SENT state, and mark socket as connecting.
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Wed Jul 23 13:17:19 UTC 2014 Modified Files: src/sys/dev: kttcp.c src/sys/kern: uipc_socket.c uipc_usrreq.c src/sys/net: raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h Log Message: split PRU_SENDOOB and PRU_RCVOOB function out of pr_generic() usrreq switches and put into separate functions xxx_sendoob(struct socket *, struct mbuf *, struct mbuf *) xxx_recvoob(struct socket *, struct mbuf *, int) - always KASSERT(solocked(so)) even if request is not implemented - replace calls to pr_generic() with req = PRU_{SEND,RCV}OOB with calls to pr_{send,recv}oob() respectively. there is still some tweaking of m_freem(m) and m_freem(control) to come for consistency. not performed with this commit for clarity. reviewed by rmind To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/dev/kttcp.c cvs rdiff -u -r1.225 -r1.226 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.159 -r1.160 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.43 -r1.44 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.155 -r1.156 src/sys/net/rtsock.c cvs rdiff -u -r1.53 -r1.54 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.32 -r1.33 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.23 -r1.24 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.24 -r1.25 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.25 -r1.26 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.134 -r1.135 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.188 -r1.189 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.208 -r1.209 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.127 -r1.128 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.107 -r1.108 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.35 -r1.36 src/sys/netipsec/keysock.c cvs rdiff -u -r1.15 -r1.16 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.37 -r1.38 src/sys/netnatm/natm.c cvs rdiff -u -r1.49 -r1.50 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.52 -r1.53 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/kttcp.c diff -u src/sys/dev/kttcp.c:1.33 src/sys/dev/kttcp.c:1.34 --- src/sys/dev/kttcp.c:1.33 Sun May 18 14:46:15 2014 +++ src/sys/dev/kttcp.c Wed Jul 23 13:17:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: kttcp.c,v 1.33 2014/05/18 14:46:15 rmind Exp $ */ +/* $NetBSD: kttcp.c,v 1.34 2014/07/23 13:17:18 rtr Exp $ */ /* * Copyright (c) 2002 Wasabi Systems, Inc. @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: kttcp.c,v 1.33 2014/05/18 14:46:15 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: kttcp.c,v 1.34 2014/07/23 13:17:18 rtr Exp $); #include sys/param.h #include sys/types.h @@ -319,9 +319,12 @@ nopages: so-so_options |= SO_DONTROUTE; if (resid 0) so-so_state |= SS_MORETOCOME; - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, - (flags MSG_OOB) ? PRU_SENDOOB : PRU_SEND, - top, NULL, NULL, l); + if (flags MSG_OOB) +error = (*so-so_proto-pr_usrreqs-pr_sendoob)(so, +top, NULL); + else +error = (*so-so_proto-pr_usrreqs-pr_generic)(so, +PRU_SEND, top, NULL, NULL, l); if (dontroute) so-so_options = ~SO_DONTROUTE; if (resid 0) @@ -367,8 +370,7 @@ kttcp_soreceive(struct socket *so, unsig if (flags MSG_OOB) { m = m_get(M_WAIT, MT_DATA); solock(so); - error = (*pr-pr_usrreqs-pr_generic)(so, PRU_RCVOOB, m, - (struct mbuf *)(long)(flags MSG_PEEK), NULL, NULL); + error = (*pr-pr_usrreqs-pr_recvoob)(so, m, flags MSG_PEEK); sounlock(so); if (error) goto bad; Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.225 src/sys/kern/uipc_socket.c:1.226 --- src/sys/kern/uipc_socket.c:1.225 Wed Jul 9 14:41:42 2014 +++ src/sys/kern/uipc_socket.c Wed Jul 23 13:17:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.225 2014/07/09 14:41:42 rtr Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.226 2014/07/23 13:17:18 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.225 2014/07/09 14:41:42 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.226 2014/07/23 13:17:18 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -1053,9 +1053,12 @@ sosend(struct socket *so, struct mbuf *a so-so_options |= SO_DONTROUTE; if (resid 0) so-so_state |= SS_MORETOCOME; - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, - (flags MSG_OOB) ? PRU_SENDOOB : PRU_SEND, - top, addr,
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Mon Jul 14 13:20:41 UTC 2014 Modified Files: src/sys/netinet: tcp_usrreq.c Log Message: pr_generic() for req = PRU_RCVOOB is always called with control == NULL so don't bother with a conditional block that handles non-NULL, it doesn't happen. To generate a diff of this commit: cvs rdiff -u -r1.187 -r1.188 src/sys/netinet/tcp_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.187 src/sys/netinet/tcp_usrreq.c:1.188 --- src/sys/netinet/tcp_usrreq.c:1.187 Thu Jul 10 14:05:19 2014 +++ src/sys/netinet/tcp_usrreq.c Mon Jul 14 13:20:41 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.187 2014/07/10 14:05:19 rmind Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.188 2014/07/14 13:20:41 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -99,7 +99,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.187 2014/07/10 14:05:19 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: tcp_usrreq.c,v 1.188 2014/07/14 13:20:41 rtr Exp $); #include opt_inet.h #include opt_ipsec.h @@ -473,12 +473,6 @@ tcp_usrreq(struct socket *so, int req, s break; case PRU_RCVOOB: - if (control control-m_len) { - m_freem(control); - m_freem(m); - error = EINVAL; - break; - } if ((so-so_oobmark == 0 (so-so_state SS_RCVATMARK) == 0) || so-so_options SO_OOBINLINE ||
CVS commit: src/sys/netinet
Module Name:src Committed By: rtr Date: Mon Jul 14 13:39:18 UTC 2014 Modified Files: src/sys/netinet: raw_ip.c Log Message: fix fat fingered KASSERT(solocked(0)) - KASSERT(solocked(so)) mistake. spotted by Takahiro HAYASHI To generate a diff of this commit: cvs rdiff -u -r1.133 -r1.134 src/sys/netinet/raw_ip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netinet/raw_ip.c diff -u src/sys/netinet/raw_ip.c:1.133 src/sys/netinet/raw_ip.c:1.134 --- src/sys/netinet/raw_ip.c:1.133 Wed Jul 9 14:41:42 2014 +++ src/sys/netinet/raw_ip.c Mon Jul 14 13:39:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.133 2014/07/09 14:41:42 rtr Exp $ */ +/* $NetBSD: raw_ip.c,v 1.134 2014/07/14 13:39:18 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -65,7 +65,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.133 2014/07/09 14:41:42 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: raw_ip.c,v 1.134 2014/07/14 13:39:18 rtr Exp $); #include opt_inet.h #include opt_compat_netbsd.h @@ -594,7 +594,7 @@ rip_stat(struct socket *so, struct stat static int rip_peeraddr(struct socket *so, struct mbuf *nam) { - KASSERT(solocked(0)); + KASSERT(solocked(so)); KASSERT(sotoinpcb(so) != NULL); KASSERT(nam != NULL); @@ -605,7 +605,7 @@ rip_peeraddr(struct socket *so, struct m static int rip_sockaddr(struct socket *so, struct mbuf *nam) { - KASSERT(solocked(0)); + KASSERT(solocked(so)); KASSERT(sotoinpcb(so) != NULL); KASSERT(nam != NULL);
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Wed Jul 9 14:41:43 UTC 2014 Modified Files: src/sys/kern: uipc_socket.c uipc_usrreq.c src/sys/net: if_mpls.c raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h Log Message: * split PRU_ACCEPT function out of pr_generic() usrreq switches and put into a separate function xxx_accept(struct socket *, struct mbuf *) note: future cleanup will take place to remove struct mbuf parameter type and replace it with a more appropriate type. patch reviewed by rmind To generate a diff of this commit: cvs rdiff -u -r1.224 -r1.225 src/sys/kern/uipc_socket.c cvs rdiff -u -r1.158 -r1.159 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.14 -r1.15 src/sys/net/if_mpls.c cvs rdiff -u -r1.42 -r1.43 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.154 -r1.155 src/sys/net/rtsock.c cvs rdiff -u -r1.52 -r1.53 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.31 -r1.32 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.22 -r1.23 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.23 -r1.24 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.24 -r1.25 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.132 -r1.133 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.185 -r1.186 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.207 -r1.208 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.126 -r1.127 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.106 -r1.107 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.34 -r1.35 src/sys/netipsec/keysock.c cvs rdiff -u -r1.14 -r1.15 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.36 -r1.37 src/sys/netnatm/natm.c cvs rdiff -u -r1.47 -r1.48 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.51 -r1.52 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_socket.c diff -u src/sys/kern/uipc_socket.c:1.224 src/sys/kern/uipc_socket.c:1.225 --- src/sys/kern/uipc_socket.c:1.224 Mon May 19 02:51:24 2014 +++ src/sys/kern/uipc_socket.c Wed Jul 9 14:41:42 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.224 2014/05/19 02:51:24 rmind Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.225 2014/07/09 14:41:42 rtr Exp $ */ /*- * Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.224 2014/05/19 02:51:24 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_socket.c,v 1.225 2014/07/09 14:41:42 rtr Exp $); #include opt_compat_netbsd.h #include opt_sock_counters.h @@ -802,8 +802,7 @@ soaccept(struct socket *so, struct mbuf so-so_state = ~SS_NOFDREF; if ((so-so_state SS_ISDISCONNECTED) == 0 || (so-so_proto-pr_flags PR_ABRTACPTDIS) == 0) - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, - PRU_ACCEPT, NULL, nam, NULL, NULL); + error = (*so-so_proto-pr_usrreqs-pr_accept)(so, nam); else error = ECONNABORTED; Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.158 src/sys/kern/uipc_usrreq.c:1.159 --- src/sys/kern/uipc_usrreq.c:1.158 Wed Jul 9 04:54:03 2014 +++ src/sys/kern/uipc_usrreq.c Wed Jul 9 14:41:42 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.158 2014/07/09 04:54:03 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.159 2014/07/09 14:41:42 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.158 2014/07/09 04:54:03 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.159 2014/07/09 14:41:42 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -376,6 +376,7 @@ unp_usrreq(struct socket *so, int req, s KASSERT(req != PRU_ATTACH); KASSERT(req != PRU_DETACH); + KASSERT(req != PRU_ACCEPT); KASSERT(req != PRU_CONTROL); KASSERT(req != PRU_SENSE); KASSERT(req != PRU_PEERADDR); @@ -419,56 +420,6 @@ unp_usrreq(struct socket *so, int req, s unp_disconnect(unp); break; - case PRU_ACCEPT: - KASSERT(so-so_lock == uipc_lock); - /* - * Mark the initiating STREAM socket as connected *ONLY* - * after it's been accepted. This prevents a client from - * overrunning a server and receiving ECONNREFUSED. - */ - if (unp-unp_conn == NULL) { - /* - * This will use the empty socket and will not - * allocate. - */ - unp_setaddr(so, nam, true); - break; - } - so2 = unp-unp_conn-unp_socket; - if (so2-so_state SS_ISCONNECTING) { - KASSERT(solocked2(so, so-so_head)); - KASSERT(solocked2(so2, so-so_head)); - soisconnected(so2); - } - /* - * If the connection is fully
CVS commit: src/sys/rump/net/lib/libsockin
Module Name:src Committed By: rtr Date: Wed Jul 9 15:37:55 UTC 2014 Modified Files: src/sys/rump/net/lib/libsockin: sockin.c Log Message: fix name clash i introduced when adding sockin_accept() pru by renaming the rump sockin_accept(struct socket *) to sockin_waccept(struct socket *) not a very creative name the 'w' indicates worker and was chosen to prefix the word accept to make it not pattern match with _accept. if someone prefers a different name then please feel free to change it. To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/sys/rump/net/lib/libsockin/sockin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/rump/net/lib/libsockin/sockin.c diff -u src/sys/rump/net/lib/libsockin/sockin.c:1.48 src/sys/rump/net/lib/libsockin/sockin.c:1.49 --- src/sys/rump/net/lib/libsockin/sockin.c:1.48 Wed Jul 9 14:41:43 2014 +++ src/sys/rump/net/lib/libsockin/sockin.c Wed Jul 9 15:37:55 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sockin.c,v 1.48 2014/07/09 14:41:43 rtr Exp $ */ +/* $NetBSD: sockin.c,v 1.49 2014/07/09 15:37:55 rtr Exp $ */ /* * Copyright (c) 2008, 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sockin.c,v 1.48 2014/07/09 14:41:43 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: sockin.c,v 1.49 2014/07/09 15:37:55 rtr Exp $); #include sys/param.h #include sys/condvar.h @@ -284,7 +284,7 @@ sockin_process(struct socket *so) } static void -sockin_accept(struct socket *so) +sockin_waccept(struct socket *so) { struct socket *nso; struct sockaddr_in6 sin; @@ -363,7 +363,7 @@ sockinworker(void *arg) so = su_iter-su_so; mutex_exit(su_mtx); if(so-so_optionsSO_ACCEPTCONN) - sockin_accept(so); + sockin_waccept(so); else sockin_process(so); mutex_enter(su_mtx);
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Mon Jul 7 07:09:59 UTC 2014 Modified Files: src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c Log Message: * have pr_stat return EOPNOTSUPP consistently for all protocols that do not fill in struct stat instead of returning success. * in pr_stat remove all checks for non-NULL so-so_pcb except where the pcb is actually used (i.e. cases where we don't return EOPNOTSUPP). proposed on tech-net@ To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.27 -r1.28 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.18 -r1.19 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.19 -r1.20 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.20 -r1.21 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.128 -r1.129 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.181 -r1.182 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.203 -r1.204 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.122 -r1.123 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.102 -r1.103 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.30 -r1.31 src/sys/netipsec/keysock.c cvs rdiff -u -r1.32 -r1.33 src/sys/netnatm/natm.c cvs rdiff -u -r1.43 -r1.44 src/sys/rump/net/lib/libsockin/sockin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.48 src/sys/netatalk/ddp_usrreq.c:1.49 --- src/sys/netatalk/ddp_usrreq.c:1.48 Sun Jul 6 03:33:33 2014 +++ src/sys/netatalk/ddp_usrreq.c Mon Jul 7 07:09:58 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.48 2014/07/06 03:33:33 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.49 2014/07/07 07:09:58 rtr Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.48 2014/07/06 03:33:33 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.49 2014/07/07 07:09:58 rtr Exp $); #include opt_mbuftrace.h @@ -481,14 +481,7 @@ ddp_ioctl(struct socket *so, u_long cmd, static int ddp_stat(struct socket *so, struct stat *ub) { - struct ddpcb *ddp; - - ddp = sotoddpcb(so); - if (ddp == NULL) - return EINVAL; - - /* Don't return block size. */ - return 0; + return EOPNOTSUPP; } /* Index: src/sys/netbt/hci_socket.c diff -u src/sys/netbt/hci_socket.c:1.27 src/sys/netbt/hci_socket.c:1.28 --- src/sys/netbt/hci_socket.c:1.27 Sun Jul 6 03:33:33 2014 +++ src/sys/netbt/hci_socket.c Mon Jul 7 07:09:58 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: hci_socket.c,v 1.27 2014/07/06 03:33:33 rtr Exp $ */ +/* $NetBSD: hci_socket.c,v 1.28 2014/07/07 07:09:58 rtr Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: hci_socket.c,v 1.27 2014/07/06 03:33:33 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: hci_socket.c,v 1.28 2014/07/07 07:09:58 rtr Exp $); /* load symbolic names */ #ifdef BLUETOOTH_DEBUG @@ -496,12 +496,7 @@ hci_ioctl(struct socket *up, u_long cmd, static int hci_stat(struct socket *so, struct stat *ub) { - struct hci_pcb *pcb = (struct hci_pcb *)so-so_pcb; - - if (pcb == NULL) - return EINVAL; - - return 0; + return EOPNOTSUPP; } /* Index: src/sys/netbt/l2cap_socket.c diff -u src/sys/netbt/l2cap_socket.c:1.18 src/sys/netbt/l2cap_socket.c:1.19 --- src/sys/netbt/l2cap_socket.c:1.18 Sun Jul 6 03:33:33 2014 +++ src/sys/netbt/l2cap_socket.c Mon Jul 7 07:09:58 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: l2cap_socket.c,v 1.18 2014/07/06 03:33:33 rtr Exp $ */ +/* $NetBSD: l2cap_socket.c,v 1.19 2014/07/07 07:09:58 rtr Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: l2cap_socket.c,v 1.18 2014/07/06 03:33:33 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: l2cap_socket.c,v 1.19 2014/07/07 07:09:58 rtr Exp $); /* load symbolic names */ #ifdef BLUETOOTH_DEBUG @@ -125,12 +125,7 @@ l2cap_ioctl(struct socket *up, u_long cm static int l2cap_stat(struct socket *so, struct stat *ub) { - struct l2cap_channel *pcb = so-so_pcb; - - if (pcb == NULL) - return EINVAL; - - return 0; + return EOPNOTSUPP; } /* Index: src/sys/netbt/rfcomm_socket.c diff -u src/sys/netbt/rfcomm_socket.c:1.19 src/sys/netbt/rfcomm_socket.c:1.20 --- src/sys/netbt/rfcomm_socket.c:1.19 Sun Jul 6 03:33:33 2014 +++ src/sys/netbt/rfcomm_socket.c Mon Jul 7 07:09:58 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rfcomm_socket.c,v 1.19 2014/07/06 03:33:33 rtr Exp $ */ +/* $NetBSD: rfcomm_socket.c,v 1.20 2014/07/07 07:09:58 rtr Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -32,7 +32,7 @@ */ #include
CVS commit: src/sys/net
Module Name:src Committed By: rtr Date: Mon Jul 7 10:18:20 UTC 2014 Modified Files: src/sys/net: rtsock.c Log Message: return EOPNOTSUPP for pr_stat instead of returning success since we don't fill in the struct stat passed to us. To generate a diff of this commit: cvs rdiff -u -r1.150 -r1.151 src/sys/net/rtsock.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/net/rtsock.c diff -u src/sys/net/rtsock.c:1.150 src/sys/net/rtsock.c:1.151 --- src/sys/net/rtsock.c:1.150 Sun Jul 6 03:33:33 2014 +++ src/sys/net/rtsock.c Mon Jul 7 10:18:20 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rtsock.c,v 1.150 2014/07/06 03:33:33 rtr Exp $ */ +/* $NetBSD: rtsock.c,v 1.151 2014/07/07 10:18:20 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rtsock.c,v 1.150 2014/07/06 03:33:33 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: rtsock.c,v 1.151 2014/07/07 10:18:20 rtr Exp $); #ifdef _KERNEL_OPT #include opt_inet.h @@ -233,7 +233,7 @@ COMPATNAME(route_ioctl)(struct socket *s static int COMPATNAME(route_stat)(struct socket *so, struct stat *ub) { - return 0; + return EOPNOTSUPP; } static int
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Mon Jul 7 15:13:22 UTC 2014 Modified Files: src/sys/net: rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c Log Message: backout change that made pr_stat return EOPNOTSUPP for protocols that were not filling in struct stat. decision made after further discussion with rmind and investigation of how other operating systems behave. soo_stat() is doing just enough to be able to call what gets returned valid and thus justifys a return of success. additional review will be done to determine of the pr_stat functions that were already returning EOPNOTSUPP can be considered successful with what soo_stat() is doing. To generate a diff of this commit: cvs rdiff -u -r1.151 -r1.152 src/sys/net/rtsock.c cvs rdiff -u -r1.49 -r1.50 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.28 -r1.29 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.19 -r1.20 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.20 -r1.21 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.21 -r1.22 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.129 -r1.130 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.182 -r1.183 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.204 -r1.205 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.123 -r1.124 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.103 -r1.104 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.31 -r1.32 src/sys/netipsec/keysock.c cvs rdiff -u -r1.33 -r1.34 src/sys/netnatm/natm.c cvs rdiff -u -r1.44 -r1.45 src/sys/rump/net/lib/libsockin/sockin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/net/rtsock.c diff -u src/sys/net/rtsock.c:1.151 src/sys/net/rtsock.c:1.152 --- src/sys/net/rtsock.c:1.151 Mon Jul 7 10:18:20 2014 +++ src/sys/net/rtsock.c Mon Jul 7 15:13:21 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rtsock.c,v 1.151 2014/07/07 10:18:20 rtr Exp $ */ +/* $NetBSD: rtsock.c,v 1.152 2014/07/07 15:13:21 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rtsock.c,v 1.151 2014/07/07 10:18:20 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: rtsock.c,v 1.152 2014/07/07 15:13:21 rtr Exp $); #ifdef _KERNEL_OPT #include opt_inet.h @@ -233,7 +233,7 @@ COMPATNAME(route_ioctl)(struct socket *s static int COMPATNAME(route_stat)(struct socket *so, struct stat *ub) { - return EOPNOTSUPP; + return 0; } static int Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.49 src/sys/netatalk/ddp_usrreq.c:1.50 --- src/sys/netatalk/ddp_usrreq.c:1.49 Mon Jul 7 07:09:58 2014 +++ src/sys/netatalk/ddp_usrreq.c Mon Jul 7 15:13:21 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.49 2014/07/07 07:09:58 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.50 2014/07/07 15:13:21 rtr Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.49 2014/07/07 07:09:58 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.50 2014/07/07 15:13:21 rtr Exp $); #include opt_mbuftrace.h @@ -481,7 +481,8 @@ ddp_ioctl(struct socket *so, u_long cmd, static int ddp_stat(struct socket *so, struct stat *ub) { - return EOPNOTSUPP; + /* stat: don't bother with a blocksize. */ + return 0; } /* Index: src/sys/netbt/hci_socket.c diff -u src/sys/netbt/hci_socket.c:1.28 src/sys/netbt/hci_socket.c:1.29 --- src/sys/netbt/hci_socket.c:1.28 Mon Jul 7 07:09:58 2014 +++ src/sys/netbt/hci_socket.c Mon Jul 7 15:13:21 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: hci_socket.c,v 1.28 2014/07/07 07:09:58 rtr Exp $ */ +/* $NetBSD: hci_socket.c,v 1.29 2014/07/07 15:13:21 rtr Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: hci_socket.c,v 1.28 2014/07/07 07:09:58 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: hci_socket.c,v 1.29 2014/07/07 15:13:21 rtr Exp $); /* load symbolic names */ #ifdef BLUETOOTH_DEBUG @@ -496,7 +496,7 @@ hci_ioctl(struct socket *up, u_long cmd, static int hci_stat(struct socket *so, struct stat *ub) { - return EOPNOTSUPP; + return 0; } /* Index: src/sys/netbt/l2cap_socket.c diff -u src/sys/netbt/l2cap_socket.c:1.19 src/sys/netbt/l2cap_socket.c:1.20 --- src/sys/netbt/l2cap_socket.c:1.19 Mon Jul 7 07:09:58 2014 +++ src/sys/netbt/l2cap_socket.c Mon Jul 7 15:13:21 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: l2cap_socket.c,v 1.19 2014/07/07 07:09:58 rtr Exp $ */ +/* $NetBSD: l2cap_socket.c,v 1.20 2014/07/07 15:13:21 rtr Exp $ */ /*- * Copyright (c) 2005 Iain Hibbert. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Mon Jul 7 17:13:57 UTC 2014 Modified Files: src/sys/kern: uipc_usrreq.c src/sys/net: link_proto.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c Log Message: * sprinkle KASSERT(solocked(so)); in all pr_stat() functions. * fix remaining inconsistent struct socket parameter names. To generate a diff of this commit: cvs rdiff -u -r1.156 -r1.157 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.13 -r1.14 src/sys/net/link_proto.c cvs rdiff -u -r1.152 -r1.153 src/sys/net/rtsock.c cvs rdiff -u -r1.50 -r1.51 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.29 -r1.30 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.20 -r1.21 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.21 -r1.22 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.22 -r1.23 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.130 -r1.131 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.183 -r1.184 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.205 -r1.206 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.124 -r1.125 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.104 -r1.105 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.32 -r1.33 src/sys/netipsec/keysock.c cvs rdiff -u -r1.12 -r1.13 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.34 -r1.35 src/sys/netnatm/natm.c cvs rdiff -u -r1.45 -r1.46 src/sys/rump/net/lib/libsockin/sockin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.156 src/sys/kern/uipc_usrreq.c:1.157 --- src/sys/kern/uipc_usrreq.c:1.156 Sun Jul 6 03:33:33 2014 +++ src/sys/kern/uipc_usrreq.c Mon Jul 7 17:13:56 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.156 2014/07/06 03:33:33 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.157 2014/07/07 17:13:56 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.156 2014/07/06 03:33:33 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.157 2014/07/07 17:13:56 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -854,6 +854,8 @@ unp_stat(struct socket *so, struct stat struct unpcb *unp; struct socket *so2; + KASSERT(solocked(so)); + unp = sotounpcb(so); if (unp == NULL) return EINVAL; Index: src/sys/net/link_proto.c diff -u src/sys/net/link_proto.c:1.13 src/sys/net/link_proto.c:1.14 --- src/sys/net/link_proto.c:1.13 Sun Jul 6 16:06:19 2014 +++ src/sys/net/link_proto.c Mon Jul 7 17:13:56 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: link_proto.c,v 1.13 2014/07/06 16:06:19 rtr Exp $ */ +/* $NetBSD: link_proto.c,v 1.14 2014/07/07 17:13:56 rtr Exp $ */ /*- * Copyright (c) 1982, 1986, 1993 @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.13 2014/07/06 16:06:19 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.14 2014/07/07 17:13:56 rtr Exp $); #include sys/param.h #include sys/socket.h @@ -242,6 +242,8 @@ link_ioctl(struct socket *so, u_long cmd static int link_stat(struct socket *so, struct stat *ub) { + KASSERT(solocked(so)); + return EOPNOTSUPP; } Index: src/sys/net/rtsock.c diff -u src/sys/net/rtsock.c:1.152 src/sys/net/rtsock.c:1.153 --- src/sys/net/rtsock.c:1.152 Mon Jul 7 15:13:21 2014 +++ src/sys/net/rtsock.c Mon Jul 7 17:13:56 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rtsock.c,v 1.152 2014/07/07 15:13:21 rtr Exp $ */ +/* $NetBSD: rtsock.c,v 1.153 2014/07/07 17:13:56 rtr Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rtsock.c,v 1.152 2014/07/07 15:13:21 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: rtsock.c,v 1.153 2014/07/07 17:13:56 rtr Exp $); #ifdef _KERNEL_OPT #include opt_inet.h @@ -233,6 +233,8 @@ COMPATNAME(route_ioctl)(struct socket *s static int COMPATNAME(route_stat)(struct socket *so, struct stat *ub) { + KASSERT(solocked(so)); + return 0; } Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.50 src/sys/netatalk/ddp_usrreq.c:1.51 --- src/sys/netatalk/ddp_usrreq.c:1.50 Mon Jul 7 15:13:21 2014 +++ src/sys/netatalk/ddp_usrreq.c Mon Jul 7 17:13:56 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.50 2014/07/07 15:13:21 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.51 2014/07/07 17:13:56 rtr Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.50 2014/07/07 15:13:21 rtr Exp $); +__KERNEL_RCSID(0,
CVS commit: src/sys/netnatm
Module Name:src Committed By: rtr Date: Sun Jul 6 15:09:38 UTC 2014 Modified Files: src/sys/netnatm: natm.c Log Message: fix pasto in function name should be natm_stat instead of natm_ioctl To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/sys/netnatm/natm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netnatm/natm.c diff -u src/sys/netnatm/natm.c:1.30 src/sys/netnatm/natm.c:1.31 --- src/sys/netnatm/natm.c:1.30 Sun Jul 6 03:33:33 2014 +++ src/sys/netnatm/natm.c Sun Jul 6 15:09:38 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: natm.c,v 1.30 2014/07/06 03:33:33 rtr Exp $ */ +/* $NetBSD: natm.c,v 1.31 2014/07/06 15:09:38 rtr Exp $ */ /* * Copyright (c) 1996 Charles D. Cranor and Washington University. @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: natm.c,v 1.30 2014/07/06 03:33:33 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: natm.c,v 1.31 2014/07/06 15:09:38 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -132,7 +132,7 @@ done: } static int -natm_ioctl(struct socket *so, struct stat *ub) +natm_stat(struct socket *so, struct stat *ub) { struct natmpcb *npcb;
CVS commit: src/sys/netnatm
Module Name:src Committed By: rtr Date: Sun Jul 6 15:44:25 UTC 2014 Modified Files: src/sys/netnatm: natm.h natm_pcb.c Log Message: * #include sys/kmem.h for kmem_intr_xxx() * ansify pcb_add() function signature and make its prototype parameter types match its definition. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/netnatm/natm.h cvs rdiff -u -r1.15 -r1.16 src/sys/netnatm/natm_pcb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netnatm/natm.h diff -u src/sys/netnatm/natm.h:1.13 src/sys/netnatm/natm.h:1.14 --- src/sys/netnatm/natm.h:1.13 Mon May 19 02:51:25 2014 +++ src/sys/netnatm/natm.h Sun Jul 6 15:44:25 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: natm.h,v 1.13 2014/05/19 02:51:25 rmind Exp $ */ +/* $NetBSD: natm.h,v 1.14 2014/07/06 15:44:25 rtr Exp $ */ /* * Copyright (c) 1996 Charles D. Cranor and Washington University. @@ -133,7 +133,7 @@ struct atm_rawioctl { /* natm_pcb.c */ struct natmpcb *npcb_alloc(bool); void npcb_free(struct natmpcb *, int); -struct natmpcb *npcb_add(struct natmpcb *, struct ifnet *, int, int); +struct natmpcb *npcb_add(struct natmpcb *, struct ifnet *, u_int16_t, u_int8_t); /* natm.c */ int natm0_sysctl(int *, u_int, void *, size_t *, void *, size_t); Index: src/sys/netnatm/natm_pcb.c diff -u src/sys/netnatm/natm_pcb.c:1.15 src/sys/netnatm/natm_pcb.c:1.16 --- src/sys/netnatm/natm_pcb.c:1.15 Mon May 19 02:51:25 2014 +++ src/sys/netnatm/natm_pcb.c Sun Jul 6 15:44:25 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: natm_pcb.c,v 1.15 2014/05/19 02:51:25 rmind Exp $ */ +/* $NetBSD: natm_pcb.c,v 1.16 2014/07/06 15:44:25 rtr Exp $ */ /* * Copyright (c) 1996 Charles D. Cranor and Washington University. @@ -31,11 +31,12 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: natm_pcb.c,v 1.15 2014/05/19 02:51:25 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: natm_pcb.c,v 1.16 2014/07/06 15:44:25 rtr Exp $); #include opt_ddb.h #include sys/param.h +#include sys/kmem.h #include sys/systm.h #include sys/queue.h #include sys/socket.h @@ -98,13 +99,9 @@ npcb_free(struct natmpcb *npcb, int op) * returns npcb if ok */ -struct natmpcb *npcb_add(npcb, ifp, vci, vpi) - -struct natmpcb *npcb; -struct ifnet *ifp; -u_int16_t vci; -u_int8_t vpi; - +struct natmpcb * +npcb_add(struct natmpcb *npcb, struct ifnet *ifp, + u_int16_t vci, u_int8_t vpi) { struct natmpcb *cpcb = NULL; /* current pcb */ int s = splnet();
CVS commit: src/sys/netnatm
Module Name:src Committed By: rtr Date: Sun Jul 6 15:49:14 UTC 2014 Modified Files: src/sys/netnatm: natm.c Log Message: * #include sys/kmem.h for kmem_intr_free() * add missing variables used by natm_attach(), natm_ioctl() To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/netnatm/natm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netnatm/natm.c diff -u src/sys/netnatm/natm.c:1.31 src/sys/netnatm/natm.c:1.32 --- src/sys/netnatm/natm.c:1.31 Sun Jul 6 15:09:38 2014 +++ src/sys/netnatm/natm.c Sun Jul 6 15:49:14 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: natm.c,v 1.31 2014/07/06 15:09:38 rtr Exp $ */ +/* $NetBSD: natm.c,v 1.32 2014/07/06 15:49:14 rtr Exp $ */ /* * Copyright (c) 1996 Charles D. Cranor and Washington University. @@ -30,9 +30,10 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: natm.c,v 1.31 2014/07/06 15:09:38 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: natm.c,v 1.32 2014/07/06 15:49:14 rtr Exp $); #include sys/param.h +#include sys/kmem.h #include sys/systm.h #include sys/kernel.h #include sys/domain.h @@ -60,6 +61,7 @@ u_long natm0_recvspace = 16*1024; static int natm_attach(struct socket *so, int proto) { + int error = 0; struct natmpcb *npcb; KASSERT(so-so_pcb == NULL); @@ -76,7 +78,7 @@ natm_attach(struct socket *so, int proto npcb = npcb_alloc(true); npcb-npcb_socket = so; so-so_pcb = npcb; - return 0; + return error; } static void @@ -98,10 +100,14 @@ natm_detach(struct socket *so) static int natm_ioctl(struct socket *so, u_long cmd, void *nam, struct ifnet *ifp) { - int error = 0; + int error = 0, s; + struct natmpcb *npcb; + struct atm_rawioctl ario; s = SPLSOFTNET(); + npcb = (struct natmpcb *) so-so_pcb; + /* * raw atm ioctl. comes in as a SIOCRAWATM. we convert it to * SIOCXRAWATM and pass it to the driver. @@ -157,7 +163,6 @@ natm_usrreq(struct socket *so, int req, struct sockaddr_natm *snatm; struct atm_pseudoioctl api; struct atm_pseudohdr *aph; - struct atm_rawioctl ario; struct ifnet *ifp; int proto = so-so_proto-pr_protocol;
CVS commit: src/sys/net
Module Name:src Committed By: rtr Date: Sun Jul 6 16:06:19 UTC 2014 Modified Files: src/sys/net: link_proto.c Log Message: * split PRU_SENSE functionality out of link_usrreq() and place into separate link_stat(struct socket *, struct stat *) function To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/net/link_proto.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/net/link_proto.c diff -u src/sys/net/link_proto.c:1.12 src/sys/net/link_proto.c:1.13 --- src/sys/net/link_proto.c:1.12 Tue Jul 1 05:49:18 2014 +++ src/sys/net/link_proto.c Sun Jul 6 16:06:19 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: link_proto.c,v 1.12 2014/07/01 05:49:18 rtr Exp $ */ +/* $NetBSD: link_proto.c,v 1.13 2014/07/06 16:06:19 rtr Exp $ */ /*- * Copyright (c) 1982, 1986, 1993 @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.12 2014/07/01 05:49:18 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.13 2014/07/06 16:06:19 rtr Exp $); #include sys/param.h #include sys/socket.h @@ -51,6 +51,7 @@ static int sockaddr_dl_cmp(const struct static int link_attach(struct socket *, int); static void link_detach(struct socket *); static int link_ioctl(struct socket *, u_long, void *, struct ifnet *); +static int link_stat(struct socket *, struct stat *); static int link_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *); static void link_init(void); @@ -65,6 +66,7 @@ static const struct pr_usrreqs link_usrr .pr_attach = link_attach, .pr_detach = link_detach, .pr_ioctl = link_ioctl, + .pr_stat = link_stat, .pr_generic = link_usrreq, }; @@ -238,12 +240,19 @@ link_ioctl(struct socket *so, u_long cmd } static int +link_stat(struct socket *so, struct stat *ub) +{ + return EOPNOTSUPP; +} + +static int link_usrreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct lwp *l) { KASSERT(req != PRU_ATTACH); KASSERT(req != PRU_DETACH); KASSERT(req != PRU_CONTROL); + KASSERT(req != PRU_SENSE); return EOPNOTSUPP; }
CVS commit: src/sys/rump/net/lib/libsockin
Module Name:src Committed By: rtr Date: Sun Jul 6 16:18:46 UTC 2014 Modified Files: src/sys/rump/net/lib/libsockin: sockin.c Log Message: * split PRU_SENSE functionality out of sockin_usrreq() and place into separate sockin_stat(struct socket *, struct stat *) function. * change behavior of function to just return success (like pretty much every other implementation) instead of panic()ing due to lack of implementation. To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/rump/net/lib/libsockin/sockin.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/rump/net/lib/libsockin/sockin.c diff -u src/sys/rump/net/lib/libsockin/sockin.c:1.42 src/sys/rump/net/lib/libsockin/sockin.c:1.43 --- src/sys/rump/net/lib/libsockin/sockin.c:1.42 Tue Jul 1 05:49:19 2014 +++ src/sys/rump/net/lib/libsockin/sockin.c Sun Jul 6 16:18:46 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sockin.c,v 1.42 2014/07/01 05:49:19 rtr Exp $ */ +/* $NetBSD: sockin.c,v 1.43 2014/07/06 16:18:46 rtr Exp $ */ /* * Copyright (c) 2008, 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sockin.c,v 1.42 2014/07/01 05:49:19 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: sockin.c,v 1.43 2014/07/06 16:18:46 rtr Exp $); #include sys/param.h #include sys/condvar.h @@ -69,6 +69,7 @@ static void sockin_init(void); static int sockin_attach(struct socket *, int); static void sockin_detach(struct socket *); static int sockin_ioctl(struct socket *, u_long, void *, struct ifnet *); +static int sockin_stat(struct socket *, struct stat *); static int sockin_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *); static int sockin_ctloutput(int op, struct socket *, struct sockopt *); @@ -77,6 +78,7 @@ static const struct pr_usrreqs sockin_us .pr_attach = sockin_attach, .pr_detach = sockin_detach, .pr_ioctl = sockin_ioctl, + .pr_stat = sockin_stat, .pr_generic = sockin_usrreq, }; @@ -458,12 +460,19 @@ sockin_ioctl(struct socket *so, u_long c } static int +sockin_stat(struct socket *so, struct stat *ub) +{ + return 0; +} + +static int sockin_usrreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct lwp *l) { int error = 0; KASSERT(req != PRU_CONTROL); + KASSERT(req != PRU_SENSE); switch (req) { case PRU_ACCEPT:
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sun Jul 6 03:33:33 UTC 2014 Modified Files: src/sys/kern: sys_socket.c uipc_usrreq.c src/sys/net: raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netnatm: natm.c src/sys/sys: protosw.h Log Message: * split PRU_SENSE functionality out of xxx_usrreq() switches and place into separate xxx_stat(struct socket *, struct stat *) functions. * replace calls using pr_generic with req == PRU_SENSE with pr_stat(). further change will follow that cleans up the pattern used to extract the pcb and test for its presence. reviewed by rmind To generate a diff of this commit: cvs rdiff -u -r1.71 -r1.72 src/sys/kern/sys_socket.c cvs rdiff -u -r1.155 -r1.156 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.40 -r1.41 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.149 -r1.150 src/sys/net/rtsock.c cvs rdiff -u -r1.47 -r1.48 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.26 -r1.27 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.17 -r1.18 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.18 -r1.19 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.19 -r1.20 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.127 -r1.128 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.180 -r1.181 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.202 -r1.203 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.121 -r1.122 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.101 -r1.102 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.29 -r1.30 src/sys/netipsec/keysock.c cvs rdiff -u -r1.29 -r1.30 src/sys/netnatm/natm.c cvs rdiff -u -r1.49 -r1.50 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/sys_socket.c diff -u src/sys/kern/sys_socket.c:1.71 src/sys/kern/sys_socket.c:1.72 --- src/sys/kern/sys_socket.c:1.71 Tue Jul 1 05:49:18 2014 +++ src/sys/kern/sys_socket.c Sun Jul 6 03:33:33 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_socket.c,v 1.71 2014/07/01 05:49:18 rtr Exp $ */ +/* $NetBSD: sys_socket.c,v 1.72 2014/07/06 03:33:33 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.71 2014/07/01 05:49:18 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.72 2014/07/06 03:33:33 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -239,8 +239,7 @@ soo_stat(file_t *fp, struct stat *ub) ub-st_mode = S_IFSOCK; solock(so); - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, PRU_SENSE, - (struct mbuf *)ub, NULL, NULL, curlwp); + error = (*so-so_proto-pr_usrreqs-pr_stat)(so, ub); sounlock(so); return error; Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.155 src/sys/kern/uipc_usrreq.c:1.156 --- src/sys/kern/uipc_usrreq.c:1.155 Tue Jul 1 05:49:18 2014 +++ src/sys/kern/uipc_usrreq.c Sun Jul 6 03:33:33 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_usrreq.c,v 1.155 2014/07/01 05:49:18 rtr Exp $ */ +/* $NetBSD: uipc_usrreq.c,v 1.156 2014/07/06 03:33:33 rtr Exp $ */ /*- * Copyright (c) 1998, 2000, 2004, 2008, 2009 The NetBSD Foundation, Inc. @@ -96,7 +96,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.155 2014/07/01 05:49:18 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: uipc_usrreq.c,v 1.156 2014/07/06 03:33:33 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -377,6 +377,7 @@ unp_usrreq(struct socket *so, int req, s KASSERT(req != PRU_ATTACH); KASSERT(req != PRU_DETACH); KASSERT(req != PRU_CONTROL); + KASSERT(req != PRU_SENSE); KASSERT(solocked(so)); unp = sotounpcb(so); @@ -627,30 +628,6 @@ unp_usrreq(struct socket *so, int req, s unp_detach(so); break; - case PRU_SENSE: - ((struct stat *) m)-st_blksize = so-so_snd.sb_hiwat; - switch (so-so_type) { - case SOCK_SEQPACKET: /* FALLTHROUGH */ - case SOCK_STREAM: - if (unp-unp_conn == 0) -break; - - so2 = unp-unp_conn-unp_socket; - KASSERT(solocked2(so, so2)); - ((struct stat *) m)-st_blksize += so2-so_rcv.sb_cc; - break; - default: - break; - } - ((struct stat *) m)-st_dev = NODEV; - if (unp-unp_ino == 0) - unp-unp_ino = unp_ino++; - ((struct stat *) m)-st_atimespec = - ((struct stat *) m)-st_mtimespec = - ((struct stat *) m)-st_ctimespec = unp-unp_ctime; - ((struct stat *) m)-st_ino = unp-unp_ino; - return (0); - case PRU_RCVOOB: error = EOPNOTSUPP; break; @@ -871,6 +848,38 @@ unp_ioctl(struct socket *so, u_long cmd, return EOPNOTSUPP; } +static int +unp_stat(struct socket *so, struct stat *ub) +{ + struct unpcb *unp; + struct socket *so2; + + unp = sotounpcb(so); + if (unp == NULL) + return EINVAL; + + ub-st_blksize = so-so_snd.sb_hiwat; + switch
CVS commit: src/sys/netmpls
Module Name:src Committed By: rtr Date: Sun Jul 6 04:47:26 UTC 2014 Modified Files: src/sys/netmpls: mpls_proto.c Log Message: * split PRU_SENSE functionality out of mpls_usrreq() and place into separate mpls_stat(struct socket *, struct stat *) function missed this in previous commit, fixes build of ALL kernel. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/netmpls/mpls_proto.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/netmpls/mpls_proto.c diff -u src/sys/netmpls/mpls_proto.c:1.11 src/sys/netmpls/mpls_proto.c:1.12 --- src/sys/netmpls/mpls_proto.c:1.11 Tue Jul 1 05:49:19 2014 +++ src/sys/netmpls/mpls_proto.c Sun Jul 6 04:47:26 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: mpls_proto.c,v 1.11 2014/07/01 05:49:19 rtr Exp $ */ +/* $NetBSD: mpls_proto.c,v 1.12 2014/07/06 04:47:26 rtr Exp $ */ /* * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: mpls_proto.c,v 1.11 2014/07/01 05:49:19 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: mpls_proto.c,v 1.12 2014/07/06 04:47:26 rtr Exp $); #include opt_inet.h #include opt_mbuftrace.h @@ -101,6 +101,12 @@ mpls_ioctl(struct socket *so, u_long cmd } static int +mpls_stat(struct socket *so, struct stat *ub) +{ + return EOPNOTSUPP; +} + +static int mpls_usrreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct lwp *l) { @@ -192,12 +198,14 @@ PR_WRAP_USRREQS(mpls) #define mpls_attach mpls_attach_wrapper #define mpls_detach mpls_detach_wrapper #define mpls_ioctl mpls_ioctl_wrapper +#define mpls_stat mpls_stat_wrapper #define mpls_usrreq mpls_usrreq_wrapper static const struct pr_usrreqs mpls_usrreqs = { .pr_attach = mpls_attach, .pr_detach = mpls_detach, .pr_ioctl = mpls_ioctl, + .pr_stat = mpls_stat, .pr_generic = mpls_usrreq, };
CVS commit: src/sys/sys
Module Name:src Committed By: rtr Date: Tue Jul 1 13:25:21 UTC 2014 Modified Files: src/sys/sys: param.h Log Message: Bump to version 6.99.45 for removal of struct lwp * parameter from pr_ioctl To generate a diff of this commit: cvs rdiff -u -r1.454 -r1.455 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.454 src/sys/sys/param.h:1.455 --- src/sys/sys/param.h:1.454 Sat Jun 14 07:39:00 2014 +++ src/sys/sys/param.h Tue Jul 1 13:25:21 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.454 2014/06/14 07:39:00 hannken Exp $ */ +/* $NetBSD: param.h,v 1.455 2014/07/01 13:25:21 rtr Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -63,7 +63,7 @@ * 2.99.9 (299000900) */ -#define __NetBSD_Version__ 699004400 /* NetBSD 6.99.44 */ +#define __NetBSD_Version__ 699004500 /* NetBSD 6.99.45 */ #define __NetBSD_Prereq__(M,m,p) (M) * 1) + \ (m) * 100) + (p) * 100) = __NetBSD_Version__)
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Tue Jul 1 05:49:19 UTC 2014 Modified Files: src/sys/compat/common: if_43.c src/sys/kern: sys_socket.c uipc_usrreq.c src/sys/net: if.c if.h link_proto.c rtsock.c src/sys/netatalk: at_control.c at_extern.h ddp_usrreq.c src/sys/netbt: hci.h hci_ioctl.c hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: in.c in_var.h raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: in6.c in6_var.h raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libnetinet: netinet_component.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h Log Message: fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type. param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9). callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed. reviewed by rmind@ To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/compat/common/if_43.c cvs rdiff -u -r1.70 -r1.71 src/sys/kern/sys_socket.c cvs rdiff -u -r1.154 -r1.155 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.283 -r1.284 src/sys/net/if.c cvs rdiff -u -r1.167 -r1.168 src/sys/net/if.h cvs rdiff -u -r1.11 -r1.12 src/sys/net/link_proto.c cvs rdiff -u -r1.148 -r1.149 src/sys/net/rtsock.c cvs rdiff -u -r1.34 -r1.35 src/sys/netatalk/at_control.c cvs rdiff -u -r1.17 -r1.18 src/sys/netatalk/at_extern.h cvs rdiff -u -r1.46 -r1.47 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.38 -r1.39 src/sys/netbt/hci.h cvs rdiff -u -r1.11 -r1.12 src/sys/netbt/hci_ioctl.c cvs rdiff -u -r1.25 -r1.26 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.16 -r1.17 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.17 -r1.18 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.18 -r1.19 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.146 -r1.147 src/sys/netinet/in.c cvs rdiff -u -r1.69 -r1.70 src/sys/netinet/in_var.h cvs rdiff -u -r1.126 -r1.127 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.179 -r1.180 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.201 -r1.202 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.171 -r1.172 src/sys/netinet6/in6.c cvs rdiff -u -r1.69 -r1.70 src/sys/netinet6/in6_var.h cvs rdiff -u -r1.120 -r1.121 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.100 -r1.101 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.28 -r1.29 src/sys/netipsec/keysock.c cvs rdiff -u -r1.10 -r1.11 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.28 -r1.29 src/sys/netnatm/natm.c cvs rdiff -u -r1.2 -r1.3 src/sys/rump/net/lib/libnetinet/netinet_component.c cvs rdiff -u -r1.41 -r1.42 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.48 -r1.49 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/common/if_43.c diff -u src/sys/compat/common/if_43.c:1.6 src/sys/compat/common/if_43.c:1.7 --- src/sys/compat/common/if_43.c:1.6 Sun Jun 22 08:10:18 2014 +++ src/sys/compat/common/if_43.c Tue Jul 1 05:49:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: if_43.c,v 1.6 2014/06/22 08:10:18 rtr Exp $ */ +/* $NetBSD: if_43.c,v 1.7 2014/07/01 05:49:18 rtr Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1990, 1993 @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_43.c,v 1.6 2014/06/22 08:10:18 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: if_43.c,v 1.7 2014/07/01 05:49:18 rtr Exp $); #if defined(_KERNEL_OPT) #include opt_compat_netbsd.h @@ -256,8 +256,7 @@ compat_ifioctl(struct socket *so, u_long cmd = SIOCGIFNETMASK; } - error = (*so-so_proto-pr_usrreqs-pr_ioctl)(so, - (struct mbuf *)cmd, (struct mbuf *)ifr, (struct mbuf *)ifp, l); + error = (*so-so_proto-pr_usrreqs-pr_ioctl)(so, cmd, ifr, ifp); switch (ocmd) { case OOSIOCGIFADDR: Index: src/sys/kern/sys_socket.c diff -u src/sys/kern/sys_socket.c:1.70 src/sys/kern/sys_socket.c:1.71 --- src/sys/kern/sys_socket.c:1.70 Mon Jun 23 17:18:45 2014 +++ src/sys/kern/sys_socket.c Tue Jul 1 05:49:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_socket.c,v 1.70 2014/06/23 17:18:45 rtr Exp $ */ +/* $NetBSD: sys_socket.c,v 1.71 2014/07/01 05:49:18 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.70 2014/06/23 17:18:45 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.71 2014/07/01 05:49:18 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -202,8
CVS commit: src
Module Name:src Committed By: rtr Date: Sat Jun 28 09:16:18 UTC 2014 Modified Files: src/distrib/sparc64/bootfs: boot.cfg src/sys/arch/i386/stand/boot: boot2.c src/sys/arch/i386/stand/lib: bootmenu.c bootmenu.h src/sys/arch/i386/stand/pxeboot: main.c src/sys/arch/sparc/stand/ofwboot: boot.c src/sys/arch/zaurus/stand/zboot: boot.c boot.h bootmenu.c bootmenu.h pathnames.h src/sys/lib/libsa: Makefile Added Files: src/sys/lib/libsa: bootcfg.c bootcfg.h Log Message: patch posted to tech-kern@ 2014/06/25 for review with minor changes resulting from feedback. move multiple copies of code for parsing boot.cfg file from sparc, i386 and zaurus into libsa/bootcfg.{h,c}. largely retained i386 parsing logic in addition to keeping sparc dispatch function while remaining consistent with boot.cfg(5). previous sparc64 file format has been obsoleted but only used by boot CDs distrib/sparc64/bootfs/boot.cfg has been updated to compensate. exported names have been prefixed with either BOOTCFG_ or bootcfg_ as per feedback from christos@ tested on amd64 sparc64 but not zaurus. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/distrib/sparc64/bootfs/boot.cfg cvs rdiff -u -r1.62 -r1.63 src/sys/arch/i386/stand/boot/boot2.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/i386/stand/lib/bootmenu.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/i386/stand/lib/bootmenu.h cvs rdiff -u -r1.30 -r1.31 src/sys/arch/i386/stand/pxeboot/main.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/sparc/stand/ofwboot/boot.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/zaurus/stand/zboot/boot.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/zaurus/stand/zboot/boot.h \ src/sys/arch/zaurus/stand/zboot/bootmenu.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/zaurus/stand/zboot/bootmenu.h cvs rdiff -u -r1.3 -r1.4 src/sys/arch/zaurus/stand/zboot/pathnames.h cvs rdiff -u -r1.82 -r1.83 src/sys/lib/libsa/Makefile cvs rdiff -u -r0 -r1.1 src/sys/lib/libsa/bootcfg.c \ src/sys/lib/libsa/bootcfg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/distrib/sparc64/bootfs/boot.cfg diff -u src/distrib/sparc64/bootfs/boot.cfg:1.1 src/distrib/sparc64/bootfs/boot.cfg:1.2 --- src/distrib/sparc64/bootfs/boot.cfg:1.1 Fri Apr 2 21:29:30 2010 +++ src/distrib/sparc64/bootfs/boot.cfg Sat Jun 28 09:16:18 2014 @@ -1 +1 @@ -bootpartition :a +bootpartition=:a Index: src/sys/arch/i386/stand/boot/boot2.c diff -u src/sys/arch/i386/stand/boot/boot2.c:1.62 src/sys/arch/i386/stand/boot/boot2.c:1.63 --- src/sys/arch/i386/stand/boot/boot2.c:1.62 Wed Mar 26 17:58:57 2014 +++ src/sys/arch/i386/stand/boot/boot2.c Sat Jun 28 09:16:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: boot2.c,v 1.62 2014/03/26 17:58:57 christos Exp $ */ +/* $NetBSD: boot2.c,v 1.63 2014/06/28 09:16:18 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -72,6 +72,7 @@ #include sys/bootblock.h #include lib/libsa/stand.h +#include lib/libsa/bootcfg.h #include lib/libsa/ufs.h #include lib/libkern/libkern.h @@ -239,7 +240,7 @@ static void clearit(void) { - if (bootconf.clear) + if (bootcfg_info.clear) clear_pc_screen(); } @@ -268,9 +269,10 @@ print_banner(void) clearit(); #ifndef SMALL int n; - if (bootconf.banner[0]) { - for (n = 0; bootconf.banner[n] n MAXBANNER; n++) - printf(%s\n, bootconf.banner[n]); + if (bootcfg_info.banner[0]) { + for (n = 0; bootcfg_info.banner[n] + n BOOTCFG_MAXBANNER; n++) + printf(%s\n, bootcfg_info.banner[n]); } else { #endif /* !SMALL */ printf(\n @@ -326,9 +328,9 @@ boot2(int biosdev, uint64_t biossector) #ifndef SMALL if (!(boot_params.bp_flags X86_BP_FLAGS_NOBOOTCONF)) { - parsebootconf(BOOTCONF); + parsebootconf(BOOTCFG_FILENAME); } else { - bootconf.timeout = boot_params.bp_timeout; + bootcfg_info.timeout = boot_params.bp_timeout; } @@ -336,14 +338,14 @@ boot2(int biosdev, uint64_t biossector) * If console set in boot.cfg, switch to it. * This will print the banner, so we don't need to explicitly do it */ - if (bootconf.consdev) - command_consdev(bootconf.consdev); + if (bootcfg_info.consdev) + command_consdev(bootcfg_info.consdev); else print_banner(); /* Display the menu, if applicable */ twiddle_toggle = 0; - if (bootconf.nummenu 0) { + if (bootcfg_info.nummenu 0) { /* Does not return */ doboottypemenu(); } @@ -361,7 +363,8 @@ boot2(int biosdev, uint64_t biossector) #ifdef SMALL c = awaitkey(boot_params.bp_timeout, 1); #else - c = awaitkey((bootconf.timeout 0) ? 0 : bootconf.timeout, 1); + c = awaitkey((bootcfg_info.timeout 0) ? 0 + : bootcfg_info.timeout, 1); #endif if ((c != '\r') (c != '\n') (c != '\0')) { if ((boot_params.bp_flags X86_BP_FLAGS_PASSWORD) == 0) { @@ -533,7 +536,7 @@ void command_menu(char *arg) { - if (bootconf.nummenu 0) { + if (bootcfg_info.nummenu 0)
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Mon Jun 23 17:18:45 UTC 2014 Modified Files: src/sys/kern: sys_socket.c src/sys/net: link_proto.c src/sys/netatalk: ddp_usrreq.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c Log Message: where appropriate rename xxx_ioctl() struct mbuf * parameters from `control' to `ifp' after split from xxx_usrreq(). sys_socket.c fix wrapping of arguments to be consistent with other function calls in the file after replacing pr_usrreq() call with pr_ioctl() which required one less argument. link_proto.c fix indentation of parameters in link_ioctl() prototype to be consistent with the rest of the file. discussed with rmind@ To generate a diff of this commit: cvs rdiff -u -r1.69 -r1.70 src/sys/kern/sys_socket.c cvs rdiff -u -r1.10 -r1.11 src/sys/net/link_proto.c cvs rdiff -u -r1.45 -r1.46 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.125 -r1.126 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.178 -r1.179 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.200 -r1.201 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.119 -r1.120 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.99 -r1.100 src/sys/netinet6/udp6_usrreq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/sys_socket.c diff -u src/sys/kern/sys_socket.c:1.69 src/sys/kern/sys_socket.c:1.70 --- src/sys/kern/sys_socket.c:1.69 Sun Jun 22 08:10:18 2014 +++ src/sys/kern/sys_socket.c Mon Jun 23 17:18:45 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_socket.c,v 1.69 2014/06/22 08:10:18 rtr Exp $ */ +/* $NetBSD: sys_socket.c,v 1.70 2014/06/23 17:18:45 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.69 2014/06/22 08:10:18 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.70 2014/06/23 17:18:45 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -202,8 +202,8 @@ soo_ioctl(file_t *fp, u_long cmd, void * error = ifioctl(so, cmd, data, curlwp); else { error = (*so-so_proto-pr_usrreqs-pr_ioctl)(so, - (struct mbuf *)cmd, - (struct mbuf *)data, NULL, curlwp); + (struct mbuf *)cmd, (struct mbuf *)data, + NULL, curlwp); } KERNEL_UNLOCK_ONE(NULL); break; Index: src/sys/net/link_proto.c diff -u src/sys/net/link_proto.c:1.10 src/sys/net/link_proto.c:1.11 --- src/sys/net/link_proto.c:1.10 Sun Jun 22 08:10:18 2014 +++ src/sys/net/link_proto.c Mon Jun 23 17:18:45 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: link_proto.c,v 1.10 2014/06/22 08:10:18 rtr Exp $ */ +/* $NetBSD: link_proto.c,v 1.11 2014/06/23 17:18:45 rtr Exp $ */ /*- * Copyright (c) 1982, 1986, 1993 @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.10 2014/06/22 08:10:18 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: link_proto.c,v 1.11 2014/06/23 17:18:45 rtr Exp $); #include sys/param.h #include sys/socket.h @@ -51,7 +51,7 @@ static int sockaddr_dl_cmp(const struct static int link_attach(struct socket *, int); static void link_detach(struct socket *); static int link_ioctl(struct socket *, struct mbuf *, struct mbuf *, - struct mbuf *, struct lwp *); +struct mbuf *, struct lwp *); static int link_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *); static void link_init(void); @@ -234,10 +234,10 @@ link_detach(struct socket *so) static int link_ioctl(struct socket *so, struct mbuf *m, struct mbuf *nam, - struct mbuf *control, struct lwp *l) + struct mbuf *ifp, struct lwp *l) { return link_control(so, (unsigned long)m, nam, - (struct ifnet *)control, l); + (struct ifnet *)ifp, l); } static int Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.45 src/sys/netatalk/ddp_usrreq.c:1.46 --- src/sys/netatalk/ddp_usrreq.c:1.45 Sun Jun 22 08:10:18 2014 +++ src/sys/netatalk/ddp_usrreq.c Mon Jun 23 17:18:45 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.45 2014/06/22 08:10:18 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.46 2014/06/23 17:18:45 rtr Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.45 2014/06/22 08:10:18 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.46 2014/06/23 17:18:45 rtr Exp $); #include opt_mbuftrace.h @@ -480,10 +480,10 @@ ddp_detach(struct socket *so) static int ddp_ioctl(struct socket *so, struct mbuf *m, struct mbuf *addr, -struct mbuf *rights, struct lwp *l) +struct mbuf *ifp, struct lwp *l) { - return (at_control((long) m, (void *) addr, - (struct ifnet *) rights, l)); + return at_control((long) m, (void *) addr, + (struct ifnet *) ifp, l); } /* Index: src/sys/netinet/raw_ip.c diff -u
CVS commit: src/sys
Module Name:src Committed By: rtr Date: Sun Jun 22 08:10:19 UTC 2014 Modified Files: src/sys/compat/common: if_43.c src/sys/kern: sys_socket.c uipc_usrreq.c src/sys/net: if.c link_proto.c raw_usrreq.c rtsock.c src/sys/netatalk: ddp_usrreq.c src/sys/netbt: hci.h hci_ioctl.c hci_socket.c l2cap_socket.c rfcomm_socket.c sco_socket.c src/sys/netinet: raw_ip.c tcp_usrreq.c udp_usrreq.c src/sys/netinet6: raw_ip6.c udp6_usrreq.c src/sys/netipsec: keysock.c src/sys/netmpls: mpls_proto.c src/sys/netnatm: natm.c src/sys/rump/net/lib/libsockin: sockin.c src/sys/sys: protosw.h Log Message: * split PRU_CONTROL functionality out of xxx_userreq() switches and place into separate xxx_ioctl() functions. * place KASSERT(req != PRU_CONTROL) inside xxx_userreq() as it is now inappropriate for req = PRU_CONTROL in xxx_userreq(). * replace calls to pr_generic() with req = PRU_CONTROL with pr_ioctl(). * remove fixup references to PRU_CONTROL xxx_userreq() function comments. * fix various comments references for xxx_userreq() that mentioned PRU_CONTROL as xxx_userreq() no longer handles the request. a further change will follow to fix parameter and naming inconsistencies retained from original code. Reviewed by rmind@ To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/compat/common/if_43.c cvs rdiff -u -r1.68 -r1.69 src/sys/kern/sys_socket.c cvs rdiff -u -r1.153 -r1.154 src/sys/kern/uipc_usrreq.c cvs rdiff -u -r1.282 -r1.283 src/sys/net/if.c cvs rdiff -u -r1.9 -r1.10 src/sys/net/link_proto.c cvs rdiff -u -r1.39 -r1.40 src/sys/net/raw_usrreq.c cvs rdiff -u -r1.147 -r1.148 src/sys/net/rtsock.c cvs rdiff -u -r1.44 -r1.45 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.37 -r1.38 src/sys/netbt/hci.h cvs rdiff -u -r1.10 -r1.11 src/sys/netbt/hci_ioctl.c cvs rdiff -u -r1.24 -r1.25 src/sys/netbt/hci_socket.c cvs rdiff -u -r1.15 -r1.16 src/sys/netbt/l2cap_socket.c cvs rdiff -u -r1.16 -r1.17 src/sys/netbt/rfcomm_socket.c cvs rdiff -u -r1.17 -r1.18 src/sys/netbt/sco_socket.c cvs rdiff -u -r1.124 -r1.125 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.177 -r1.178 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.199 -r1.200 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.118 -r1.119 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.98 -r1.99 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.27 -r1.28 src/sys/netipsec/keysock.c cvs rdiff -u -r1.9 -r1.10 src/sys/netmpls/mpls_proto.c cvs rdiff -u -r1.27 -r1.28 src/sys/netnatm/natm.c cvs rdiff -u -r1.40 -r1.41 src/sys/rump/net/lib/libsockin/sockin.c cvs rdiff -u -r1.47 -r1.48 src/sys/sys/protosw.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/compat/common/if_43.c diff -u src/sys/compat/common/if_43.c:1.5 src/sys/compat/common/if_43.c:1.6 --- src/sys/compat/common/if_43.c:1.5 Sun May 18 14:46:15 2014 +++ src/sys/compat/common/if_43.c Sun Jun 22 08:10:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: if_43.c,v 1.5 2014/05/18 14:46:15 rmind Exp $ */ +/* $NetBSD: if_43.c,v 1.6 2014/06/22 08:10:18 rtr Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1990, 1993 @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_43.c,v 1.5 2014/05/18 14:46:15 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: if_43.c,v 1.6 2014/06/22 08:10:18 rtr Exp $); #if defined(_KERNEL_OPT) #include opt_compat_netbsd.h @@ -256,7 +256,7 @@ compat_ifioctl(struct socket *so, u_long cmd = SIOCGIFNETMASK; } - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, PRU_CONTROL, + error = (*so-so_proto-pr_usrreqs-pr_ioctl)(so, (struct mbuf *)cmd, (struct mbuf *)ifr, (struct mbuf *)ifp, l); switch (ocmd) { Index: src/sys/kern/sys_socket.c diff -u src/sys/kern/sys_socket.c:1.68 src/sys/kern/sys_socket.c:1.69 --- src/sys/kern/sys_socket.c:1.68 Sun May 18 14:46:15 2014 +++ src/sys/kern/sys_socket.c Sun Jun 22 08:10:18 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_socket.c,v 1.68 2014/05/18 14:46:15 rmind Exp $ */ +/* $NetBSD: sys_socket.c,v 1.69 2014/06/22 08:10:18 rtr Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.68 2014/05/18 14:46:15 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: sys_socket.c,v 1.69 2014/06/22 08:10:18 rtr Exp $); #include sys/param.h #include sys/systm.h @@ -201,8 +201,8 @@ soo_ioctl(file_t *fp, u_long cmd, void * if (IOCGROUP(cmd) == 'i') error = ifioctl(so, cmd, data, curlwp); else { - error = (*so-so_proto-pr_usrreqs-pr_generic)(so, - PRU_CONTROL, (struct mbuf *)cmd, + error = (*so-so_proto-pr_usrreqs-pr_ioctl)(so, + (struct mbuf *)cmd, (struct mbuf *)data, NULL, curlwp); } KERNEL_UNLOCK_ONE(NULL); Index: src/sys/kern/uipc_usrreq.c diff -u src/sys/kern/uipc_usrreq.c:1.153 src/sys/kern/uipc_usrreq.c:1.154 ---
CVS commit: src/distrib/sets/lists/comp
Module Name:src Committed By: rtr Date: Sat Dec 11 10:41:13 UTC 2010 Modified Files: src/distrib/sets/lists/comp: md.amd64 mi Log Message: add missing liblua_g.a debuglib entries needed for MKDEBUGLIB=yes To generate a diff of this commit: cvs rdiff -u -r1.84 -r1.85 src/distrib/sets/lists/comp/md.amd64 cvs rdiff -u -r1.1534 -r1.1535 src/distrib/sets/lists/comp/mi Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/distrib/sets/lists/comp/md.amd64 diff -u src/distrib/sets/lists/comp/md.amd64:1.84 src/distrib/sets/lists/comp/md.amd64:1.85 --- src/distrib/sets/lists/comp/md.amd64:1.84 Sun Dec 5 20:11:22 2010 +++ src/distrib/sets/lists/comp/md.amd64 Sat Dec 11 10:41:12 2010 @@ -1,4 +1,4 @@ -# $NetBSD: md.amd64,v 1.84 2010/12/05 20:11:22 pooka Exp $ +# $NetBSD: md.amd64,v 1.85 2010/12/11 10:41:12 rtr Exp $ ./usr/include/amd64comp-c-include ./usr/include/amd64/ansi.h comp-c-include ./usr/include/amd64/aout_machdep.h comp-c-include @@ -609,6 +609,7 @@ ./usr/lib/i386/libldap_r_p.a comp-c-proflib compat,profile,ldap ./usr/lib/i386/libldap_r_pic.a comp-c-piclib compat,pic,ldap ./usr/lib/i386/liblua.acomp-c-lib compat +./usr/lib/i386/liblua_g.a comp-c-proflib compat,debuglib ./usr/lib/i386/liblua_p.a comp-c-proflib compat,profile ./usr/lib/i386/liblua_pic.a comp-c-piclib compat,pic ./usr/lib/i386/liblwres.a comp-c-lib compat Index: src/distrib/sets/lists/comp/mi diff -u src/distrib/sets/lists/comp/mi:1.1534 src/distrib/sets/lists/comp/mi:1.1535 --- src/distrib/sets/lists/comp/mi:1.1534 Wed Dec 8 20:23:12 2010 +++ src/distrib/sets/lists/comp/mi Sat Dec 11 10:41:11 2010 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1534 2010/12/08 20:23:12 pooka Exp $ +# $NetBSD: mi,v 1.1535 2010/12/11 10:41:11 rtr Exp $ # # Note: don't delete entries from here - mark them as obsolete instead. # @@ -2528,6 +2528,7 @@ ./usr/lib/libldap_r_g.a-unknown- debuglib,ldap ./usr/lib/libldap_r_p.acomp-ldap-proflib profile,ldap ./usr/lib/liblua.acomp-c-lib +./usr/lib/liblua_g.acomp-c-proflib debuglib ./usr/lib/liblua_p.acomp-c-proflib profile ./usr/lib/liblwres.acomp-bind-lib ./usr/lib/liblwres_g.a-unknown- debuglib
CVS commit: src/distrib/sets/lists/comp
Module Name:src Committed By: rtr Date: Sun Dec 12 00:19:44 UTC 2010 Modified Files: src/distrib/sets/lists/comp: md.amd64 Log Message: add obsolete entries for libamu to make MKDEBUGLIB=yes work on amd64 again To generate a diff of this commit: cvs rdiff -u -r1.85 -r1.86 src/distrib/sets/lists/comp/md.amd64 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/distrib/sets/lists/comp/md.amd64 diff -u src/distrib/sets/lists/comp/md.amd64:1.85 src/distrib/sets/lists/comp/md.amd64:1.86 --- src/distrib/sets/lists/comp/md.amd64:1.85 Sat Dec 11 10:41:12 2010 +++ src/distrib/sets/lists/comp/md.amd64 Sun Dec 12 00:19:44 2010 @@ -1,4 +1,4 @@ -# $NetBSD: md.amd64,v 1.85 2010/12/11 10:41:12 rtr Exp $ +# $NetBSD: md.amd64,v 1.86 2010/12/12 00:19:44 rtr Exp $ ./usr/include/amd64comp-c-include ./usr/include/amd64/ansi.h comp-c-include ./usr/include/amd64/aout_machdep.h comp-c-include @@ -356,6 +356,10 @@ ./usr/lib/i386/i18n/libmapper_zone_g.a comp-c-proflib compat,debuglib ./usr/lib/i386/i18n/libmapper_zone_p.a comp-obsolete obsolete ./usr/lib/i386/i18n/libmapper_zone_pic.a comp-obsolete obsolete +./usr/lib/i386/libamu.acomp-obsolete obsolete +./usr/lib/i386/libamu_g.a comp-obsolete obsolete +./usr/lib/i386/libamu_p.a comp-obsolete obsolete +./usr/lib/i386/libamu_pic.a comp-obsolete obsolete ./usr/lib/i386/libarchive.a comp-c-lib compat ./usr/lib/i386/libarchive.so comp-sys-shlib compat,pic ./usr/lib/i386/libarchive_g.a comp-c-proflib compat,debuglib