/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2012 Index Data
+ * Copyright (C) 1995-2013 Index Data
* See the file LICENSE for details.
*/
/**
}
}
-
static void handle_Z3950_records(ZOOM_connection c, Z_Records *sr,
int present_phase);
return 1;
}
-static void interpret_init_diag(ZOOM_connection c,
- Z_DiagnosticFormat *diag)
-{
- if (diag->num > 0)
- {
- Z_DiagnosticFormat_s *ds = diag->elements[0];
- if (ds->which == Z_DiagnosticFormat_s_defaultDiagRec)
- response_default_diag(c, ds->u.defaultDiagRec);
- }
-}
-
-
-static void interpret_otherinformation_field(ZOOM_connection c,
- Z_OtherInformation *ui)
-{
- int i;
- for (i = 0; i < ui->num_elements; i++)
- {
- Z_OtherInformationUnit *unit = ui->list[i];
- if (unit->which == Z_OtherInfo_externallyDefinedInfo &&
- unit->information.externallyDefinedInfo &&
- unit->information.externallyDefinedInfo->which ==
- Z_External_diag1)
- {
- interpret_init_diag(c, unit->information.externallyDefinedInfo->u.diag1);
- }
- }
-}
-
static char *get_term_cstr(ODR odr, Z_Term *term) {
switch (term->which) {
}
/* Can be share with SOLR/SRU/SRW requests */
-void handle_facet_list(ZOOM_resultset r, Z_FacetList *fl) {
+void ZOOM_handle_facet_list(ZOOM_resultset r, Z_FacetList *fl)
+{
int j;
r->num_facets = fl->num;
yaz_log(YLOG_DEBUG, "Facets found: %d", fl->num);
Z_External *ext = o->list[i]->information.externallyDefinedInfo;
if (ext->which == Z_External_userFacets)
{
- handle_facet_list(r, ext->u.facetList);
+ ZOOM_handle_facet_list(r, ext->u.facetList);
}
}
}
if (!*initrs->result)
{
- Z_External *uif = initrs->userInformationField;
-
- ZOOM_set_error(c, ZOOM_ERROR_INIT, 0); /* default error */
-
- if (uif && uif->which == Z_External_userInfo1)
- interpret_otherinformation_field(c, uif->u.userInfo1);
+ Z_DefaultDiagFormat *df = yaz_decode_init_diag(0, initrs);
+ if (df)
+ response_default_diag(c, df);
+ else
+ ZOOM_set_error(c, ZOOM_ERROR_INIT, 0); /* default error */
}
else
{