diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-03-01 03:14:23 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-03-01 03:14:23 +0000 |
commit | b0b5f961bd295aee20ca2584b96ebf00e9cb92f3 (patch) | |
tree | 6b16845a701c80c2675bb9aed085227f806e915d /sys/kern | |
parent | 9fe9a307306d35d1219be5eb3a88475032b080d0 (diff) | |
download | FreeBSD-src-b0b5f961bd295aee20ca2584b96ebf00e9cb92f3.zip FreeBSD-src-b0b5f961bd295aee20ca2584b96ebf00e9cb92f3.tar.gz |
Rename dup_sockaddr() to sodupsockaddr() for consistency with other
functions in kern_socket.c.
Rename the "canwait" field to "mflags" and pass M_WAITOK and M_NOWAIT
in from the caller context rather than "1" or "0".
Correct mflags pass into mac_init_socket() from previous commit to not
include M_ZERO.
Submitted by: sam
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/uipc_sockbuf.c | 7 | ||||
-rw-r--r-- | sys/kern/uipc_socket.c | 6 | ||||
-rw-r--r-- | sys/kern/uipc_socket2.c | 7 | ||||
-rw-r--r-- | sys/kern/uipc_usrreq.c | 26 |
4 files changed, 22 insertions, 24 deletions
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index 16ee01e..ca2752e 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -1061,14 +1061,11 @@ pru_sosetlabel_null(struct socket *so) * Make a copy of a sockaddr in a malloced buffer of type M_SONAME. */ struct sockaddr * -dup_sockaddr(sa, canwait) - struct sockaddr *sa; - int canwait; +sodupsockaddr(const struct sockaddr *sa, int mflags) { struct sockaddr *sa2; - MALLOC(sa2, struct sockaddr *, sa->sa_len, M_SONAME, - canwait ? M_WAITOK : M_NOWAIT); + sa2 = malloc(sa->sa_len, M_SONAME, mflags); if (sa2) bcopy(sa, sa2, sa->sa_len); return sa2; diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 70ef43a..8bd487d 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -138,7 +138,7 @@ soalloc(int mflags) so = uma_zalloc(socket_zone, mflags | M_ZERO); if (so) { #ifdef MAC - error = mac_init_socket(so, mflags | M_ZERO); + error = mac_init_socket(so, mflags); if (error != 0) { uma_zfree(socket_zone, so); so = NULL; @@ -908,8 +908,8 @@ dontblock: ("m->m_type == %d", m->m_type)); orig_resid = 0; if (psa) - *psa = dup_sockaddr(mtod(m, struct sockaddr *), - mp0 == 0); + *psa = sodupsockaddr(mtod(m, struct sockaddr *), + mp0 == NULL ? M_WAITOK : M_NOWAIT); if (flags & MSG_PEEK) { m = m->m_next; } else { diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index 16ee01e..ca2752e 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -1061,14 +1061,11 @@ pru_sosetlabel_null(struct socket *so) * Make a copy of a sockaddr in a malloced buffer of type M_SONAME. */ struct sockaddr * -dup_sockaddr(sa, canwait) - struct sockaddr *sa; - int canwait; +sodupsockaddr(const struct sockaddr *sa, int mflags) { struct sockaddr *sa2; - MALLOC(sa2, struct sockaddr *, sa->sa_len, M_SONAME, - canwait ? M_WAITOK : M_NOWAIT); + sa2 = malloc(sa->sa_len, M_SONAME, mflags); if (sa2) bcopy(sa, sa2, sa->sa_len); return sa2; diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index f6a5ea2..dad644d 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -127,10 +127,11 @@ uipc_accept(struct socket *so, struct sockaddr **nam) * (our peer may have closed already!). */ if (unp->unp_conn && unp->unp_conn->unp_addr) { - *nam = dup_sockaddr((struct sockaddr *)unp->unp_conn->unp_addr, - 1); + *nam = sodupsockaddr( + (struct sockaddr *)unp->unp_conn->unp_addr, M_WAITOK); } else { - *nam = dup_sockaddr((struct sockaddr *)&sun_noname, 1); + *nam = sodupsockaddr((struct sockaddr *)&sun_noname, + M_WAITOK); } return (0); } @@ -220,15 +221,16 @@ uipc_peeraddr(struct socket *so, struct sockaddr **nam) if (unp == 0) return (EINVAL); if (unp->unp_conn && unp->unp_conn->unp_addr) - *nam = dup_sockaddr((struct sockaddr *)unp->unp_conn->unp_addr, - 1); + *nam = sodupsockaddr( + (struct sockaddr *)unp->unp_conn->unp_addr, M_WAITOK); else { /* * XXX: It seems that this test always fails even when * connection is established. So, this else clause is * added as workaround to return PF_LOCAL sockaddr. */ - *nam = dup_sockaddr((struct sockaddr *)&sun_noname, 1); + *nam = sodupsockaddr((struct sockaddr *)&sun_noname, + M_WAITOK); } return (0); } @@ -441,9 +443,11 @@ uipc_sockaddr(struct socket *so, struct sockaddr **nam) if (unp == 0) return (EINVAL); if (unp->unp_addr) - *nam = dup_sockaddr((struct sockaddr *)unp->unp_addr, 1); + *nam = sodupsockaddr((struct sockaddr *)unp->unp_addr, + M_WAITOK); else - *nam = dup_sockaddr((struct sockaddr *)&sun_noname, 1); + *nam = sodupsockaddr((struct sockaddr *)&sun_noname, + M_WAITOK); return (0); } @@ -665,7 +669,7 @@ restart: vp = nd.ni_vp; vp->v_socket = unp->unp_socket; unp->unp_vnode = vp; - unp->unp_addr = (struct sockaddr_un *)dup_sockaddr(nam, 1); + unp->unp_addr = (struct sockaddr_un *)sodupsockaddr(nam, M_WAITOK); VOP_UNLOCK(vp, 0, td); vn_finished_write(mp); free(buf, M_TEMP); @@ -724,8 +728,8 @@ unp_connect(so, nam, td) unp3 = sotounpcb(so3); if (unp2->unp_addr) unp3->unp_addr = (struct sockaddr_un *) - dup_sockaddr((struct sockaddr *) - unp2->unp_addr, 1); + sodupsockaddr((struct sockaddr *)unp2->unp_addr, + M_WAITOK); /* * unp_peercred management: |