Back off the sendit()/recvit() change, some have problems with it
This commit is contained in:
parent
498641fc7e
commit
26d45c1101
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: uipc_syscalls_43.c,v 1.12 2001/06/25 19:24:02 jdolecek Exp $ */
|
||||
/* $NetBSD: uipc_syscalls_43.c,v 1.13 2001/06/25 20:46:11 jdolecek Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1990, 1993
|
||||
|
@ -166,7 +166,7 @@ compat_43_sys_recv(p, v, retval)
|
|||
aiov.iov_len = SCARG(uap, len);
|
||||
msg.msg_control = 0;
|
||||
msg.msg_flags = SCARG(uap, flags);
|
||||
return (recvit(p, SCARG(uap, s), &msg, (caddr_t)0, retval, 0));
|
||||
return (recvit(p, SCARG(uap, s), &msg, (caddr_t)0, retval));
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -227,7 +227,7 @@ compat_43_sys_recvmsg(p, v, retval)
|
|||
goto done;
|
||||
msg.msg_iov = iov;
|
||||
error = recvit(p, SCARG(uap, s), &msg,
|
||||
(caddr_t)&SCARG(uap, msg)->msg_namelen, retval, 0);
|
||||
(caddr_t)&SCARG(uap, msg)->msg_namelen, retval);
|
||||
|
||||
if (msg.msg_controllen && error == 0)
|
||||
error = copyout((caddr_t)&msg.msg_controllen,
|
||||
|
@ -261,7 +261,7 @@ compat_43_sys_send(p, v, retval)
|
|||
aiov.iov_len = SCARG(uap, len);
|
||||
msg.msg_control = 0;
|
||||
msg.msg_flags = 0;
|
||||
return (sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval, 0));
|
||||
return (sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval));
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -297,7 +297,7 @@ compat_43_sys_sendmsg(p, v, retval)
|
|||
goto done;
|
||||
msg.msg_flags = MSG_COMPAT;
|
||||
msg.msg_iov = iov;
|
||||
error = sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval, 0);
|
||||
error = sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval);
|
||||
done:
|
||||
if (iov != aiov)
|
||||
FREE(iov, M_IOV);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: netbsd32_socket.c,v 1.3 2001/06/25 19:24:02 jdolecek Exp $ */
|
||||
/* $NetBSD: netbsd32_socket.c,v 1.4 2001/06/25 20:46:12 jdolecek Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998, 2001 Matthew R. Green
|
||||
|
@ -314,7 +314,7 @@ netbsd32_sendmsg(p, v, retval)
|
|||
msg.msg_flags = 0;
|
||||
#endif
|
||||
/* Luckily we can use this directly */
|
||||
error = sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval, 0);
|
||||
error = sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval);
|
||||
done:
|
||||
if (iov != aiov)
|
||||
FREE(iov, M_IOV);
|
||||
|
@ -385,5 +385,5 @@ netbsd32_sendto(p, v, retval)
|
|||
#endif
|
||||
aiov.iov_base = (char *)(u_long)SCARG(uap, buf); /* XXX kills const */
|
||||
aiov.iov_len = SCARG(uap, len);
|
||||
return (sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval, 0));
|
||||
return (sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: svr4_stream.c,v 1.44 2001/06/25 19:24:03 jdolecek Exp $ */
|
||||
/* $NetBSD: svr4_stream.c,v 1.45 2001/06/25 20:46:12 jdolecek Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994 The NetBSD Foundation, Inc.
|
||||
|
@ -1634,7 +1634,7 @@ svr4_sys_putmsg(p, v, retval)
|
|||
aiov.iov_base = dat.buf;
|
||||
aiov.iov_len = dat.len;
|
||||
error = sendit(p, SCARG(uap, fd), &msg,
|
||||
SCARG(uap, flags), retval, 0);
|
||||
SCARG(uap, flags), retval);
|
||||
|
||||
*retval = 0;
|
||||
return error;
|
||||
|
@ -1898,7 +1898,7 @@ svr4_sys_getmsg(p, v, retval)
|
|||
msg.msg_flags = 0;
|
||||
|
||||
error = recvit(p, SCARG(uap, fd), &msg, (caddr_t) flen,
|
||||
retval, 0);
|
||||
retval);
|
||||
|
||||
if (error) {
|
||||
DPRINTF(("getmsg: recvit failed %d\n", error));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: svr4_32_stream.c,v 1.5 2001/06/25 19:24:03 jdolecek Exp $ */
|
||||
/* $NetBSD: svr4_32_stream.c,v 1.6 2001/06/25 20:46:12 jdolecek Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994 The NetBSD Foundation, Inc.
|
||||
|
@ -1637,7 +1637,7 @@ svr4_32_sys_putmsg(p, v, retval)
|
|||
aiov.iov_base = (caddr_t)(u_long)dat.buf;
|
||||
aiov.iov_len = dat.len;
|
||||
error = sendit(p, SCARG(uap, fd), &msg,
|
||||
SCARG(uap, flags), retval, 0);
|
||||
SCARG(uap, flags), retval);
|
||||
|
||||
*retval = 0;
|
||||
return error;
|
||||
|
@ -1903,7 +1903,7 @@ svr4_32_sys_getmsg(p, v, retval)
|
|||
msg.msg_flags = 0;
|
||||
|
||||
error = recvit(p, SCARG(uap, fd), &msg, (caddr_t) flen,
|
||||
retval, 0);
|
||||
retval);
|
||||
|
||||
if (error) {
|
||||
DPRINTF(("getmsg: recvit failed %d\n", error));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: uipc_syscalls.c,v 1.62 2001/06/25 19:46:50 jdolecek Exp $ */
|
||||
/* $NetBSD: uipc_syscalls.c,v 1.63 2001/06/25 20:46:13 jdolecek Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1990, 1993
|
||||
|
@ -401,7 +401,7 @@ sys_sendto(struct proc *p, void *v, register_t *retval)
|
|||
#endif
|
||||
aiov.iov_base = (char *)SCARG(uap, buf); /* XXX kills const */
|
||||
aiov.iov_len = SCARG(uap, len);
|
||||
return (sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval, 0));
|
||||
return (sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval));
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -436,7 +436,7 @@ sys_sendmsg(struct proc *p, void *v, register_t *retval)
|
|||
#ifdef COMPAT_OLDSOCK
|
||||
msg.msg_flags = 0;
|
||||
#endif
|
||||
error = sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval, 0);
|
||||
error = sendit(p, SCARG(uap, s), &msg, SCARG(uap, flags), retval);
|
||||
done:
|
||||
if (iov != aiov)
|
||||
free(iov, M_IOV);
|
||||
|
@ -444,8 +444,7 @@ done:
|
|||
}
|
||||
|
||||
int
|
||||
sendit(struct proc *p, int s, struct msghdr *mp, int flags, register_t *retsize,
|
||||
int kernsa)
|
||||
sendit(struct proc *p, int s, struct msghdr *mp, int flags, register_t *retsize)
|
||||
{
|
||||
struct file *fp;
|
||||
struct uio auio;
|
||||
|
@ -491,14 +490,10 @@ sendit(struct proc *p, int s, struct msghdr *mp, int flags, register_t *retsize,
|
|||
}
|
||||
}
|
||||
if (mp->msg_name) {
|
||||
if (kernsa)
|
||||
to = (struct mbuf *) mp->msg_name;
|
||||
else {
|
||||
error = sockargs(&to, mp->msg_name, mp->msg_namelen,
|
||||
error = sockargs(&to, mp->msg_name, mp->msg_namelen,
|
||||
MT_SONAME);
|
||||
if (error)
|
||||
goto out;
|
||||
}
|
||||
if (error)
|
||||
goto out;
|
||||
} else
|
||||
to = 0;
|
||||
if (mp->msg_control) {
|
||||
|
@ -598,7 +593,7 @@ sys_recvfrom(struct proc *p, void *v, register_t *retval)
|
|||
msg.msg_control = 0;
|
||||
msg.msg_flags = SCARG(uap, flags);
|
||||
return (recvit(p, SCARG(uap, s), &msg,
|
||||
(caddr_t)SCARG(uap, fromlenaddr), retval, 0));
|
||||
(caddr_t)SCARG(uap, fromlenaddr), retval));
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -637,7 +632,7 @@ sys_recvmsg(struct proc *p, void *v, register_t *retval)
|
|||
#else
|
||||
msg.msg_flags = SCARG(uap, flags);
|
||||
#endif
|
||||
if ((error = recvit(p, SCARG(uap, s), &msg, (caddr_t)0, retval,0)) ==0){
|
||||
if ((error = recvit(p, SCARG(uap, s), &msg, (caddr_t)0, retval)) == 0) {
|
||||
msg.msg_iov = uiov;
|
||||
error = copyout((caddr_t)&msg, (caddr_t)SCARG(uap, msg),
|
||||
sizeof(msg));
|
||||
|
@ -650,7 +645,7 @@ done:
|
|||
|
||||
int
|
||||
recvit(struct proc *p, int s, struct msghdr *mp, caddr_t namelenp,
|
||||
register_t *retsize, int kernsa)
|
||||
register_t *retsize)
|
||||
{
|
||||
struct file *fp;
|
||||
struct uio auio;
|
||||
|
@ -739,14 +734,10 @@ recvit(struct proc *p, int s, struct msghdr *mp, caddr_t namelenp,
|
|||
if (len > from->m_len)
|
||||
len = from->m_len;
|
||||
/* else if len < from->m_len ??? */
|
||||
if (kernsa)
|
||||
memcpy(mp->msg_name, mtod(from, caddr_t), len);
|
||||
else {
|
||||
error = copyout(mtod(from, caddr_t),
|
||||
error = copyout(mtod(from, caddr_t),
|
||||
(caddr_t)mp->msg_name, (unsigned)len);
|
||||
if (error)
|
||||
goto out;
|
||||
}
|
||||
if (error)
|
||||
goto out;
|
||||
}
|
||||
mp->msg_namelen = len;
|
||||
if (namelenp &&
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: socketvar.h,v 1.47 2001/06/25 19:24:03 jdolecek Exp $ */
|
||||
/* $NetBSD: socketvar.h,v 1.48 2001/06/25 20:46:12 jdolecek Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1982, 1986, 1990, 1993
|
||||
|
@ -317,8 +317,8 @@ int soshutdown(struct socket *so, int how);
|
|||
void sowakeup(struct socket *so, struct sockbuf *sb);
|
||||
int sockargs(struct mbuf **, const void *, int, int);
|
||||
|
||||
int sendit(struct proc *, int, struct msghdr *, int, register_t *, int);
|
||||
int recvit(struct proc *, int, struct msghdr *, caddr_t, register_t *, int);
|
||||
int sendit(struct proc *, int, struct msghdr *, int, register_t *);
|
||||
int recvit(struct proc *, int, struct msghdr *, caddr_t, register_t *);
|
||||
|
||||
#endif /* _KERNEL */
|
||||
|
||||
|
|
Loading…
Reference in New Issue