-void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request)
-{
- Z_APDU *apdu_response;
- switch (apdu_request->which)
- {
- case Z_APDU_initRequest:
- logf (LOG_LOG, "got InitRequest");
- apdu_response = create_Z_PDU(Z_APDU_initResponse);
- recv_Z_init (apdu_request->u.initRequest,
- apdu_response->u.initResponse);
- send_Z_PDU(apdu_response);
- break;
- case Z_APDU_searchRequest:
- logf (LOG_LOG, "got SearchRequest");
- apdu_response = create_Z_PDU(Z_APDU_searchResponse);
- recv_Z_search (apdu_request->u.searchRequest,
- apdu_response->u.searchResponse);
- if (!apdu_response->u.searchResponse->records)
- {
- piggyback(apdu_request->u.searchRequest,
- apdu_response->u.searchResponse);
- }
- send_Z_PDU(apdu_response);
- break;
- case Z_APDU_presentRequest:
- logf (LOG_LOG, "got PresentRequest");
- apdu_response = create_Z_PDU(Z_APDU_presentResponse);
- recv_Z_present (apdu_request->u.presentRequest,
- apdu_response->u.presentResponse);
- send_Z_PDU(apdu_response);
- break;
- }
+ yaz_log(LOG_DEBUG, "SurrogateDiagnotic: %d -- %s", error, addinfo);
+ *err = error;
+ rec->databaseName = dbname ? odr_strdup (odr, dbname) : 0;
+ rec->which = Z_NamePlusRecord_surrogateDiagnostic;
+ rec->u.surrogateDiagnostic = drec;
+ drec->which = Z_DiagRec_defaultFormat;
+ drec->u.defaultFormat = dr;
+ dr->diagnosticSetId = odr_oiddup (odr,
+ oid_ent_to_oid(&bib1, oid));
+ dr->condition = err;
+ dr->which = Z_DefaultDiagFormat_v2Addinfo;
+ dr->u.v2Addinfo = odr_strdup (odr, addinfo ? addinfo : "");