X-Git-Url: http://git.indexdata.com/?p=yazproxy-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-proxy-config.cpp;h=5bc04fc204c31f1b0500b65bcd4eaf4d8e7a6960;hp=8b98f1139c8b929fcdbfdc0401e21aa347ba204a;hb=32c6e333211e98fe4ad78fb86f2c9acd444ca24f;hpb=d7f41f16caf965adb1a5ffcdaa937787dfcc030a diff --git a/src/yaz-proxy-config.cpp b/src/yaz-proxy-config.cpp index 8b98f11..5bc04fc 100644 --- a/src/yaz-proxy-config.cpp +++ b/src/yaz-proxy-config.cpp @@ -1,4 +1,4 @@ -/* $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. @@ -39,6 +39,7 @@ class Yaz_ProxyConfigP { 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, @@ -46,7 +47,8 @@ class Yaz_ProxyConfigP { 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); @@ -166,9 +168,11 @@ const char *Yaz_ProxyConfigP::get_text(xmlNodePtr ptr) #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) { @@ -193,6 +197,20 @@ void Yaz_ProxyConfigP::return_limit(xmlNodePtr ptr, 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 @@ -203,6 +221,8 @@ void Yaz_ProxyConfigP::return_target_info(xmlNodePtr ptr, 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, @@ -241,11 +261,12 @@ void Yaz_ProxyConfigP::return_target_info(xmlNodePtr ptr, *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")) { @@ -900,6 +921,8 @@ int Yaz_ProxyConfig::get_target_no(int no, int *limit_bw, int *limit_pdu, int *limit_req, + int *limit_search, + int *limit_connect, int *target_idletime, int *client_idletime, int *max_clients, @@ -935,6 +958,7 @@ int Yaz_ProxyConfig::get_target_no(int no, 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, @@ -1129,6 +1153,8 @@ void Yaz_ProxyConfig::get_target_info(const char *name, int *limit_bw, int *limit_pdu, int *limit_req, + int *limit_search, + int *limit_connect, int *target_idletime, int *client_idletime, int *max_clients, @@ -1172,6 +1198,7 @@ void Yaz_ProxyConfig::get_target_info(const char *name, 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,