1230 Z_GDU *gdu = package.request().get();
1232 if (gdu && gdu->which == Z_GDU_Z3950 && gdu->u.z3950->which ==
1233 Z_APDU_initRequest && !f->m_is_multi)
1235 f->init(package, gdu);
1237 else if (!f->m_is_multi)
1239 else if (gdu && gdu->which == Z_GDU_Z3950)
1241 Z_APDU *apdu = gdu->u.z3950;
1242 if (apdu->which == Z_APDU_initRequest)
1246 package.response() = odr.create_close(
1248 Z_Close_protocolError,
1251 package.session().close();
1253 else if (apdu->which == Z_APDU_searchRequest)
1255 f->search(package, apdu);
1257 else if (apdu->which == Z_APDU_presentRequest)
1259 f->present(package, apdu);
1261 else if (apdu->which == Z_APDU_scanRequest)
1263 f->scan(package, apdu);
1265 else if (apdu->which == Z_APDU_close)
1267 f->relay_apdu(package, apdu);
1273 package.response() = odr.create_close(
1274 apdu, Z_Close_protocolError,
1275 "unsupported APDU in filter multi");
1277 package.session().close();
1280 m_p->release_frontend(package);