Ultrix-3.1/src/libc/net/recv.c

Compare this file to the similar file:
Show the results in this format:


/**********************************************************************
 *   Copyright (c) Digital Equipment Corporation 1984, 1985, 1986.    *
 *   All Rights Reserved. 					      *
 *   Reference "/usr/src/COPYRIGHT" for applicable restrictions.      *
 **********************************************************************/

/*
 * SCCSID: @(#)recv.c	3.0	4/22/86
 */
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <errno.h>

recv(s, buf, len, flags)
int s;
char *buf;
int len, flags;
{
	return(recvit(s, buf, len, flags, 0));
}

recvfrom(s, buf, len, flags, from, fromlen)
int		s;
char		*buf;
int		len, flags;
struct sockaddr	*from;
int		*fromlen;
{
	struct msginfo		foo;
	register struct msginfo	*foop = &foo;
	int	error;

	foop->mi_to = from;
	foop->mi_tlen = *fromlen;
	foop->mi_rights = 0;
	foop->mi_rlen = 0;
	error = recvit(s, buf, len, flags, foop);
	*fromlen = foop->mi_tlen;
	return(error);
}

recvmsg(s, msg, flags)
int			s;
register struct msghdr	*msg;
int			flags;
{
	struct msginfo		foo;
	register struct msginfo	*foop = &foo;
	extern int		errno;
	int			error;

	if (msg->msg_iovlen != 1) {
		errno = EMSGSIZE;
		return(-1);
	}
	foop->mi_to = msg->msg_name;
	foop->mi_tlen = msg->msg_namelen;
	foop->mi_rights = msg->msg_accrights;
	foop->mi_rlen = msg->msg_accrightslen;
	error = recvit(s, msg->msg_iov->iov_base,
			 msg->msg_iov->iov_len, flags, foop);
	msg->msg_namelen = foop->mi_tlen;
	msg->msg_accrightslen = foop->mi_rlen;
	return(error);
}