- if (b_resp->records)
- {
- if (b_resp->records->which == Z_Records_NSD
- || b_resp->records->which == Z_Records_multipleNSD)
- z_records_diag = b_resp->records;
- }
- if (z_records_diag)
- {
- // there could be diagnostics that are so bad.. that
- // we simply mark the error as fatal.. For now we assume
- // we can resume
- if (frontend_apdu->which == Z_APDU_searchRequest)
- {
- Z_APDU *f_apdu = odr.create_searchResponse(frontend_apdu,
- 0, 0);
- Z_SearchResponse *f_resp = f_apdu->u.searchResponse;
- *f_resp->searchStatus = *b_resp->searchStatus;
- f_resp->records = z_records_diag;
- frontend_package.response() = f_apdu;
- return false;
- }
- if (frontend_apdu->which == Z_APDU_presentRequest)
- {
- Z_APDU *f_apdu = odr.create_presentResponse(frontend_apdu,
- 0, 0);
- Z_PresentResponse *f_resp = f_apdu->u.presentResponse;
- f_resp->records = z_records_diag;
- frontend_package.response() = f_apdu;
- return false;
- }
- }