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;