- Z_APDU *apdu = 0;
- switch(z_gdu->u.z3950->which)
- {
- case Z_APDU_initRequest:
- apdu = zget_APDU(odr, Z_APDU_initResponse);
- break;
- case Z_APDU_searchRequest:
- sleep(5);
- apdu = zget_APDU(odr, Z_APDU_searchResponse);
- break;
- default:
- apdu = zget_APDU(odr, Z_APDU_close);
- m_close_flag = 1;
- break;
- }
- if (apdu)
- m_output = new GDU(apdu);
+ Z_APDU *apdu = 0;
+ switch(z_gdu->u.z3950->which)
+ {
+ case Z_APDU_initRequest:
+ apdu = zget_APDU(odr, Z_APDU_initResponse);
+ ODR_MASK_SET(apdu->u.initResponse->options, Z_Options_triggerResourceCtrl);
+ ODR_MASK_SET(apdu->u.initResponse->options, Z_Options_search);
+ ODR_MASK_SET(apdu->u.initResponse->options, Z_Options_present);
+ break;
+ case Z_APDU_searchRequest:
+#if HAVE_UNISTD_H
+ sleep(5);
+#endif
+ apdu = zget_APDU(odr, Z_APDU_searchResponse);
+ break;
+ case Z_APDU_triggerResourceControlRequest:
+ break;
+ default:
+ apdu = zget_APDU(odr, Z_APDU_close);
+ m_close_flag = 1;
+ break;
+ }
+ if (apdu)
+ m_output = new GDU(apdu);