diff --git a/src/fdlib.c b/src/fdlib.c index d9c77eaca1a4494d015ffb6cbe6aa9a51d60373d..673eb3a7fc631d153c732f7846db25534441f004 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.43 2000/08/20 15:59:10 grubba Exp $"); +RCSID("$Id: fdlib.c,v 1.44 2000/08/20 16:15:25 grubba Exp $"); #ifdef HAVE_WINSOCK_H @@ -340,37 +340,42 @@ PMOD_EXPORT FD debug_fd_accept(FD fd, struct sockaddr *addr, ACCEPT_SIZE_T *addr #define SOCKFUN(NAME,X1,X2) \ -PMOD_EXPORT int PIKE_CONCAT(debug_fd_,NAME) X1 { SOCKET ret; \ +PMOD_EXPORT int PIKE_CONCAT(debug_fd_,NAME) X1 { \ + SOCKET s; \ + int ret; \ FDDEBUG(fprintf(stderr, #NAME " on %d (%ld)\n", \ fd, PTRDIFF_T_TO_LONG((ptrdiff_t)da_handle[fd]))); \ mt_lock(&fd_mutex); \ if(fd_type[fd] != FD_SOCKET) { \ mt_unlock(&fd_mutex); \ - errno=ENOTSUPP; \ + errno = ENOTSUPP; \ return -1; \ } \ - ret=(SOCKET)da_handle[fd]; \ + s = (SOCKET)da_handle[fd]; \ mt_unlock(&fd_mutex); \ - ret=NAME X2; \ - if(ret == SOCKET_ERROR) errno=WSAGetLastError(); \ - FDDEBUG(fprintf(stderr, #NAME " returned %d (%d)\n",ret,errno)); \ - return (int)ret; \ + ret = NAME X2; \ + if(ret == SOCKET_ERROR) { \ + errno = WSAGetLastError(); \ + ret = -1; \ + } \ + FDDEBUG(fprintf(stderr, #NAME " returned %d (%d)\n", ret, errno)); \ + return ret; \ } #define SOCKFUN1(NAME,T1) \ - SOCKFUN(NAME, (FD fd, T1 a), (ret, a) ) + SOCKFUN(NAME, (FD fd, T1 a), (s, a) ) #define SOCKFUN2(NAME,T1,T2) \ - SOCKFUN(NAME, (FD fd, T1 a, T2 b), (ret, a, b) ) + SOCKFUN(NAME, (FD fd, T1 a, T2 b), (s, a, b) ) #define SOCKFUN3(NAME,T1,T2,T3) \ - SOCKFUN(NAME, (FD fd, T1 a, T2 b, T3 c), (ret, a, b, c) ) + SOCKFUN(NAME, (FD fd, T1 a, T2 b, T3 c), (s, a, b, c) ) #define SOCKFUN4(NAME,T1,T2,T3,T4) \ - SOCKFUN(NAME, (FD fd,T1 a,T2 b,T3 c,T4 d), (ret,a,b,c,d) ) + SOCKFUN(NAME, (FD fd, T1 a, T2 b, T3 c, T4 d), (s, a, b, c, d) ) #define SOCKFUN5(NAME,T1,T2,T3,T4,T5) \ - SOCKFUN(NAME, (FD fd,T1 a,T2 b,T3 c,T4 d,T5 e), (ret,a,b,c,d,e)) + SOCKFUN(NAME, (FD fd, T1 a, T2 b, T3 c, T4 d, T5 e), (s, a, b, c, d, e)) SOCKFUN2(bind, struct sockaddr *, int) @@ -468,7 +473,9 @@ PMOD_EXPORT ptrdiff_t debug_fd_write(FD fd, void *buf, ptrdiff_t len) { case FD_SOCKET: { - ptrdiff_t ret = send((SOCKET)handle, buf, len, 0); + ptrdiff_t ret = send((SOCKET)handle, buf, + DO_NOT_WARN((int)len), + 0); if(ret<0) { errno = WSAGetLastError(); @@ -488,7 +495,9 @@ PMOD_EXPORT ptrdiff_t debug_fd_write(FD fd, void *buf, ptrdiff_t len) case FD_PIPE: { DWORD ret = 0; - if(!WriteFile(handle, buf, len, &ret,0) && ret<=0) + if(!WriteFile(handle, buf, + DO_NOT_WARN((DWORD)len), + &ret,0) && ret<=0) { errno = GetLastError(); FDDEBUG(fprintf(stderr, "Write on %d failed (%d)\n", fd, errno));