X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-c.c;h=c3d7f0c945b8f785c093912dd46e23f21033bfc2;hp=93fb07091087619b6428d2238b0c092e67c53f25;hb=d913827c1f2e7c3ace54eb0d8b4c99daed376c2e;hpb=ad1e3b8cec6c1c6f7d009d5cc2d04453a294914e diff --git a/src/zoom-c.c b/src/zoom-c.c index 93fb070..c3d7f0c 100644 --- a/src/zoom-c.c +++ b/src/zoom-c.c @@ -370,6 +370,7 @@ ZOOM_API(void) const char *host, int portnum) { const char *val; + const char *http_lead; initlog(); @@ -436,17 +437,25 @@ ZOOM_API(void) else c->lang = 0; + val = ZOOM_options_get(c->options, "sru"); + if (val && *val && !strstr(host, "://")) + http_lead = "http://"; + else + http_lead = ""; + c->sru_mode = get_sru_mode_from_string(val); + if (host) { + char hostn[128]; xfree(c->host_port); if (portnum) { - char hostn[128]; sprintf(hostn, "%.80s:%d", host, portnum); - c->host_port = xstrdup(hostn); + host = hostn; } - else - c->host_port = xstrdup(host); + c->host_port = xmalloc(strlen(host) + strlen(http_lead) + 1); + strcpy(c->host_port, http_lead); + strcat(c->host_port, host); } { @@ -482,9 +491,6 @@ ZOOM_API(void) } } - val = ZOOM_options_get(c->options, "sru"); - c->sru_mode = get_sru_mode_from_string(val); - xfree(c->sru_version); val = ZOOM_options_get(c->options, "sru_version"); c->sru_version = xstrdup(val ? val : "1.2");