Back off the sendit()/recvit() change, some have problems with it

This commit is contained in:
jdolecek 2001-06-25 20:46:11 +00:00
parent 498641fc7e
commit 26d45c1101
6 changed files with 30 additions and 39 deletions

View File

@ -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);

View File

@ -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));
}

View File

@ -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));

View File

@ -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));

View File

@ -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 &&

View File

@ -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 */