X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-sru.c;h=0ff4e3c993d7afe766766e8f42c73a1dd1e90fc3;hp=1932f09d9e0dd0df59527541d5497aea4d7e266a;hb=96e65728eefb6d7efef6e2f74a3b0d64f92b3c23;hpb=83a7bb713c01e6c9b3311c6f5356e76a9a9fb92a diff --git a/src/zoom-sru.c b/src/zoom-sru.c index 1932f09..0ff4e3c 100644 --- a/src/zoom-sru.c +++ b/src/zoom-sru.c @@ -24,7 +24,6 @@ static void set_SRU_error(ZOOM_connection c, Z_SRW_diagnostic *d) #endif - #if YAZ_HAVE_XML2 static zoom_ret send_srw(ZOOM_connection c, Z_SRW_PDU *sr) { @@ -50,6 +49,10 @@ static zoom_ret send_srw(ZOOM_connection c, Z_SRW_PDU *sr) { yaz_sru_soap_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); } + else if (c->sru_mode == zoom_sru_solr) + { + yaz_solr_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); + } if (!z_GDU(c->odr_out, &gdu, 0, 0)) return zoom_complete; if (c->odr_print) @@ -378,7 +381,18 @@ int ZOOM_handle_sru(ZOOM_connection c, Z_HTTP_Response *hres, /* not redirect (normal response) */ if (!yaz_srw_check_content_type(hres)) + { addinfo = "content-type"; + ret = -1; + } + else if (c->sru_mode == zoom_sru_solr) + { + Z_SRW_PDU *sr; + ret = yaz_solr_decode_response(c->odr_in, hres, &sr); + if (ret == 0) + if (sr->which == Z_SRW_searchRetrieve_response) + *cret = handle_srw_response(c, sr->u.response); + } else { Z_SOAP *soap_package = 0;