X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-c.c;h=37b87f969f2a39e2c492a2ace346e1b50f9dbe11;hp=b1f5acae27859f76d4231168fe1ffda66f50d014;hb=28a4fb36e751de91911b02fa76eba1f1caa284f5;hpb=d1b6ed4a27c255041e3d719e4b05ab476c337bbf diff --git a/src/zoom-c.c b/src/zoom-c.c index b1f5aca..37b87f9 100644 --- a/src/zoom-c.c +++ b/src/zoom-c.c @@ -361,7 +361,6 @@ ZOOM_API(void) const char *host, int portnum) { const char *val; - const char *http_lead; initlog(); @@ -428,16 +427,18 @@ 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]; + const char *http_lead; + + 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); + xfree(c->host_port); if (portnum) { @@ -1063,7 +1064,7 @@ static zoom_ret do_connect_host(ZOOM_connection c, const char *logical_url) if (c->cs) cs_close(c->cs); - c->cs = cs_create_host_proxy(logical_url, 0, &add, + c->cs = cs_create_host_proxy(logical_url, CS_FLAGS_DNS_NO_BLOCK, &add, c->tproxy ? c->tproxy : c->proxy); if (c->cs && c->cs->protocol == PROTO_HTTP) @@ -1562,6 +1563,7 @@ static void handle_http(ZOOM_connection c, Z_HTTP_Response *hres) location, &host_change); if (do_connect_host(c, location) == zoom_complete) return; /* connect failed.. */ + cs_rcvconnect(c->cs); send_HTTP_redirect(c, location); return; } @@ -1959,7 +1961,7 @@ static void ZOOM_connection_do_io(ZOOM_connection c, int mask) if (c->cs->io_pending & CS_WANT_READ) mask += ZOOM_SELECT_READ; ZOOM_connection_set_mask(c, mask); - event = ZOOM_Event_create(ZOOM_EVENT_NONE); + event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); ZOOM_connection_put_event(c, event); } else if (ret == 0)