-/* $Id: proxyp.h,v 1.9 2005-06-25 15:58:33 adam Exp $
+/* $Id: proxyp.h,v 1.10 2005-09-26 09:25:05 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
int *limit_bw,
int *limit_pdu,
int *limit_req,
+ int *limit_search,
+ int *limit_connect,
int *target_idletime,
int *client_idletime,
int *max_clients,
void get_target_info(const char *name, const char **url,
int *limit_bw, int *limit_pdu, int *limit_req,
+ int *limit_search, int *limit_connect,
int *target_idletime, int *client_idletime,
int *max_clients,
int *keepalive_limit_bw, int *keepalive_limit_pdu,
-/* $Id: yaz-proxy-config.cpp,v 1.22 2005-06-25 15:58:33 adam Exp $
+/* $Id: yaz-proxy-config.cpp,v 1.23 2005-09-26 09:25:06 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
xmlNodePtr m_proxyPtr;
void return_target_info(xmlNodePtr ptr, const char **url,
int *limit_bw, int *limit_pdu, int *limit_req,
+ int *limit_search, int *limit_connect,
int *target_idletime, int *client_idletime,
int *keepalive_limit_bw, int *keepalive_limit_pdu,
int *pre_init, const char **cql2rpn,
const char **negotiation_lang,
const char **target_charset);
void return_limit(xmlNodePtr ptr,
- int *limit_bw, int *limit_pdu, int *limit_req);
+ int *limit_bw, int *limit_pdu, int *limit_req,
+ int *limit_search, int *limit_connect);
int check_type_1(ODR odr, xmlNodePtr ptr, Z_RPNQuery *query,
char **addinfo);
xmlNodePtr find_target_node(const char *name, const char *db);
#if HAVE_XSLT
void Yaz_ProxyConfigP::return_limit(xmlNodePtr ptr,
- int *limit_bw,
- int *limit_pdu,
- int *limit_req)
+ int *limit_bw,
+ int *limit_pdu,
+ int *limit_req,
+ int *limit_search,
+ int *limit_connect)
{
for (ptr = ptr->children; ptr; ptr = ptr->next)
{
if (t)
*limit_pdu = atoi(t);
}
+ if (ptr->type == XML_ELEMENT_NODE
+ && !strcmp((const char *) ptr->name, "search"))
+ {
+ const char *t = get_text(ptr);
+ if (t)
+ *limit_search = atoi(t);
+ }
+ if (ptr->type == XML_ELEMENT_NODE
+ && !strcmp((const char *) ptr->name, "connect"))
+ {
+ const char *t = get_text(ptr);
+ if (t)
+ *limit_connect = atoi(t);
+ }
}
}
#endif
int *limit_bw,
int *limit_pdu,
int *limit_req,
+ int *limit_search,
+ int *limit_connect,
int *target_idletime,
int *client_idletime,
int *keepalive_limit_bw,
*keepalive_limit_bw = 500000;
*keepalive_limit_pdu = 1000;
return_limit(ptr, keepalive_limit_bw, keepalive_limit_pdu,
- &dummy);
+ &dummy, &dummy, &dummy);
}
if (ptr->type == XML_ELEMENT_NODE
&& !strcmp((const char *) ptr->name, "limit"))
- return_limit(ptr, limit_bw, limit_pdu, limit_req);
+ return_limit(ptr, limit_bw, limit_pdu, limit_req,
+ limit_search, limit_connect);
if (ptr->type == XML_ELEMENT_NODE
&& !strcmp((const char *) ptr->name, "target-timeout"))
{
int *limit_bw,
int *limit_pdu,
int *limit_req,
+ int *limit_search,
+ int *limit_connect,
int *target_idletime,
int *client_idletime,
int *max_clients,
m_cp->return_target_info(
ptr, url,
limit_bw, limit_pdu, limit_req,
+ limit_search, limit_connect,
target_idletime, client_idletime,
keepalive_limit_bw, keepalive_limit_pdu,
pre_init, cql2rpn,
int *limit_bw,
int *limit_pdu,
int *limit_req,
+ int *limit_search,
+ int *limit_connect,
int *target_idletime,
int *client_idletime,
int *max_clients,
url[1] = 0;
}
m_cp->return_target_info(ptr, url, limit_bw, limit_pdu, limit_req,
+ limit_search, limit_connect,
target_idletime, client_idletime,
keepalive_limit_bw, keepalive_limit_pdu,
pre_init, cql2rpn,
-/* $Id: yaz-proxy.cpp,v 1.36 2005-09-12 20:09:14 adam Exp $
+/* $Id: yaz-proxy.cpp,v 1.37 2005-09-26 09:25:06 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
m_session_no = 0;
m_bytes_sent = 0;
m_bytes_recv = 0;
- m_bw_hold_PDU = 0;
m_bw_max = 0;
m_pdu_max = 0;
+ m_search_max = 0;
+ m_connect_max = 0;
m_timeout_mode = timeout_normal;
m_timeout_gdu = 0;
m_max_record_retrieve = 0;
int pre_init = 0;
cfg->get_target_info(proxy_host, url, &m_bw_max,
&m_pdu_max, &m_max_record_retrieve,
+ &m_search_max, &m_connect_max,
&m_target_idletime, &client_idletime,
&parent->m_max_clients,
&m_keepalive_limit_bw,
/* uncomment to force a big reduce */
m_timeout_mode = timeout_reduce;
m_timeout_gdu = gdu;
- // m_bw_hold_PDU = apdu; // save PDU and signal "on hold"
timeout(3); // call us reduce seconds later
return;
#endif
m_timeout_mode = timeout_reduce;
m_timeout_gdu = gdu;
- // m_bw_hold_PDU = apdu; // save PDU and signal "on hold"
timeout(reduce); // call us reduce seconds later
}
else
int i;
const char *name = 0;
const char *zurl_in_use[MAX_ZURL_PLEX];
- int limit_bw, limit_pdu, limit_req;
+ int limit_bw, limit_pdu, limit_req, limit_search, limit_connect;
int target_idletime, client_idletime;
int max_clients;
int keepalive_limit_bw, keepalive_limit_pdu;
for (i = 0; cfg && cfg->get_target_no(i, &name, zurl_in_use,
&limit_bw, &limit_pdu, &limit_req,
+ &limit_search, &limit_connect,
&target_idletime, &client_idletime,
&max_clients,
&keepalive_limit_bw,