X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=comstack%2Ftcpip.c;h=4abb057d70edbb5491e8f9310b5141522c5a1bce;hb=366dc7568281c9774cd309b28c24a077604264a0;hp=dac5b2a37f543b042003d6c54188afce050bdb4c;hpb=840a4ec014e70059d147b4ded3548df191c79687;p=yaz-moved-to-github.git diff --git a/comstack/tcpip.c b/comstack/tcpip.c index dac5b2a..4abb057 100644 --- a/comstack/tcpip.c +++ b/comstack/tcpip.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2002, Index Data * See the file LICENSE for details. * - * $Id: tcpip.c,v 1.46 2002-02-19 20:02:40 adam Exp $ + * $Id: tcpip.c,v 1.50 2002-09-25 12:37:07 adam Exp $ */ #include @@ -53,6 +53,10 @@ void *tcpip_straddr(COMSTACK h, const char *str); #define TRC(X) #endif +#ifndef YAZ_SOCKLEN_T +#define YAZ_SOCKLEN_T int +#endif + /* this state is used for both SSL and straight TCP/IP */ typedef struct tcpip_state { @@ -306,7 +310,7 @@ int tcpip_connect(COMSTACK h, void *address) return 1; } #else - if (errno == EINPROGRESS) + if (yaz_errno() == EINPROGRESS) { h->event = CS_CONNECT; h->state = CS_ST_CONNECTING; @@ -449,11 +453,7 @@ int tcpip_listen(COMSTACK h, char *raddr, int *addrlen, void *cd) { struct sockaddr_in addr; -#ifdef __cplusplus - socklen_t len = sizeof(addr); -#else - int len = sizeof(addr); -#endif + YAZ_SOCKLEN_T len = sizeof(addr); TRC(fprintf(stderr, "tcpip_listen pid=%d\n", getpid())); if (h->state != CS_ST_IDLE) @@ -468,10 +468,10 @@ int tcpip_listen(COMSTACK h, char *raddr, int *addrlen, #ifdef WIN32 WSAGetLastError() == WSAEWOULDBLOCK #else - errno == EWOULDBLOCK + yaz_errno() == EWOULDBLOCK #ifdef EAGAIN #if EAGAIN != EWOULDBLOCK - || errno == EAGAIN + || yaz_errno() == EAGAIN #endif #endif #endif @@ -672,19 +672,22 @@ int tcpip_get(COMSTACK h, char **buf, int *bufsize) else return -1; #else - if (errno == EWOULDBLOCK + if (yaz_errno() == EWOULDBLOCK #ifdef EAGAIN #if EAGAIN != EWOULDBLOCK - || errno == EAGAIN + || yaz_errno() == EAGAIN +#endif #endif + || yaz_errno() == EINPROGRESS +#ifdef __sun__ + || yaz_errno() == ENOENT /* Sun's sometimes set errno to this */ #endif - || errno == EINPROGRESS ) { h->io_pending = CS_WANT_READ; break; } - else if (errno == 0) + else if (yaz_errno() == 0) continue; else return -1; @@ -844,10 +847,10 @@ int tcpip_put(COMSTACK h, char *buf, int size) #ifdef WIN32 WSAGetLastError() == WSAEWOULDBLOCK #else - errno == EWOULDBLOCK + yaz_errno() == EWOULDBLOCK #ifdef EAGAIN #if EAGAIN != EWOULDBLOCK - || errno == EAGAIN + || yaz_errno() == EAGAIN #endif #endif #endif @@ -965,7 +968,7 @@ char *tcpip_addrstr(COMSTACK h) struct sockaddr_in addr; tcpip_state *sp = (struct tcpip_state *)h->cprivate; char *r, *buf = sp->buf; - size_t len; + YAZ_SOCKLEN_T len; struct hostent *host; len = sizeof(addr);