X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=comstack%2Ftcpip.c;h=29960cd625ecd19661a25208a92307278036edd7;hb=49e9b34058467505c371057cb01425e877d6df02;hp=36cc696551b5af4acf6ef7a963757829826d993d;hpb=c03149b852e2937bd0637b21c3058a48dd25a739;p=yaz-moved-to-github.git diff --git a/comstack/tcpip.c b/comstack/tcpip.c index 36cc696..29960cd 100644 --- a/comstack/tcpip.c +++ b/comstack/tcpip.c @@ -1,10 +1,19 @@ /* - * Copyright (c) 1995-1998, Index Data + * Copyright (c) 1995-1999, Index Data * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Log: tcpip.c,v $ - * Revision 1.23 1998-06-23 15:37:50 adam + * Revision 1.26 1999-01-08 11:23:14 adam + * Added const modifier to some of the BER/ODR encoding routines. + * + * Revision 1.25 1998/07/07 15:49:23 adam + * Added braces to avoid warning. + * + * Revision 1.24 1998/06/29 07:59:17 adam + * Minor fix. + * + * Revision 1.23 1998/06/23 15:37:50 adam * Added type cast to prevent warning. * * Revision 1.22 1998/06/22 11:32:36 adam @@ -153,9 +162,8 @@ #include #include -/* Chas added the following 2, so we get the definition of completeBER */ +/* Chas added the following, so we get the definition of completeBER */ #include -#include int tcpip_close(COMSTACK h); int tcpip_put(COMSTACK h, char *buf, int size); @@ -172,14 +180,6 @@ COMSTACK tcpip_accept(COMSTACK h); char *tcpip_addrstr(COMSTACK h); void *tcpip_straddr(COMSTACK h, const char *str); -/* - * Determine length/completeness of incoming packages - */ -/* Chas: Removed the definition of completeBERfrom here, use the one in the */ -/* include directory as that as the extern "C" around it */ -/*int completeBER(unsigned char *buf, int len); */ /* from the ODR module */ -int completeWAIS(unsigned char *buf, int len); /* from waislen.c */ - #undef TRACE_TCPIP #ifdef TRACE_TCPIP #define TRC(x) x @@ -195,7 +195,7 @@ typedef struct tcpip_state int written; /* -1 if we aren't writing */ int towrite; /* to verify against user input */ - int (*complete)(unsigned char *buf, int len); /* length/completeness */ + int (*complete)(const unsigned char *buf, int len); /* length/comple. */ struct sockaddr_in addr; /* returned by cs_straddr */ char buf[128]; /* returned by cs_addrstr */ } tcpip_state; @@ -463,16 +463,17 @@ int tcpip_listen(COMSTACK h, char *raddr, int *addrlen, memcpy(raddr, &addr, *addrlen = sizeof(struct sockaddr_in)); else if (addrlen) *addrlen = 0; - -#if 1 if (check_ip && (*check_ip)(cd, (const char *) &addr.sin_addr, sizeof(addr.sin_addr), AF_INET)) { h->cerrno = CSDENY; - close (h->newfd); +#ifdef WINDOWS + closesocket(h->iofile); +#else + close(h->iofile); +#endif return -1; } -#endif h->state = CS_INCON; return 0; } @@ -556,6 +557,7 @@ int tcpip_get(COMSTACK h, char **buf, int *bufsize) if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2))) return -1; if ((res = recv(h->iofile, *buf + hasread, CS_TCPIP_BUFCHUNK, 0)) < 0) + { #ifdef WINDOWS if (WSAGetLastError() == WSAEWOULDBLOCK) #else @@ -568,6 +570,7 @@ int tcpip_get(COMSTACK h, char **buf, int *bufsize) break; else return -1; + } if (!res) return 0; hasread += res;