Source-Changes-HG archive

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

[src/trunk]: src/sys change sosend() to accept sockaddr * instead of mbuf * f...



details:   https://anonhg.NetBSD.org/src/rev/414a9af65d42
branches:  trunk
changeset: 338054:414a9af65d42
user:      rtr <rtr%NetBSD.org@localhost>
date:      Sat May 09 15:22:47 2015 +0000

description:
change sosend() to accept sockaddr * instead of mbuf * for nam.

bump to 7.99.16

diffstat:

 sys/kern/uipc_socket.c   |  14 +++++---------
 sys/kern/uipc_syscalls.c |  11 ++++++++---
 sys/nfs/nfs_boot.c       |   7 ++++---
 sys/nfs/nfs_socket.c     |   8 ++++----
 sys/sys/param.h          |   4 ++--
 sys/sys/socketvar.h      |   9 +++++----
 6 files changed, 28 insertions(+), 25 deletions(-)

diffs (209 lines):

diff -r 1544b934b1b3 -r 414a9af65d42 sys/kern/uipc_socket.c
--- a/sys/kern/uipc_socket.c    Sat May 09 15:14:45 2015 +0000
+++ b/sys/kern/uipc_socket.c    Sat May 09 15:22:47 2015 +0000
@@ -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 @@
  * 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 @@
                                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;
diff -r 1544b934b1b3 -r 414a9af65d42 sys/kern/uipc_syscalls.c
--- a/sys/kern/uipc_syscalls.c  Sat May 09 15:14:45 2015 +0000
+++ b/sys/kern/uipc_syscalls.c  Sat May 09 15:22:47 2015 +0000
@@ -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 @@
 {
 
        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 @@
        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;
 
diff -r 1544b934b1b3 -r 414a9af65d42 sys/nfs/nfs_boot.c
--- a/sys/nfs/nfs_boot.c        Sat May 09 15:14:45 2015 +0000
+++ b/sys/nfs/nfs_boot.c        Sat May 09 15:22:47 2015 +0000
@@ -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 @@
                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;
diff -r 1544b934b1b3 -r 414a9af65d42 sys/nfs/nfs_socket.c
--- a/sys/nfs/nfs_socket.c      Sat May 09 15:14:45 2015 +0000
+++ b/sys/nfs/nfs_socket.c      Sat May 09 15:22:47 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: nfs_socket.c,v 1.195 2015/05/02 17:18:04 rtr Exp $     */
+/*     $NetBSD: nfs_socket.c,v 1.196 2015/05/09 15:22:47 rtr Exp $     */
 
 /*
  * Copyright (c) 1989, 1991, 1993, 1995
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_socket.c,v 1.195 2015/05/02 17:18:04 rtr Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_socket.c,v 1.196 2015/05/09 15:22:47 rtr Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_nfs.h"
@@ -439,7 +439,7 @@
 int
 nfs_send(struct socket *so, struct mbuf *nam, struct mbuf *top, struct nfsreq *rep, struct lwp *l)
 {
-       struct mbuf *sendnam;
+       struct sockaddr *sendnam;
        int error, soflags, flags;
 
        /* XXX nfs_doio()/nfs_request() calls with  rep->r_lwp == NULL */
@@ -463,7 +463,7 @@
        if ((soflags & PR_CONNREQUIRED) || (so->so_state & SS_ISCONNECTED))
                sendnam = NULL;
        else
-               sendnam = nam;
+               sendnam = mtod(nam, struct sockaddr *);
        if (so->so_type == SOCK_SEQPACKET)
                flags = MSG_EOR;
        else
diff -r 1544b934b1b3 -r 414a9af65d42 sys/sys/param.h
--- a/sys/sys/param.h   Sat May 09 15:14:45 2015 +0000
+++ b/sys/sys/param.h   Sat May 09 15:22:47 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: param.h,v 1.477 2015/05/02 17:18:04 rtr Exp $  */
+/*     $NetBSD: param.h,v 1.478 2015/05/09 15:22:47 rtr Exp $  */
 
 /*-
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -63,7 +63,7 @@
  *     2.99.9          (299000900)
  */
 
-#define        __NetBSD_Version__      799001500       /* NetBSD 7.99.15 */
+#define        __NetBSD_Version__      799001600       /* NetBSD 7.99.16 */
 
 #define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
     (m) * 1000000) + (p) * 100) <= __NetBSD_Version__)
diff -r 1544b934b1b3 -r 414a9af65d42 sys/sys/socketvar.h
--- a/sys/sys/socketvar.h       Sat May 09 15:14:45 2015 +0000
+++ b/sys/sys/socketvar.h       Sat May 09 15:22:47 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: socketvar.h,v 1.138 2015/05/02 17:18:04 rtr Exp $      */
+/*     $NetBSD: socketvar.h,v 1.139 2015/05/09 15:22:47 rtr Exp $      */
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -127,6 +127,8 @@
        char    *so_accept_filter_str;  /* saved user args */
 };
 
+struct sockaddr;
+
 struct socket {
        kmutex_t * volatile so_lock;    /* pointer to lock on structure */
        kcondvar_t      so_cv;          /* notifier */
@@ -167,7 +169,7 @@
        void            *so_internal;   /* Space for svr4 stream data */
        void            (*so_upcall) (struct socket *, void *, int, int);
        void *          so_upcallarg;   /* Arg for above */
-       int             (*so_send) (struct socket *, struct mbuf *,
+       int             (*so_send) (struct socket *, struct sockaddr *,
                                        struct uio *, struct mbuf *,
                                        struct mbuf *, int, struct lwp *);
        int             (*so_receive) (struct socket *,
@@ -241,7 +243,6 @@
 extern kmutex_t                *softnet_lock;
 
 struct mbuf;
-struct sockaddr;
 struct lwp;
 struct msghdr;
 struct stat;
@@ -315,7 +316,7 @@
            struct mbuf **, struct mbuf **, int *);
 int    soreserve(struct socket *, u_long, u_long);
 void   sorflush(struct socket *);
-int    sosend(struct socket *, struct mbuf *, struct uio *,
+int    sosend(struct socket *, struct sockaddr *, struct uio *,
            struct mbuf *, struct mbuf *, int, struct lwp *);
 int    sosetopt(struct socket *, struct sockopt *);
 int    so_setsockopt(struct lwp *, struct socket *, int, int, const void *, size_t);



Home | Main Index | Thread Index | Old Index