- yaz_log(YLOG_WARN,
- "Search response: Non-surrogate diagnostic %s (%d)",
- cl->database->database->url,
- *recs->u.nonSurrogateDiagnostic->condition);
- cl->diagnostic = *recs->u.nonSurrogateDiagnostic->condition;
- cl->state = Client_Error;
+ cl->show_raw->active = 0;
+ ingest_raw_record(cl, rec);
+ }
+ else
+ {
+ cl->records++;
+ if (ZOOM_record_error(rec, &msg, &addinfo, 0))
+ yaz_log(YLOG_WARN, "Record error %s (%s): %s (rec #%d)",
+ error, addinfo, client_get_url(cl), cl->records);
+ else
+ {
+ struct session_database *sdb = client_get_database(cl);
+ const char *xmlrec;
+ char type[128] = "xml";
+ const char *nativesyntax =
+ session_setting_oneval(sdb, PZ_NATIVESYNTAX);
+ char *cset;
+
+ if (*nativesyntax && (cset = strchr(nativesyntax, ';')))
+ sprintf(type, "xml; charset=%s", cset + 1);
+
+ if ((xmlrec = ZOOM_record_get(rec, type, NULL)))
+ {
+ if (ingest_record(cl, xmlrec, cl->records))
+ {
+ session_alert_watch(cl->session, SESSION_WATCH_SHOW);
+ session_alert_watch(cl->session, SESSION_WATCH_RECORD);
+ }
+ else
+ yaz_log(YLOG_WARN, "Failed to ingest");
+ }
+ else
+ yaz_log(YLOG_WARN, "Failed to extract ZOOM record");
+ }
+