projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ICU: using icu_iter for existing interface
[yaz-moved-to-github.git]
/
src
/
seshigh.c
diff --git
a/src/seshigh.c
b/src/seshigh.c
index
19c771d
..
b0349e7
100644
(file)
--- a/
src/seshigh.c
+++ b/
src/seshigh.c
@@
-377,7
+377,7
@@
void ir_session(IOCHAN h, int event)
{
if (assoc->state != ASSOC_UP)
{
{
if (assoc->state != ASSOC_UP)
{
- yaz_log(YLOG_DEBUG, "Final timeout - closing connection.");
+ yaz_log(log_session, "Timeout. Closing connection");
/* do we need to lod this at all */
cs_close(conn);
destroy_association(assoc);
/* do we need to lod this at all */
cs_close(conn);
destroy_association(assoc);
@@
-385,8
+385,7
@@
void ir_session(IOCHAN h, int event)
}
else
{
}
else
{
- yaz_log(log_sessiondetail,
- "Session idle too long. Sending close.");
+ yaz_log(log_sessiondetail, "Timeout. Sending Z39.50 Close");
do_close(assoc, Z_Close_lackOfActivity, 0);
}
return;
do_close(assoc, Z_Close_lackOfActivity, 0);
}
return;
@@
-848,9
+847,10
@@
static int ccl2pqf(ODR odr, const Odr_oct *ccl, CCL_bibset bibset,
static void srw_bend_search(association *assoc, request *req,
Z_SRW_PDU *sr,
static void srw_bend_search(association *assoc, request *req,
Z_SRW_PDU *sr,
- Z_SRW_searchRetrieveResponse *srw_res,
+ Z_SRW_PDU *res,
int *http_code)
{
int *http_code)
{
+ Z_SRW_searchRetrieveResponse *srw_res = res->u.response;
int srw_error = 0;
Z_External *ext;
Z_SRW_searchRetrieveRequest *srw_req = sr->u.request;
int srw_error = 0;
Z_External *ext;
Z_SRW_searchRetrieveRequest *srw_req = sr->u.request;
@@
-873,6
+873,8
@@
static void srw_bend_search(association *assoc, request *req,
rr.partial_resultset = 0;
rr.query = (Z_Query *) odr_malloc(assoc->decode, sizeof(*rr.query));
rr.query->u.type_1 = 0;
rr.partial_resultset = 0;
rr.query = (Z_Query *) odr_malloc(assoc->decode, sizeof(*rr.query));
rr.query->u.type_1 = 0;
+ rr.extra_args = sr->extra_args;
+ rr.extra_response_data = 0;
if (srw_req->query_type == Z_SRW_query_type_cql)
{
if (srw_req->query_type == Z_SRW_query_type_cql)
{
@@
-1094,6
+1096,11
@@
static void srw_bend_search(association *assoc, request *req,
srw_res->records = 0;
}
}
srw_res->records = 0;
}
}
+ if (rr.extra_response_data)
+ {
+ res->extraResponseData_buf = rr.extra_response_data;
+ res->extraResponseData_len = strlen(rr.extra_response_data);
+ }
if (rr.estimated_hit_count || rr.partial_resultset)
{
yaz_add_srw_diagnostic(
if (rr.estimated_hit_count || rr.partial_resultset)
{
yaz_add_srw_diagnostic(
@@
-1691,6
+1698,7
@@
static void process_http_request(association *assoc, request *req)
int num_diagnostic = 0;
const char *host = z_HTTP_header_lookup(hreq->headers, "Host");
int num_diagnostic = 0;
const char *host = z_HTTP_header_lookup(hreq->headers, "Host");
+ yaz_log(log_request, "%s %s HTTP/%s", hreq->method, hreq->path, hreq->version);
if (!control_association(assoc, host, 0))
{
p = z_get_HTTP_Response(o, 404);
if (!control_association(assoc, host, 0))
{
p = z_get_HTTP_Response(o, 404);
@@
-1783,8
+1791,7
@@
static void process_http_request(association *assoc, request *req)
}
else
{
}
else
{
- srw_bend_search(assoc, req, sr, res->u.response,
- &http_code);
+ srw_bend_search(assoc, req, sr, res, &http_code);
}
if (http_code == 200)
soap_package->u.generic->p = res;
}
if (http_code == 200)
soap_package->u.generic->p = res;
@@
-2364,6
+2371,9
@@
static Z_APDU *process_initRequest(association *assoc, request *reqb)
binitres->errstring);
*resp->result = 0;
}
binitres->errstring);
*resp->result = 0;
}
+ else
+ assoc->state = ASSOC_UP;
+
if (log_request)
{
if (!req->idAuthentication)
if (log_request)
{
if (!req->idAuthentication)
@@
-2625,6
+2635,8
@@
static Z_APDU *process_searchRequest(association *assoc, request *reqb,
bsrr->srw_setnameIdleTime = 0;
bsrr->estimated_hit_count = 0;
bsrr->partial_resultset = 0;
bsrr->srw_setnameIdleTime = 0;
bsrr->estimated_hit_count = 0;
bsrr->partial_resultset = 0;
+ bsrr->extra_args = 0;
+ bsrr->extra_response_data = 0;
yaz_log (log_requestdetail, "ResultSet '%s'", req->resultSetName);
if (req->databaseNames)
yaz_log (log_requestdetail, "ResultSet '%s'", req->resultSetName);
if (req->databaseNames)