X-Git-Url: http://git.indexdata.com/?p=yazproxy-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-proxy-config.cpp;fp=src%2Fyaz-proxy-config.cpp;h=4f19e06beff2f0ad20f336a3c5c68c389116834d;hp=18a49dd4bae55834e81b0b32008c0fa716957162;hb=2bfdeda2d9f42b091c9250a44ccda63cc9bdc723;hpb=45deae12ee253b77aab799c6303b5a8cd6835ce8 diff --git a/src/yaz-proxy-config.cpp b/src/yaz-proxy-config.cpp index 18a49dd..4f19e06 100644 --- a/src/yaz-proxy-config.cpp +++ b/src/yaz-proxy-config.cpp @@ -729,7 +729,8 @@ int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name, char **backend_type, char **backend_charset, char **usemarcon_ini_stage1, - char **usemarcon_ini_stage2 + char **usemarcon_ini_stage2, + char **backend_elementset ) { if (stylesheet) @@ -762,6 +763,8 @@ int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name, xfree (*usemarcon_ini_stage2); *usemarcon_ini_stage2 = 0; } + xfree(*backend_elementset); + *backend_elementset = 0; #if YAZ_HAVE_XSLT int syntax_has_matched = 0; xmlNodePtr ptr; @@ -784,6 +787,7 @@ int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name, const char *match_backend_charset = 0; const char *match_usemarcon_ini_stage1 = 0; const char *match_usemarcon_ini_stage2 = 0; + const char *match_elementset = 0; struct _xmlAttr *attr; for (attr = ptr->properties; attr; attr = attr->next) { @@ -818,6 +822,9 @@ int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name, attr->children && attr->children->type == XML_TEXT_NODE) match_usemarcon_ini_stage2 = (const char *) attr->children->content; + if (!strcmp((const char *) attr->name, "backendelementset") && + attr->children && attr->children->type == XML_TEXT_NODE) + match_elementset = (const char *) attr->children->content; } if (match_type) { @@ -867,6 +874,11 @@ int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name, xfree(*backend_charset); *backend_charset = xstrdup(match_backend_charset); } + if (match_elementset) + { + xfree(*backend_elementset); + *backend_elementset = xstrdup(match_elementset); + } if (usemarcon_ini_stage1 && match_usemarcon_ini_stage1) { xfree(*usemarcon_ini_stage1);