- yp2::Package & process(yp2::Package & package) const {
- ODR odr = odr_createmem(ODR_ENCODE);
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_initResponse);
-
- apdu->u.initResponse->implementationName = "YP2/YAZ";
-
- package.response() = apdu;
- odr_destroy(odr);
- return package.move();
+ void process(mp::Package & package) const {
+
+ if (package.session().is_closed())
+ {
+ // std::cout << "Got Close.\n";
+ }
+
+ Z_GDU *gdu = package.request().get();
+ if (gdu)
+ {
+ // std::cout << "Got PDU. Sending init response\n";
+ mp::odr odr;
+ Z_APDU *apdu = zget_APDU(odr, Z_APDU_initResponse);
+
+ apdu->u.initResponse->implementationName = "YP2/YAZ";
+
+ package.response() = apdu;
+ }
+ return package.move();