+ if (m_p->m_access)
+ {
+ gdu = package.response().get();
+ //WRBUF wr = wrbuf_alloc();
+
+
+ if (gdu && gdu->which == Z_GDU_Z3950)
+ {
+
+ msg_response << "Z39.50" << " ";
+
+ switch(gdu->u.z3950->which)
+ {
+ case Z_APDU_initResponse:
+ msg_response << "initResponse" << " ";
+ {
+ Z_InitResponse *ir
+ = gdu->u.z3950->u.initResponse;
+ if (*(ir->result))
+ msg_response_2
+ << "OK" << " "
+ << (ir->implementationId) << " "
+ //<< ir->referenceId << " "
+ << (ir->implementationName) << " "
+ << (ir->implementationVersion) << " ";
+ else
+ msg_response_2
+ << "ERROR" << " "
+ << "- - -" << " ";
+
+ }
+ break;
+ case Z_APDU_searchResponse:
+ msg_response << "searchResponse" << " ";
+ {
+ Z_SearchResponse *sr
+ = gdu->u.z3950->u.searchResponse;
+ if (*(sr->searchStatus))
+ msg_response_2
+ << "OK" << " "
+ << *(sr->resultCount) << " "
+ //<< sr->referenceId << " "
+ << *(sr->numberOfRecordsReturned) << " "
+ << *(sr->nextResultSetPosition) << " ";
+ else
+ msg_response_2
+ << "ERROR" << " "
+ << "- - -" << " ";
+
+ }
+ //msg_response << wrbuf_buf(wr) << " ";
+ break;
+ case Z_APDU_presentResponse:
+ msg_response << "presentResponse" << " ";
+ {
+ Z_PresentResponse *pr
+ = gdu->u.z3950->u.presentResponse;
+ if (!*(pr->presentStatus))
+ msg_response_2
+ << "OK" << " "
+ << "-" << " "
+ //<< pr->referenceId << " "
+ << *(pr->numberOfRecordsReturned) << " "
+ << *(pr->nextResultSetPosition) << " ";
+ else
+ msg_response_2
+ << "ERROR" << " "
+ << "-" << " "
+ //<< pr->referenceId << " "
+ << *(pr->numberOfRecordsReturned) << " "
+ << *(pr->nextResultSetPosition) << " ";
+ //<< "- - -" << " ";
+ }
+ break;
+ case Z_APDU_deleteResultSetResponse:
+ msg_response << "deleteResultSetResponse" << " ";
+ break;
+ case Z_APDU_accessControlResponse:
+ msg_response << "accessControlResponse" << " ";
+ break;
+ case Z_APDU_resourceControlResponse:
+ msg_response << "resourceControlResponse" << " ";
+ break;
+ //case Z_APDU_triggerResourceControlResponse:
+ //msg_response << "triggerResourceControlResponse" << " ";
+ //break;
+ case Z_APDU_resourceReportResponse:
+ msg_response << "resourceReportResponse" << " ";
+ break;
+ case Z_APDU_scanResponse:
+ msg_response << "scanResponse" << " ";
+ break;
+ case Z_APDU_sortResponse:
+ msg_response << "sortResponse" << " ";
+ break;
+ // case Z_APDU_segmentResponse:
+ // msg_response << "segmentResponse" << " ";
+ // break;
+ case Z_APDU_extendedServicesResponse:
+ msg_response << "extendedServicesResponse" << " ";
+ break;
+ case Z_APDU_close:
+ msg_response << "close" << " ";
+ break;
+ case Z_APDU_duplicateDetectionResponse:
+ msg_response << "duplicateDetectionResponse" << " ";
+ break;
+ default:
+ msg_response << "unknown" << " ";
+ }
+ }
+ else if (gdu && gdu->which == Z_GDU_HTTP_Request)
+ msg_response << "HTTP " << "unknown " ;
+ else if (gdu && gdu->which == Z_GDU_HTTP_Response)
+ msg_response << "HTTP-Response " << "unknown " ;
+ else
+ msg_response << "unknown " << "unknown " ;
+
+ m_p->m_file->out
+ << m_p->m_msg_config << " "
+ << package.session().id() << " "
+ // << receive_time << " "
+ << send_time << " "
+ //<< "-" << " "
+ << duration << " "
+ //<< msg_request.str()
+ //<< msg_request_2.str()
+ << msg_response.str()
+ << msg_response_2.str()
+ << "\n";
+
+ //wrbuf_free(wr, 1);
+ }