[comp.sys.mips] UNIX domain sockets

bin@primate.wisc.edu (Brain in Neutral) (07/22/89)

Anyone know how to get UNIX domain sockets to work in RISC/os 4.0?  (This
is on an M/120.)  In 3.0, sockets in this domain were not supported at
all; I am happy to see they are included in 4.0, but would be happier
yet if I could get them to work.  The following works on a VAX (Ultrix 1.2
or 2.2), but not on a MIPS:

static int	sock;

static openserver ()
{
struct sockaddr_un	sun;

	sock = socket (AF_UNIX, SOCK_STREAM, 0);
	if (sock < 0)
	{
		perror ("socket");
		return (-1);
	}

	bzero ((char *) &sun, sizeof (sun));
	sun.sun_family = AF_UNIX;
	strcpy (sun.sun_path, socketFile);

	if (connect (sock, &sun, strlen (sun.sun_path)
		+ sizeof (sun.sun_family)) == 0)
		return (0);	/* everything ok */
	perror ("connect");

	close (sock);
	return (-1);
}


static writeserver (s)
char	*s;
{
	if (write (sock, s, strlen (s)) < 0)
	{
		perror ("write");
		return (-1);
	}
	return (0);
}

The socket() and connect() calls work ok, but the write fails with
"write: Socket is not connected".  What gives?

Paul DuBois
dubois@primate.wisc.edu