- mp::util::set_vhost_otherinfo(&(org_init->otherInfo),
- odr_en, target);
- package.request() = gdu_req;
- }
-
+
+ yazpp_1::GDU init_gdu(base_req);
+ Z_InitRequest *init_req = init_gdu.get()->u.z3950->u.initRequest;
+
+ mp::util::set_vhost_otherinfo(&(init_req->otherInfo),
+ odr_en, target, 1);
+
+ init_pkg.request() = init_gdu;
+
+ // moving all package types
+ init_pkg.move();
+
+ // checking for closed back end packages
+ if (!init_pkg.session().is_closed())
+ {
+ add_session(package.session().id(), target);
+
+ package.response() = init_pkg.response();
+ return;
+ }
+ }
+ mp::odr odr;
+ package.response() = odr.create_initResponse(
+ apdu, YAZ_BIB1_TEMPORARY_SYSTEM_ERROR,
+ "load_balance: no available targets");
+ package.session().close();
+ return;