summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-03-01 03:14:23 +0000
committerrwatson <rwatson@FreeBSD.org>2004-03-01 03:14:23 +0000
commitb0b5f961bd295aee20ca2584b96ebf00e9cb92f3 (patch)
tree6b16845a701c80c2675bb9aed085227f806e915d /sys/kern
parent9fe9a307306d35d1219be5eb3a88475032b080d0 (diff)
downloadFreeBSD-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.c7
-rw-r--r--sys/kern/uipc_socket.c6
-rw-r--r--sys/kern/uipc_socket2.c7
-rw-r--r--sys/kern/uipc_usrreq.c26
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:
OpenPOWER on IntegriCloud