projects
/
yazproxy-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed bug #1989: For PQF SRU one char is stipped off query.
[yazproxy-moved-to-github.git]
/
src
/
yaz-proxy-config.cpp
diff --git
a/src/yaz-proxy-config.cpp
b/src/yaz-proxy-config.cpp
index
e6642a5
..
b59d88a
100644
(file)
--- a/
src/yaz-proxy-config.cpp
+++ b/
src/yaz-proxy-config.cpp
@@
-1,5
+1,5
@@
-/* $Id: yaz-proxy-config.cpp,v 1.33 2006-06-28 23:38:23 adam Exp $
- Copyright (c) 1998-2006, Index Data.
+/* $Id: yaz-proxy-config.cpp,v 1.37 2007-05-08 12:05:09 adam Exp $
+ Copyright (c) 1998-2007, Index Data.
This file is part of the yazproxy.
This file is part of the yazproxy.
@@
-23,6
+23,7
@@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include <yaz/log.h>
#include "proxyp.h"
#include <yaz/log.h>
#include "proxyp.h"
+#include <yaz/oid_db.h>
class Yaz_ProxyConfigP {
friend class Yaz_ProxyConfig;
class Yaz_ProxyConfigP {
friend class Yaz_ProxyConfig;
@@
-31,7
+32,7
@@
class Yaz_ProxyConfigP {
int mycmp(const char *hay, const char *item, size_t len);
int match_list(int v, const char *m);
int atoi_l(const char **cp);
int mycmp(const char *hay, const char *item, size_t len);
int match_list(int v, const char *m);
int atoi_l(const char **cp);
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
void load_modules(void);
int check_schema(xmlNodePtr ptr, Z_RecordComposition *comp,
const char *schema_identifier);
void load_modules(void);
int check_schema(xmlNodePtr ptr, Z_RecordComposition *comp,
const char *schema_identifier);
@@
-70,7
+71,7
@@
class Yaz_ProxyConfigP {
Yaz_ProxyConfigP::Yaz_ProxyConfigP() : m_modules()
{
Yaz_ProxyConfigP::Yaz_ProxyConfigP() : m_modules()
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
m_docPtr = 0;
m_proxyPtr = 0;
#endif
m_docPtr = 0;
m_proxyPtr = 0;
#endif
@@
-78,7
+79,7
@@
Yaz_ProxyConfigP::Yaz_ProxyConfigP() : m_modules()
Yaz_ProxyConfigP::~Yaz_ProxyConfigP()
{
Yaz_ProxyConfigP::~Yaz_ProxyConfigP()
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
if (m_docPtr)
xmlFreeDoc(m_docPtr);
#endif
if (m_docPtr)
xmlFreeDoc(m_docPtr);
#endif
@@
-94,7
+95,7
@@
Yaz_ProxyConfig::~Yaz_ProxyConfig()
delete m_cp;
}
delete m_cp;
}
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
void Yaz_ProxyConfigP::load_modules()
{
if (!m_proxyPtr)
void Yaz_ProxyConfigP::load_modules()
{
if (!m_proxyPtr)
@@
-115,7
+116,7
@@
void Yaz_ProxyConfigP::load_modules()
int Yaz_ProxyConfig::read_xml(const char *fname)
{
int Yaz_ProxyConfig::read_xml(const char *fname)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlDocPtr ndoc = xmlParseFile(fname);
if (!ndoc)
xmlDocPtr ndoc = xmlParseFile(fname);
if (!ndoc)
@@
-150,7
+151,7
@@
int Yaz_ProxyConfig::read_xml(const char *fname)
#endif
}
#endif
}
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
const char *Yaz_ProxyConfigP::get_text(xmlNodePtr ptr)
{
for(ptr = ptr->children; ptr; ptr = ptr->next)
const char *Yaz_ProxyConfigP::get_text(xmlNodePtr ptr)
{
for(ptr = ptr->children; ptr; ptr = ptr->next)
@@
-180,7
+181,7
@@
void Yaz_ProxyConfigP::get_period(xmlNodePtr ptr, int *period)
}
#endif
}
#endif
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
void Yaz_ProxyConfigP::return_limit(xmlNodePtr ptr,
int *limit_bw,
int *limit_pdu,
void Yaz_ProxyConfigP::return_limit(xmlNodePtr ptr,
int *limit_bw,
int *limit_pdu,
@@
-221,7
+222,7
@@
void Yaz_ProxyConfigP::return_limit(xmlNodePtr ptr,
}
#endif
}
#endif
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
void Yaz_ProxyConfigP::return_target_info(xmlNodePtr ptr,
const char **url,
int *limit_bw,
void Yaz_ProxyConfigP::return_target_info(xmlNodePtr ptr,
const char **url,
int *limit_bw,
@@
-368,7
+369,7
@@
int Yaz_ProxyConfigP::match_list(int v, const char *m)
return 0;
}
return 0;
}
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
int Yaz_ProxyConfigP::check_type_1_attributes(ODR odr, xmlNodePtr ptrl,
Z_AttributeList *attrs,
char **addinfo)
int Yaz_ProxyConfigP::check_type_1_attributes(ODR odr, xmlNodePtr ptrl,
Z_AttributeList *attrs,
char **addinfo)
@@
-441,7
+442,7
@@
int Yaz_ProxyConfigP::check_type_1_attributes(ODR odr, xmlNodePtr ptrl,
}
#endif
}
#endif
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
int Yaz_ProxyConfigP::check_type_1_structure(ODR odr, xmlNodePtr ptr,
Z_RPNStructure *q,
char **addinfo)
int Yaz_ProxyConfigP::check_type_1_structure(ODR odr, xmlNodePtr ptr,
Z_RPNStructure *q,
char **addinfo)
@@
-467,7
+468,7
@@
int Yaz_ProxyConfigP::check_type_1_structure(ODR odr, xmlNodePtr ptr,
}
#endif
}
#endif
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
int Yaz_ProxyConfigP::check_type_1(ODR odr, xmlNodePtr ptr, Z_RPNQuery *query,
char **addinfo)
{
int Yaz_ProxyConfigP::check_type_1(ODR odr, xmlNodePtr ptr, Z_RPNQuery *query,
char **addinfo)
{
@@
-479,7
+480,7
@@
int Yaz_ProxyConfigP::check_type_1(ODR odr, xmlNodePtr ptr, Z_RPNQuery *query,
int Yaz_ProxyConfig::check_query(ODR odr, const char *name, Z_Query *query,
char **addinfo)
{
int Yaz_ProxyConfig::check_query(ODR odr, const char *name, Z_Query *query,
char **addinfo)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr;
ptr = m_cp->find_target_node(name, 0);
xmlNodePtr ptr;
ptr = m_cp->find_target_node(name, 0);
@@
-492,7
+493,7
@@
int Yaz_ProxyConfig::check_query(ODR odr, const char *name, Z_Query *query,
return 0;
}
return 0;
}
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
int Yaz_ProxyConfigP::check_schema(xmlNodePtr ptr, Z_RecordComposition *comp,
const char *schema_identifier)
{
int Yaz_ProxyConfigP::check_schema(xmlNodePtr ptr, Z_RecordComposition *comp,
const char *schema_identifier)
{
@@
-572,7
+573,7
@@
const char *Yaz_ProxyConfig::check_mime_type(const char *path)
void Yaz_ProxyConfig::target_authentication(const char *name,
ODR odr, Z_InitRequest *req)
{
void Yaz_ProxyConfig::target_authentication(const char *name,
ODR odr, Z_InitRequest *req)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr = m_cp->find_target_node(name, 0);
if (!ptr)
return ;
xmlNodePtr ptr = m_cp->find_target_node(name, 0);
if (!ptr)
return ;
@@
-645,7
+646,7
@@
int Yaz_ProxyConfig::client_authentication(const char *name,
const char *peer_IP)
{
int ret = YAZPROXY_RET_NOT_ME;
const char *peer_IP)
{
int ret = YAZPROXY_RET_NOT_ME;
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr;
ptr = m_cp->find_target_node(name, 0);
if (!ptr)
xmlNodePtr ptr;
ptr = m_cp->find_target_node(name, 0);
if (!ptr)
@@
-682,7
+683,7
@@
int Yaz_ProxyConfig::global_client_authentication(const char *user,
const char *peer_IP)
{
int ret = YAZPROXY_RET_NOT_ME;
const char *peer_IP)
{
int ret = YAZPROXY_RET_NOT_ME;
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
if (!m_cp->m_proxyPtr)
return 1;
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
return 1;
xmlNodePtr ptr;
@@
-754,7
+755,7
@@
int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name,
xfree (*usemarcon_ini_stage2);
*usemarcon_ini_stage2 = 0;
}
xfree (*usemarcon_ini_stage2);
*usemarcon_ini_stage2 = 0;
}
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
int syntax_has_matched = 0;
xmlNodePtr ptr;
int syntax_has_matched = 0;
xmlNodePtr ptr;
@@
-822,8
+823,10
@@
int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name,
}
else if (syntax)
{
}
else if (syntax)
{
- int match_oid[OID_SIZE];
- oid_name_to_oid(CLASS_RECSYN, match_type, match_oid);
+ Odr_oid *match_oid
+ = yaz_string_to_oid_odr(yaz_oid_std(),
+ CLASS_RECSYN, match_type,
+ odr);
if (oid_oidcmp(match_oid, syntax) == 0)
match = 1;
}
if (oid_oidcmp(match_oid, syntax) == 0)
match = 1;
}
@@
-877,8
+880,8
@@
int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name,
return 25;
if (syntax)
{
return 25;
if (syntax)
{
- char dotoid_str[100];
- oid_to_dotstring(syntax, dotoid_str);
+ char dotoid_str[OID_STR_MAX];
+ oid_oid_to_dotstring(syntax, dotoid_str);
*addinfo = odr_strdup(odr, dotoid_str);
}
return atoi(match_error);
*addinfo = odr_strdup(odr, dotoid_str);
}
return atoi(match_error);
@@
-891,7
+894,7
@@
int Yaz_ProxyConfig::check_syntax(ODR odr, const char *name,
return 0;
}
return 0;
}
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr Yaz_ProxyConfigP::find_target_db(xmlNodePtr ptr, const char *db)
{
xmlNodePtr dptr;
xmlNodePtr Yaz_ProxyConfigP::find_target_db(xmlNodePtr ptr, const char *db)
{
xmlNodePtr dptr;
@@
-990,7
+993,7
@@
int Yaz_ProxyConfig::get_target_no(int no,
const char **target_charset,
const char **default_client_query_charset)
{
const char **target_charset,
const char **default_client_query_charset)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
return 0;
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
return 0;
@@
-1036,7
+1039,7
@@
int Yaz_ProxyConfigP::mycmp(const char *hay, const char *item, size_t len)
int Yaz_ProxyConfig::get_file_access_info(const char *path)
{
int Yaz_ProxyConfig::get_file_access_info(const char *path)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
return 0;
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
return 0;
@@
-1066,7
+1069,7
@@
void Yaz_ProxyConfig::get_generic_info(int *log_mask,
*max_connect = 0;
*limit_connect = 0;
*num_msg_threads = 0;
*max_connect = 0;
*limit_connect = 0;
*num_msg_threads = 0;
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
return;
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
return;
@@
-1168,7
+1171,7
@@
void Yaz_ProxyConfig::get_generic_info(int *log_mask,
#endif
}
#endif
}
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
int Yaz_ProxyConfigP::get_explain_ptr(const char *host, const char *db,
xmlNodePtr *ptr_target,
xmlNodePtr *ptr_explain)
int Yaz_ProxyConfigP::get_explain_ptr(const char *host, const char *db,
xmlNodePtr *ptr_target,
xmlNodePtr *ptr_explain)
@@
-1225,7
+1228,7
@@
int Yaz_ProxyConfigP::get_explain_ptr(const char *host, const char *db,
const char *Yaz_ProxyConfig::get_explain_name(const char *db,
const char **backend_db)
{
const char *Yaz_ProxyConfig::get_explain_name(const char *db,
const char **backend_db)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr_target, ptr_explain;
if (m_cp->get_explain_ptr(0, db, &ptr_target, &ptr_explain)
&& ptr_target)
xmlNodePtr ptr_target, ptr_explain;
if (m_cp->get_explain_ptr(0, db, &ptr_target, &ptr_explain)
&& ptr_target)
@@
-1263,7
+1266,7
@@
const char *Yaz_ProxyConfig::get_explain_name(const char *db,
char *Yaz_ProxyConfig::get_explain_doc(ODR odr, const char *name,
const char *db, int *len)
{
char *Yaz_ProxyConfig::get_explain_doc(ODR odr, const char *name,
const char *db, int *len)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr_target, ptr_explain;
if (m_cp->get_explain_ptr(0 /* host */, db, &ptr_target, &ptr_explain))
{
xmlNodePtr ptr_target, ptr_explain;
if (m_cp->get_explain_ptr(0 /* host */, db, &ptr_target, &ptr_explain))
{
@@
-1304,7
+1307,7
@@
void Yaz_ProxyConfig::get_target_info(const char *name,
const char **target_charset,
const char **default_client_query_charset)
{
const char **target_charset,
const char **default_client_query_charset)
{
-#if HAVE_XSLT
+#if YAZ_HAVE_XSLT
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
{
xmlNodePtr ptr;
if (!m_cp->m_proxyPtr)
{