projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added yaz_daemoon for windows.
[yaz-moved-to-github.git]
/
src
/
tcpip.c
diff --git
a/src/tcpip.c
b/src/tcpip.c
index
275c10c
..
ee80c6b
100644
(file)
--- a/
src/tcpip.c
+++ b/
src/tcpip.c
@@
-2,7
+2,7
@@
* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: tcpip.c,v 1.37 2007-11-09 21:52:38 adam Exp $
+ * $Id: tcpip.c,v 1.41 2008-01-21 13:34:34 adam Exp $
*/
/**
* \file tcpip.c
*/
/**
* \file tcpip.c
@@
-224,7
+224,7
@@
COMSTACK yaz_tcpip_create(int s, int flags, int protocol,
if (connect_host)
{
tcpip_state *sp = (tcpip_state *) p->cprivate;
if (connect_host)
{
tcpip_state *sp = (tcpip_state *) p->cprivate;
- sp->connect_request_buf = xmalloc(strlen(connect_host) + 30);
+ sp->connect_request_buf = (char *) xmalloc(strlen(connect_host) + 30);
sprintf(sp->connect_request_buf, "CONNECT %s HTTP/1.0\r\n\r\n",
connect_host);
sp->connect_request_len = strlen(sp->connect_request_buf);
sprintf(sp->connect_request_buf, "CONNECT %s HTTP/1.0\r\n\r\n",
connect_host);
sp->connect_request_len = strlen(sp->connect_request_buf);
@@
-720,7
+720,15
@@
int tcpip_listen(COMSTACK h, char *raddr, int *addrlen,
)
h->cerrno = CSNODATA;
else
)
h->cerrno = CSNODATA;
else
+ {
+#ifdef WIN32
+ shutdown(h->iofile, SD_RECEIVE);
+#else
+ shutdown(h->iofile, SHUT_RD);
+#endif
+ listen(h->iofile, SOMAXCONN);
h->cerrno = CSYSERR;
h->cerrno = CSYSERR;
+ }
return -1;
}
if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_in))
return -1;
}
if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_in))
@@
-820,9
+828,9
@@
COMSTACK tcpip_accept(COMSTACK h)
state->ssl = SSL_new (state->ctx);
SSL_set_fd (state->ssl, cnew->iofile);
}
state->ssl = SSL_new (state->ctx);
SSL_set_fd (state->ssl, cnew->iofile);
}
+#endif
state->connect_request_buf = 0;
state->connect_response_buf = 0;
state->connect_request_buf = 0;
state->connect_response_buf = 0;
-#endif
h = cnew;
}
if (h->state == CS_ST_ACCEPT)
h = cnew;
}
if (h->state == CS_ST_ACCEPT)