X-Git-Url: http://git.indexdata.com/?p=yazproxy-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-proxy-config.cpp;h=dbf03a58fb42e5e30c9220e16e08642c9fa01a0f;hp=ec7e39671d6801d3f3684ea7656b5bfccb5eb1c0;hb=b276287e0e21b0bb267c5d5a7d87254ee1f5e29f;hpb=2687af689ae79c5a823e28e0ecb3429106df1caa diff --git a/src/yaz-proxy-config.cpp b/src/yaz-proxy-config.cpp index ec7e396..dbf03a5 100644 --- a/src/yaz-proxy-config.cpp +++ b/src/yaz-proxy-config.cpp @@ -1,4 +1,4 @@ -/* $Id: yaz-proxy-config.cpp,v 1.29 2006-04-06 12:04:19 adam Exp $ +/* $Id: yaz-proxy-config.cpp,v 1.30 2006-04-06 16:25:21 adam Exp $ Copyright (c) 1998-2006, Index Data. This file is part of the yazproxy. @@ -55,6 +55,7 @@ class Yaz_ProxyConfigP { xmlNodePtr find_target_node(const char *name, const char *db); xmlNodePtr find_target_db(xmlNodePtr ptr, const char *db); const char *get_text(xmlNodePtr ptr); + void get_period(xmlNodePtr ptr, int *period); int check_type_1_attributes(ODR odr, xmlNodePtr ptr, Z_AttributeList *attrs, char **addinfo); @@ -165,6 +166,18 @@ const char *Yaz_ProxyConfigP::get_text(xmlNodePtr ptr) } return 0; } + +void Yaz_ProxyConfigP::get_period(xmlNodePtr ptr, int *period) +{ + struct _xmlAttr *attr; + *period = 60; + for (attr = ptr->properties; attr; attr = attr->next) + { + if (!strcmp((const char *) attr->name, "period") && + attr->children && attr->children->type == XML_TEXT_NODE) + *period = atoi((const char *) attr->children->content); + } +} #endif #if HAVE_XSLT @@ -1008,7 +1021,8 @@ int Yaz_ProxyConfig::get_file_access_info(const char *path) void Yaz_ProxyConfig::get_generic_info(int *log_mask, int *max_clients, int *max_connect, - int *limit_connect) + int *limit_connect, + int *period_connect) { *max_connect = 0; *limit_connect = 0; @@ -1060,18 +1074,29 @@ void Yaz_ProxyConfig::get_generic_info(int *log_mask, } } else if (ptr->type == XML_ELEMENT_NODE && + !strcmp((const char *) ptr->name, "period-connect")) + { + const char *t = m_cp->get_text(ptr); + if (t) + *period_connect = atoi(t); + } + else if (ptr->type == XML_ELEMENT_NODE && !strcmp((const char *) ptr->name, "max-connect")) { const char *t = m_cp->get_text(ptr); if (t) + { *max_connect = atoi(t); + } } else if (ptr->type == XML_ELEMENT_NODE && !strcmp((const char *) ptr->name, "limit-connect")) { const char *t = m_cp->get_text(ptr); if (t) + { *limit_connect = atoi(t); + } } else if (ptr->type == XML_ELEMENT_NODE && !strcmp((const char *) ptr->name, "target"))