diff --git a/src/fdlib.c b/src/fdlib.c
index 690f3c39019c3e04d7124ed975c305ea1eb7bbc4..136fa9f0449147a567393eb5d941c9cdaa91fc5e 100644
--- a/src/fdlib.c
+++ b/src/fdlib.c
@@ -3,7 +3,7 @@
 #include "error.h"
 #include <math.h>
 
-RCSID("$Id: fdlib.c,v 1.20 1998/06/06 03:15:20 hubbe Exp $");
+RCSID("$Id: fdlib.c,v 1.21 1998/07/15 23:26:23 hubbe Exp $");
 
 #ifdef HAVE_WINSOCK_H
 
@@ -339,8 +339,6 @@ int fd_connect (FD fd, struct sockaddr *a, int len)
 }
 SOCKFUN4(getsockopt,int,int,void*,int*)
 SOCKFUN4(setsockopt,int,int,void*,int)
-SOCKFUN2(getsockname,struct sockaddr *,int *)
-SOCKFUN2(getpeername,struct sockaddr *,int *)
 SOCKFUN3(recv,void *,int,int)
 SOCKFUN5(recvfrom,void *,int,int,struct sockaddr *,int*)
 SOCKFUN3(send,void *,int,int)
@@ -348,6 +346,40 @@ SOCKFUN5(sendto,void *,int,int,struct sockaddr *,int*)
 SOCKFUN1(shutdown, int)
 SOCKFUN1(listen, int)
 
+int fd_getsockname(FD fd, struct sockaddr *a, size_t *b)
+{
+  SOCKET ret;
+  mt_lock(&fd_mutex);
+  if(fd_type[fd] != FD_SOCKET)
+  {
+    mt_unlock(&fd_mutex); 
+    errno=ENOTSUPP; 
+     return -1; 
+  } 
+  ret=(SOCKET)da_handle[fd]; 
+  mt_unlock(&fd_mutex); 
+  ret=getsockname(fd,a,(int *)b); 
+  if(ret == SOCKET_ERROR) errno=WSAGetLastError(); 
+  return (int)ret; 
+}
+
+int fd_getpeername(FD fd, struct sockaddr *a, size_t *b)
+{
+  SOCKET ret;
+  mt_lock(&fd_mutex);
+  if(fd_type[fd] != FD_SOCKET)
+  {
+    mt_unlock(&fd_mutex); 
+    errno=ENOTSUPP; 
+     return -1; 
+  } 
+  ret=(SOCKET)da_handle[fd]; 
+  mt_unlock(&fd_mutex); 
+  ret=getsockname(fd,a,(int *)b); 
+  if(ret == SOCKET_ERROR) errno=WSAGetLastError(); 
+  return (int)ret; 
+}
+
 int fd_close(FD fd)
 {
   long h;
diff --git a/src/fdlib.h b/src/fdlib.h
index 869c44781b1e92e93301b19a7aa205fe9620918b..d5e1bcbd36140f625cbd3f7733e5e4f00b0f4c4d 100644
--- a/src/fdlib.h
+++ b/src/fdlib.h
@@ -1,5 +1,5 @@
 /*
- * $Id: fdlib.h,v 1.18 1998/06/08 12:48:27 grubba Exp $
+ * $Id: fdlib.h,v 1.19 1998/07/15 23:26:24 hubbe Exp $
  */
 #ifndef FDLIB_H
 #define FDLIB_H
@@ -76,14 +76,14 @@ SOCKFUN2(bind, struct sockaddr *, int)
 int fd_connect (FD fd, struct sockaddr *a, int len);
 SOCKFUN4(getsockopt,int,int,void*,int*)
 SOCKFUN4(setsockopt,int,int,void*,int)
-SOCKFUN2(getsockname,struct sockaddr *,int *)
-SOCKFUN2(getpeername,struct sockaddr *,int *)
 SOCKFUN3(recv,void *,int,int)
 SOCKFUN5(recvfrom,void *,int,int,struct sockaddr *,int*)
 SOCKFUN3(send,void *,int,int)
 SOCKFUN5(sendto,void *,int,int,struct sockaddr *,int*)
 SOCKFUN1(shutdown, int)
 SOCKFUN1(listen, int)
+int fd_getsockname(FD fd, struct sockaddr *a, size_t *b);
+int fd_getpeername(FD fd, struct sockaddr *a, size_t *b);
 int fd_close(FD fd);
 long fd_write(FD fd, void *buf, long len);
 long fd_read(FD fd, void *to, long len);
@@ -94,25 +94,6 @@ int fd_select(int fds, FD_SET *a, FD_SET *b, FD_SET *c, struct timeval *t);
 int fd_ioctl(FD fd, int cmd, void *data);
 FD fd_dup(FD from);
 FD fd_dup2(FD from, FD to);
-struct fd_mapper;
-void init_fd_mapper(struct fd_mapper *x);
-void exit_fd_mapper(struct fd_mapper *x);
-void fd_mapper_set(struct fd_mapper *x, FD fd, void *data);
-void *fd_mapper_get(struct fd_mapper *x, FD fd);
-struct fd_mapper_data;
-struct fd_mapper;
-void init_fd_mapper(struct fd_mapper *x);
-void exit_fd_mapper(struct fd_mapper *x);
-void fd_mapper_set(struct fd_mapper *x, FD fd, void *data);
-void *fd_mapper_get(struct fd_mapper *x, FD fd);
-struct fd_data_hash;
-struct fd_data_hash_block;
-int get_fd_data_key(void);
-void store_fd_data(FD fd, int key, void *data);
-void *get_fd_data(FD fd, int key);
-struct event;
-struct fd_waitor;
-void fd_waitor_set_customer(struct fd_waitor *x, FD customer, int flags);
 /* Prototypes end here */
 
 #undef SOCKFUN1
diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c
index 42626cd0a2b9d27a2d844c5cabf6f9c0071b00d4..0aa177340b61cb9312bf3a7ab319750a9ef631d5 100644
--- a/src/modules/files/efuns.c
+++ b/src/modules/files/efuns.c
@@ -22,7 +22,7 @@
 #include "file_machine.h"
 #include "file.h"
 
-RCSID("$Id: efuns.c,v 1.57 1998/07/06 21:59:27 grubba Exp $");
+RCSID("$Id: efuns.c,v 1.58 1998/07/15 23:26:56 hubbe Exp $");
 
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -428,7 +428,10 @@ void f_get_dir(INT32 args)
 		 ((pathconf(path, _PC_NAME_MAX) < 1024)?1024:
 		  pathconf(path, _PC_NAME_MAX)) + 1)
 #else
-	  alloca(sizeof(struct dirent) + NAME_MAX + 1024 + 1)
+#ifndef NAME_MAX
+#define NAME_MAX 1024
+#endif
+	  alloca(sizeof(struct dirent) + NAME_MAX+ 1024 + 1)
 #endif /* HAVE_SOLARIS_READDIR_R */
       )) {
       closedir(dir);
diff --git a/src/modules/files/file.c b/src/modules/files/file.c
index e410e43126ce734d25810af66c8c765cfd3795c0..4e13d77050e3d2ccd4966080cce2cd2a39c2878e 100644
--- a/src/modules/files/file.c
+++ b/src/modules/files/file.c
@@ -5,7 +5,7 @@
 \*/
 
 #include "global.h"
-RCSID("$Id: file.c,v 1.111 1998/07/15 14:44:19 grubba Exp $");
+RCSID("$Id: file.c,v 1.112 1998/07/15 23:26:58 hubbe Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -1377,9 +1377,9 @@ retry_connect:
       int tmp2;
       for(tmp2=0;tmp2<20;tmp2++)
       {
-	int tmp;
-	len=sizeof(addr);
-	tmp=fd_accept(fd,(struct sockaddr *)&addr,&len);
+	int tmp, len2;
+	len2=sizeof(addr);
+	tmp=fd_accept(fd,(struct sockaddr *)&addr,&len2);
 	
 	if(tmp!=-1)
 	  fd_close(tmp);
@@ -1401,9 +1401,10 @@ retry_connect:
    */
   do
   {
-    len=sizeof(addr);
+    int len3;
+    len3=sizeof(addr);
   retry_accept:
-    sv[0]=fd_accept(fd,(struct sockaddr *)&addr,&len);
+    sv[0]=fd_accept(fd,(struct sockaddr *)&addr,&len3);
 
     set_nonblocking(sv[0],0);
 
diff --git a/src/modules/files/socket.c b/src/modules/files/socket.c
index c9300e5b51b0e50841580202ed6873f5cf51c524..823b66cdf42eadb208d801f76f7ec29d369c858a 100644
--- a/src/modules/files/socket.c
+++ b/src/modules/files/socket.c
@@ -18,7 +18,7 @@
 #include "file_machine.h"
 #include "file.h"
 
-RCSID("$Id: socket.c,v 1.35 1998/05/27 13:30:54 grubba Exp $");
+RCSID("$Id: socket.c,v 1.36 1998/07/15 23:26:59 hubbe Exp $");
 
 #ifdef HAVE_SYS_TYPE_H
 #include <sys/types.h>
@@ -345,7 +345,8 @@ static void port_accept(INT32 args)
 static void socket_query_address(INT32 args)
 {
   struct sockaddr_in addr;
-  int i,len;
+  int i;
+  size_t len;
   char buffer[496],*q;
 
   if(THIS->fd <0)
diff --git a/src/modules/spider/dumudp.c b/src/modules/spider/dumudp.c
index 191aa47328a73d2246e15c5deff238a78896e4a4..97929a6ef8e7b1060954622155f060a8923307d1 100644
--- a/src/modules/spider/dumudp.c
+++ b/src/modules/spider/dumudp.c
@@ -1,12 +1,12 @@
 /*
- * $Id: dumudp.c,v 1.38 1998/07/04 17:05:22 grubba Exp $
+ * $Id: dumudp.c,v 1.39 1998/07/15 23:27:25 hubbe Exp $
  */
 
 #include "global.h"
 
 #include "config.h"
 
-RCSID("$Id: dumudp.c,v 1.38 1998/07/04 17:05:22 grubba Exp $");
+RCSID("$Id: dumudp.c,v 1.39 1998/07/15 23:27:25 hubbe Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -400,7 +400,8 @@ static void udp_set_blocking(INT32 args)
 static void udp_query_address(INT32 args)
 {
   struct sockaddr_in addr;
-  int i,len;
+  int i;
+  size_t len;
   char buffer[496],*q;
 
   if(THIS->fd <0)
diff --git a/src/signal_handler.c b/src/signal_handler.c
index 3c589e5296bc442d6d5571b84f4fc66cec185228..c1eb4c3e2b28c6e8fd18dc51fb93316a179a5ec2 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -22,7 +22,7 @@
 #include "builtin_functions.h"
 #include <signal.h>
 
-RCSID("$Id: signal_handler.c,v 1.75 1998/07/12 23:15:23 grubba Exp $");
+RCSID("$Id: signal_handler.c,v 1.76 1998/07/15 23:26:25 hubbe Exp $");
 
 #ifdef HAVE_PASSWD_H
 # include <passwd.h>
@@ -372,7 +372,11 @@ static RETSIGTYPE receive_signal(int signum)
      * SIGCHLD is the safest signal to substitute.
      *	/grubba 1998-05-19
      */
+#ifdef SIGCHLD
     signum = SIGCHLD;
+#else
+    signum = 0;
+#endif
   }
 
   tmp=firstsig+1;