X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-z3950.c;h=b08210876889ee1756d3163609541e45eea80ac6;hp=e39ff8a4d1fe652b0c01dac2b1e659599fba5f7a;hb=9c0d61ec236fb24ac2c1f5641630488546438459;hpb=dd016baf50d8cd02a1a32d1fd10b5544cae6ff96 diff --git a/src/zoom-z3950.c b/src/zoom-z3950.c index e39ff8a..b082108 100644 --- a/src/zoom-z3950.c +++ b/src/zoom-z3950.c @@ -645,7 +645,6 @@ static zoom_ret Z3950_send_search(ZOOM_connection c) const char *elementSetName; const char *smallSetElementSetName; const char *mediumSetElementSetName; - const char *facets; assert(c->tasks); assert(c->tasks->which == ZOOM_TASK_SEARCH); @@ -668,15 +667,17 @@ static zoom_ret Z3950_send_search(ZOOM_connection c) if (!mediumSetElementSetName) mediumSetElementSetName = elementSetName; - facets = ZOOM_options_get(r->options, "facets"); - if (facets) { - Z_FacetList *facet_list = yaz_pqf_parse_facet_list(c->odr_out, facets); - if (facet_list) { + if (r->req_facets) + { + Z_FacetList *facet_list = + yaz_pqf_parse_facet_list(c->odr_out, r->req_facets); + if (facet_list) + { Z_OtherInformation **oi = &search_req->additionalSearchInfo; yaz_oi_set_facetlist(oi, c->odr_out, facet_list); } else - yaz_log(YLOG_WARN, "Unable to parse facets: %s", facets); + yaz_log(YLOG_WARN, "Unable to parse facets: %s", r->req_facets); } assert(r); @@ -788,7 +789,7 @@ static zoom_ret Z3950_send_search(ZOOM_connection c) if (!rp) break; } - r->setname = xstrdup(setname); + r->setname = odr_strdup(r->odr, setname); yaz_log(c->log_details, "%p ZOOM_connection_send_search: " "allocating set %s", c, r->setname); } @@ -796,7 +797,7 @@ static zoom_ret Z3950_send_search(ZOOM_connection c) { yaz_log(c->log_details, "%p ZOOM_connection_send_search: using " "default set", c); - r->setname = xstrdup("default"); + r->setname = odr_strdup(r->odr, "default"); } ZOOM_options_set(r->options, "setname", r->setname); } @@ -1121,16 +1122,21 @@ static ZOOM_facet_field get_zoom_facet_field(ODR odr, Z_FacetField *facet) void ZOOM_handle_facet_list(ZOOM_resultset r, Z_FacetList *fl) { int j; - r->num_facets = fl->num; + r->num_res_facets = fl->num; yaz_log(YLOG_DEBUG, "Facets found: %d", fl->num); - r->facets = odr_malloc(r->odr, fl->num * sizeof(*r->facets)); + r->res_facets = odr_malloc(r->odr, fl->num * sizeof(*r->res_facets)); r->facets_names = odr_malloc(r->odr, fl->num * sizeof(*r->facets_names)); for (j = 0; j < fl->num; j++) { - r->facets[j] = get_zoom_facet_field(r->odr, fl->elements[j]); - if (!r->facets[j]) + r->res_facets[j] = get_zoom_facet_field(r->odr, fl->elements[j]); + if (!r->res_facets[j]) + { + r->facets_names[j] = 0; yaz_log(YLOG_DEBUG, "Facet field missing on index %d !", j); - r->facets_names[j] = (char *) ZOOM_facet_field_name(r->facets[j]); + } + else + r->facets_names[j] = (char *) + ZOOM_facet_field_name(r->res_facets[j]); } }