X-Git-Url: http://git.indexdata.com/?p=yazproxy-moved-to-github.git;a=blobdiff_plain;f=include%2Fyazproxy%2Fproxy.h;h=b44b42ba3304fd1e10cfaf08f1b01d13ee64a272;hp=e7bb0851a0c1ff57113d8f98f7a153cfa6347481;hb=dfdff5f2d2825a500d3d27200d2ec32ee063a975;hpb=b23e9a676e80d7083d39cc913f61e5124b45da67 diff --git a/include/yazproxy/proxy.h b/include/yazproxy/proxy.h index e7bb085..b44b42b 100644 --- a/include/yazproxy/proxy.h +++ b/include/yazproxy/proxy.h @@ -1,7 +1,5 @@ -/* $Id: proxy.h,v 1.33 2006-04-06 17:09:16 adam Exp $ - Copyright (c) 1998-2006, Index Data. - -This file is part of the yazproxy. +/* This file is part of YAZ proxy + Copyright (C) 1998-2009 Index Data YAZ proxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -14,10 +12,9 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with YAZ proxy; see the file LICENSE. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. - */ +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ #ifndef YAZ_PROXY_H_INCLUDED #define YAZ_PROXY_H_INCLUDED @@ -50,7 +47,7 @@ class Yaz_CharsetConverter; enum YAZ_Proxy_MARCXML_mode { none, - marcxml, + marcxml }; class Msg_Thread; @@ -66,9 +63,12 @@ class YAZ_EXPORT Yaz_Proxy : public yazpp_1::Z_Assoc { char *get_proxy(Z_OtherInformation **otherInfo); void get_charset_and_lang_negotiation(Z_OtherInformation **otherInfo, char **charstes, char **langs, int *selected); + void HTTP_Forwarded(Z_GDU *z_gdu); + void connect_stat(bool &block, int &reduce); Yaz_ProxyClient *get_client(Z_APDU *apdu, const char *cookie, - const char *proxy_host); + const char *proxy_host, int *http_code); void srw_get_client(const char *db, const char **backend_db); + int get_number_of_connections(); Z_APDU *result_set_optimize(Z_APDU *apdu); void releaseClient(); Yaz_ProxyClient *m_client; @@ -83,6 +83,7 @@ class YAZ_EXPORT Yaz_Proxy : public yazpp_1::Z_Assoc { int m_keepalive_limit_pdu; int m_client_idletime; int m_target_idletime; + int m_max_sockets; int m_debug_mode; char *m_proxyTarget; char *m_default_target; @@ -107,7 +108,6 @@ class YAZ_EXPORT Yaz_Proxy : public yazpp_1::Z_Assoc { timeout_xsl } m_timeout_mode; - int m_initial_reduce; int m_max_connect; int m_max_connect_period; int m_limit_connect; @@ -145,7 +145,7 @@ class YAZ_EXPORT Yaz_Proxy : public yazpp_1::Z_Assoc { char *m_schema; char *m_backend_type; char *m_backend_charset; - int m_frontend_type; + Odr_oid m_frontend_type[OID_SIZE]; void convert_to_frontend_type(Z_NamePlusRecordList *p); void convert_to_marcxml(Z_NamePlusRecordList *p, const char *charset); void convert_records_charset(Z_NamePlusRecordList *p, const char *charset); @@ -212,12 +212,11 @@ class YAZ_EXPORT Yaz_Proxy : public yazpp_1::Z_Assoc { Yaz_Proxy *parent = 0); ~Yaz_Proxy(); - void inc_ref(); - bool dec_ref(bool main_ptr); - + bool dec_ref(); int handle_authentication(Z_APDU *apdu); + int handle_global_authentication(Z_APDU *apdu); void result_authentication(Z_APDU *apdu, int ret); void handle_init(Z_APDU *apdu); void inc_request_no(); @@ -254,6 +253,7 @@ class YAZ_EXPORT Yaz_Proxy : public yazpp_1::Z_Assoc { int handle_init_response_for_invalid_session(Z_APDU *apdu); void set_debug_mode(int mode); void send_response_fail_client(const char *addr); + int m_num_msg_threads; Msg_Thread *m_my_thread; void base64_decode(const char *base64, char *buf, int buf_len); }; @@ -262,6 +262,7 @@ class YAZ_EXPORT Yaz_Proxy : public yazpp_1::Z_Assoc { /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab