#include <yaz/odr.h>
#include <yaz/matchstr.h>
-#if HAVE_GNUTLS_H
-#define ENABLE_SSL 1
-#endif
-
static const char *cs_errlist[] =
{
"No error or unspecified error",
}
else if (strncmp (uri, "ssl:", 4) == 0)
{
-#if ENABLE_SSL
+#if HAVE_GNUTLS_H
*t = ssl_type;
*host = uri + 4;
*proto = PROTO_Z3950;
}
else if (strncmp(uri, "https:", 6) == 0)
{
-#if ENABLE_SSL
+#if HAVE_GNUTLS_H
*t = ssl_type;
*host = uri + 6;
while (**host == '/')
COMSTACK cs;
CS_TYPE t;
char *connect_host = 0;
+ const char *bind_host = strchr(vhost, ' ');
+ if (bind_host && bind_host[1])
+ bind_host++;
+ else
+ bind_host = 0;
if (!cs_parse_host(vhost, &host, &t, &proto, &connect_host))
return 0;
-
if (proxy_host)
{
enum oid_proto proto1;
+ CS_TYPE t1;
xfree(connect_host);
- if (!cs_parse_host(proxy_host, &host, &t, &proto1, &connect_host))
+ if (!cs_parse_host(proxy_host, &host, &t1, &proto1, &connect_host))
return 0;
}
if (t == tcpip_type)
{
- cs = yaz_tcpip_create(-1, blocking, proto, connect_host ? host : 0);
+ cs = yaz_tcpip_create3(-1, blocking, proto, connect_host ? host : 0,
+ 0, bind_host);
+ }
+ else if (t == ssl_type)
+ {
+ cs = yaz_ssl_create(-1, blocking, proto, connect_host ? host : 0,
+ 0, bind_host);
}
else
{