diff -r e40bd494b78e -r 014ff38feea9 src/win32/libc_interface.c --- a/src/win32/libc_interface.c Thu Feb 12 19:17:54 2004 +0000 +++ b/src/win32/libc_interface.c Thu Feb 12 19:54:18 2004 +0000 @@ -22,7 +22,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ -#include +#include +#include #include #include #include @@ -91,16 +92,44 @@ return 0; } -int wgaim_getsockopt(int socket, int level, int optname, void *optval, unsigned int *optlenptr) { - int ret; +int wgaim_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlenptr) { + if(getsockopt(socket, level, optname, optval, optlenptr) == SOCKET_ERROR ) { + errno = WSAGetLastError(); + return -1; + } + return 0; +} - ret = getsockopt( socket, level, optname, optval, optlenptr ); - if( ret == SOCKET_ERROR ) { +int wgaim_setsockopt(int socket, int level, int optname, void *optval, socklen_t optlen) { + if(setsockopt(socket, level, optname, optval, optlen) == SOCKET_ERROR ) { errno = WSAGetLastError(); return -1; } + return 0; +} - return 0; +int wgaim_getsockname(int socket, struct sockaddr *addr, socklen_t *lenptr) { + if(getsockname(socket, addr, lenptr) == SOCKET_ERROR) { + errno = WSAGetLastError(); + return -1; + } + return 0; +} + +int wgaim_bind(int socket, struct sockaddr *addr, socklen_t length) { + if(bind(socket, addr, length) == SOCKET_ERROR) { + errno = WSAGetLastError(); + return -1; + } + return 0; +} + +int wgaim_listen(int socket, unsigned int n) { + if(listen(socket, n) == SOCKET_ERROR) { + errno = WSAGetLastError(); + return -1; + } + return 0; } /* fcntl.h */ @@ -289,6 +318,14 @@ return close(fd); } +int wgaim_gethostname(char *name, size_t size) { + if(gethostname(name, size) == SOCKET_ERROR) { + errno = WSAGetLastError(); + return -1; + } + return 0; +} + /* sys/time.h */ int wgaim_gettimeofday(struct timeval *p, struct timezone *z) {