Link SSL with libyaz.la and yaz-client only.
[yaz-moved-to-github.git] / src / tcpip.c
index 275c10c..b992319 100644 (file)
@@ -1,8 +1,6 @@
-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2008 Index Data
  * See the file LICENSE for details.
- *
- * $Id: tcpip.c,v 1.37 2007-11-09 21:52:38 adam Exp $
  */
 /**
  * \file tcpip.c
@@ -224,7 +222,7 @@ COMSTACK yaz_tcpip_create(int s, int flags, int protocol,
     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);
@@ -720,7 +718,15 @@ int tcpip_listen(COMSTACK h, char *raddr, int *addrlen,
             )
             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;
+        }
         return -1;
     }
     if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_in))
@@ -820,9 +826,9 @@ COMSTACK tcpip_accept(COMSTACK h)
             state->ssl = SSL_new (state->ctx);
             SSL_set_fd (state->ssl, cnew->iofile);
         }
+#endif
         state->connect_request_buf = 0;
         state->connect_response_buf = 0;
-#endif
         h = cnew;
     }
     if (h->state == CS_ST_ACCEPT)