135 yf::Limit::Ses *ses = 0;
137 std::map<mp::Session,yf::Limit::Ses *>::iterator it =
143 ses =
new yf::Limit::Ses;
148 Z_GDU *gdu = package.request().get();
149 if (gdu && gdu->which == Z_GDU_Z3950)
151 sz += package.request().get_size();
153 Z_APDU *apdu = gdu->u.z3950;
154 if (apdu->which == Z_APDU_searchRequest)
155 ses->search_stat.add_bytes(1);
158 if (apdu->which == Z_APDU_presentRequest)
160 Z_PresentRequest *pr = apdu->u.presentRequest;
161 if (pr->numberOfRecordsRequested &&
173 yf::Limit::Ses *ses = 0;
175 std::map<mp::Session,yf::Limit::Ses *>::iterator it =
181 ses =
new yf::Limit::Ses;
185 sz += package.response().get_size();
187 ses->bw_stat.add_bytes(sz);
188 ses->pdu_stat.add_bytes(1);
190 int bw_total = ses->bw_stat.get_total();
191 int pdu_total = ses->pdu_stat.get_total();
192 int search_total = ses->search_stat.get_total();
203 reduce = (reduce > nreduce) ? reduce : nreduce;
206 if (package.session().is_closed())
214 std::ostringstream os;
220 yaz_log(YLOG_LOG,
"%s", os.str().c_str());
222 Sleep(reduce * 1000);