--- socket.cc.orig	Wed Nov  3 20:49:09 1999
+++ socket.cc	Sun Dec 12 20:38:51 1999
@@ -9,6 +9,10 @@
  *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+#if (defined(__unix__) || defined(unix)) && !defined(USG)
+#include <sys/param.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -37,6 +41,7 @@
 		if (!buffer) buffer=new char[MAX_LEN];
 		hostent *hpr=&hp;
 		temp_variable=0;
+#if !(defined(BSD) && (BSD >= 199306))
 #ifdef __sparc__
 		gethostbyname_r(host,&hp,buffer,MAX_LEN,&temp_variable);
 #else
@@ -44,11 +49,11 @@
 #endif
 		if (temp_variable) return -1;
 		memcpy((char *)&info.sin_addr,(char *)hpr->h_addr,hpr->h_length);
-		/*
+#else /* !(defined(BSD) && (BSD >= 199306)) */		
 		hostent *hp=gethostbyname(host);
 		if (!hp) return -1;
 		memcpy((char *)&info.sin_addr,(char *)hp->h_addr,hp->h_length);
-		*/
+#endif /* !(defined(BSD) && (BSD >= 199306)) */
 	} else info.sin_addr.s_addr=INADDR_ANY;
 	info.sin_port=htons(port);
 	return sizeof(info);
@@ -59,7 +64,7 @@
 	int my_addr;
 	unsigned int len;
 	len = sizeof(info);
-	if (getsockname(fd, (struct sockaddr* )&info, &len) == -1)
+	if (getsockname(fd, (struct sockaddr* )&info, (int *)&len) == -1)
 		return -1;
 	memcpy(&my_addr, (char *)&info.sin_addr.s_addr,sizeof(my_addr));
 	return my_addr;
@@ -147,7 +152,7 @@
 	sockaddr_in addr;
 	unsigned int len=sizeof(addr);
 	int oldfd=fd;
-	if ((fd=accept(fd,(sockaddr *)&addr,&len))<0) {
+	if ((fd=accept(fd,(sockaddr *)&addr,(int *)&len))<0) {
 		return -1;
 	}
 	if (oldfd>0) {
