summaryrefslogtreecommitdiff
path: root/sys/kern/uipc_syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/uipc_syscalls.c')
-rw-r--r--sys/kern/uipc_syscalls.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index 09156f093582..fb8f428d5ae5 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)uipc_syscalls.c 8.4 (Berkeley) 2/21/94
- * $Id: uipc_syscalls.c,v 1.24 1997/03/31 12:30:01 davidg Exp $
+ * $Id: uipc_syscalls.c,v 1.25 1997/04/09 16:53:40 bde Exp $
*/
#include "opt_ktrace.h"
@@ -130,7 +130,7 @@ bind(p, uap, retval)
error = sockargs(&nam, uap->name, uap->namelen, MT_SONAME);
if (error)
return (error);
- error = sobind((struct socket *)fp->f_data, nam);
+ error = sobind((struct socket *)fp->f_data, nam, p);
m_freem(nam);
return (error);
}
@@ -151,7 +151,7 @@ listen(p, uap, retval)
error = getsock(p->p_fd, uap->s, &fp);
if (error)
return (error);
- return (solisten((struct socket *)fp->f_data, uap->backlog));
+ return (solisten((struct socket *)fp->f_data, uap->backlog, p));
}
static int
@@ -312,7 +312,7 @@ connect(p, uap, retval)
error = sockargs(&nam, uap->name, uap->namelen, MT_SONAME);
if (error)
return (error);
- error = soconnect(so, nam);
+ error = soconnect(so, nam, p);
if (error)
goto bad;
if ((so->so_state & SS_NBIO) && (so->so_state & SS_ISCONNECTING)) {
@@ -420,6 +420,7 @@ sendit(p, s, mp, flags, retsize)
register int i;
struct mbuf *to, *control;
int len, error;
+ struct socket *so;
#ifdef KTRACE
struct iovec *ktriov = NULL;
#endif
@@ -485,8 +486,9 @@ sendit(p, s, mp, flags, retsize)
}
#endif
len = auio.uio_resid;
- error = sosend((struct socket *)fp->f_data, to, &auio,
- (struct mbuf *)0, control, flags);
+ so = (struct socket *)fp->f_data;
+ error = so->so_proto->pr_usrreqs->pru_sosend(so, to, &auio, 0, control,
+ flags);
if (error) {
if (auio.uio_resid != len && (error == ERESTART ||
error == EINTR || error == EWOULDBLOCK))
@@ -659,6 +661,7 @@ recvit(p, s, mp, namelenp, retsize)
int len, error;
struct mbuf *m, *from = 0, *control = 0;
caddr_t ctlbuf;
+ struct socket *so;
#ifdef KTRACE
struct iovec *ktriov = NULL;
#endif
@@ -687,7 +690,8 @@ recvit(p, s, mp, namelenp, retsize)
}
#endif
len = auio.uio_resid;
- error = soreceive((struct socket *)fp->f_data, &from, &auio,
+ so = (struct socket *)fp->f_data;
+ error = so->so_proto->pr_usrreqs->pru_soreceive(so, &from, &auio,
(struct mbuf **)0, mp->msg_control ? &control : (struct mbuf **)0,
&mp->msg_flags);
if (error) {
@@ -1012,7 +1016,7 @@ setsockopt(p, uap, retval)
m->m_len = uap->valsize;
}
return (sosetopt((struct socket *)fp->f_data, uap->level,
- uap->name, m));
+ uap->name, m, p));
}
/* ARGSUSED */
@@ -1043,7 +1047,7 @@ getsockopt(p, uap, retval)
} else
valsize = 0;
if ((error = sogetopt((struct socket *)fp->f_data, uap->level,
- uap->name, &m)) == 0 && uap->val && valsize && m != NULL) {
+ uap->name, &m, p)) == 0 && uap->val && valsize && m != NULL) {
op = 0;
while (m && !error && op < valsize) {
i = min(m->m_len, (valsize - op));