+ std::string peername = p->origin().get_address();
+
+ m_limit_connect.add_connect(peername.c_str());
+ m_limit_connect.cleanup(false);
+ int con_sz = m_limit_connect.get_total(peername.c_str());
+ std::list<IP_Pattern>::const_iterator it = m_p->http_req_max.begin();
+ for (; it != m_p->http_req_max.end(); it++)
+ {
+ if (mp::util::match_ip(it->pattern, peername))
+ {
+ if (con_sz < it->value)
+ break;
+ mp::odr o;
+ Z_GDU *gdu_res = o.create_HTTP_Response(m_session, hreq, 500);
+ int len;
+ send_GDU(gdu_res, &len);
+ return;
+ }
+ }