X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fzoom-c.c;h=dc529637ba0b3342a5e97132d12f27de65d88fb5;hb=1bef37cb158d2c33a7ddf138ff299e4f96a084ae;hp=d2f33dadb58839042c8a35ec2a935d93dd167d6c;hpb=ec96e7e16229e96777b3fa24ba12972e71c84915;p=yaz-moved-to-github.git diff --git a/src/zoom-c.c b/src/zoom-c.c index d2f33da..dc52963 100644 --- a/src/zoom-c.c +++ b/src/zoom-c.c @@ -1533,7 +1533,7 @@ static void handle_http(ZOOM_connection c, Z_HTTP_Response *hres) { zoom_ret cret = zoom_complete; int ret = -1; - const char *addinfo = 0; + char *addinfo = 0; const char *connection_head = z_HTTP_header_lookup(hres->headers, "Connection"); const char *location; @@ -1563,7 +1563,7 @@ static void handle_http(ZOOM_connection c, Z_HTTP_Response *hres) } else { - ret = ZOOM_handle_sru(c, hres, &cret); + ret = ZOOM_handle_sru(c, hres, &cret, &addinfo); if (ret == 0) { if (c->no_redirects) /* end of redirect. change hosts again */ @@ -1576,7 +1576,11 @@ static void handle_http(ZOOM_connection c, Z_HTTP_Response *hres) if (hres->code != 200) ZOOM_set_HTTP_error(c, hres->code, 0, 0); else + { + yaz_log(YLOG_LOG, "set error... addinfo=%s", addinfo ? + addinfo : "NULL"); ZOOM_set_error(c, ZOOM_ERROR_DECODE, addinfo); + } ZOOM_connection_close(c); } if (cret == zoom_complete) @@ -1608,6 +1612,8 @@ static void handle_http(ZOOM_connection c, Z_HTTP_Response *hres) c->reconnect_ok = 0; } } + else + c->reconnect_ok = 1; /* if the server closes anyway */ } } #endif @@ -1678,7 +1684,6 @@ static int do_read(ZOOM_connection c) #endif } } - c->reconnect_ok = 0; } return 1; }