X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fcomstack.c;h=fdcfcdb7548b69ecda555973c4d88ce6f640d5a0;hp=eac17f78cb4301b24e96362acfa2f9b8f9726e41;hb=d33b2b3730c2746928944277ea8268485dc875b8;hpb=6e0314cce5d9c3d346d4d968a7ea07f92d8761b1 diff --git a/src/comstack.c b/src/comstack.c index eac17f7..fdcfcdb 100644 --- a/src/comstack.c +++ b/src/comstack.c @@ -19,10 +19,7 @@ #include #include #include - -#ifdef WIN32 -#define strncasecmp _strnicmp -#endif +#include #if HAVE_GNUTLS_H #define ENABLE_SSL 1 @@ -90,9 +87,9 @@ void cs_get_host_args(const char *type_and_host, const char **args) } } -static int cs_parse_host(const char *uri, const char **host, - CS_TYPE *t, enum oid_proto *proto, - char **connect_host) +int cs_parse_host(const char *uri, const char **host, + CS_TYPE *t, enum oid_proto *proto, + char **connect_host) { *connect_host = 0; @@ -127,6 +124,8 @@ static int cs_parse_host(const char *uri, const char **host, uri = cp + 1; } #ifdef WIN32 + xfree(*connect_host); + *connect_host = 0; return 0; #else *t = unix_type; @@ -145,6 +144,8 @@ static int cs_parse_host(const char *uri, const char **host, *host = uri + 4; *proto = PROTO_Z3950; #else + xfree(*connect_host); + *connect_host = 0; return 0; #endif } @@ -164,6 +165,8 @@ static int cs_parse_host(const char *uri, const char **host, (*host)++; *proto = PROTO_HTTP; #else + xfree(*connect_host); + *connect_host = 0; return 0; #endif } @@ -190,10 +193,7 @@ COMSTACK cs_create_host_proxy(const char *vhost, int blocking, void **vp, char *connect_host = 0; if (!cs_parse_host(vhost, &host, &t, &proto, &connect_host)) - { - xfree(connect_host); return 0; - } if (proxy_host) { @@ -201,10 +201,7 @@ COMSTACK cs_create_host_proxy(const char *vhost, int blocking, void **vp, xfree(connect_host); if (!cs_parse_host(proxy_host, &host, &t, &proto1, &connect_host)) - { - xfree(connect_host); return 0; - } } if (t == tcpip_type) @@ -389,17 +386,19 @@ static int cs_complete_http(const char *buf, int len, int head_only) break; } else if (i < len - 20 && - !strncasecmp((const char *) buf+i, "Transfer-Encoding:", 18)) + !yaz_strncasecmp((const char *) buf+i, + "Transfer-Encoding:", 18)) { i+=18; while (buf[i] == ' ') i++; if (i < len - 8) - if (!strncasecmp((const char *) buf+i, "chunked", 7)) + if (!yaz_strncasecmp((const char *) buf+i, "chunked", 7)) chunked = 1; } else if (i < len - 17 && - !strncasecmp((const char *)buf+i, "Content-Length:", 15)) + !yaz_strncasecmp((const char *)buf+i, + "Content-Length:", 15)) { i+= 15; while (buf[i] == ' ') @@ -428,7 +427,7 @@ static int cs_complete_auto_x(const char *buf, int len, int head_only) int r = cs_complete_http(buf, len, head_only); return r; } - return completeBER((const unsigned char *) buf, len); + return completeBER(buf, len); }