+ else if (!m_package->session().is_closed())
+ {
+ // no response package and yet the session is still open..
+ // means that request is unhandled..
+ yazpp_1::GDU *gdu_req = &m_package->request();
+ Z_GDU *z_gdu = gdu_req->get();
+ if (z_gdu && z_gdu->which == Z_GDU_Z3950)
+ {
+ // For Z39.50, response with a Close and shutdown
+ mp::odr odr;
+ int len;
+ Z_APDU *apdu_response = odr.create_close(
+ z_gdu->u.z3950, Z_Close_systemProblem,
+ "unhandled Z39.50 request");
+
+ m_session->send_Z_PDU(apdu_response, &len);
+ m_package->session().close();
+ }
+ }
+