-/* $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-2011 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
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
enum YAZ_Proxy_MARCXML_mode {
none,
- marcxml,
+ marcxml
};
class Msg_Thread;
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;
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;
timeout_xsl
} m_timeout_mode;
- int m_initial_reduce;
int m_max_connect;
int m_max_connect_period;
int m_limit_connect;
void display_diagrecs(Z_DiagRec **pp, int num);
Z_Records *create_nonSurrogateDiagnostics(ODR o, int error,
const char *addinfo);
+ Z_ListEntries *create_nonSurrogateDiagnostics2(ODR o, int error,
+ const char *addinfo);
Z_APDU *handle_query_validation(Z_APDU *apdu);
Z_APDU *handle_query_transformation(Z_APDU *apdu);
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);
int send_PDU_convert(Z_APDU *apdu);
ODR m_s2z_odr_init;
ODR m_s2z_odr_search;
+ ODR m_s2z_odr_scan;
int m_s2z_hit_count;
int m_s2z_packing;
char *m_s2z_database;
Z_APDU *m_s2z_init_apdu;
Z_APDU *m_s2z_search_apdu;
Z_APDU *m_s2z_present_apdu;
+ Z_APDU *m_s2z_scan_apdu;
char *m_s2z_stylesheet;
char *m_soap_ns;
int file_access(Z_HTTP_Request *hreq);
int send_to_srw_client_error(int error, const char *add);
int send_to_srw_client_ok(int hits, Z_Records *records, int start);
+ int send_to_srw_client_ok(Z_ListEntries *entries);
int send_http_response(int code);
int send_srw_response(Z_SRW_PDU *srw_pdu, int http_code = 200);
int send_srw_search_response(Z_SRW_diagnostic *diagnostics,
int num_diagnostics,
int http_code = 200);
+ int send_srw_scan_response(Z_SRW_diagnostic *diagnostics,
+ int num_diagnostics,
+ int http_code = 200);
int send_srw_explain_response(Z_SRW_diagnostic *diagnostics,
int num_diagnostics);
int z_to_srw_diag(ODR o, Z_SRW_searchRetrieveResponse *srw_res,
Z_DefaultDiagFormat *ddf);
+ int z_to_srw_diag(ODR o, Z_SRW_scanResponse *srw_res,
+ Z_DiagRec *dr);
int m_http_keepalive;
const char *m_http_version;
yazpp_1::Yaz_cql2rpn m_cql2rpn;
void low_socket_close();
char *m_usemarcon_ini_stage1;
char *m_usemarcon_ini_stage2;
+ char *m_backend_elementset;
Yaz_usemarcon *m_usemarcon;
Yaz_CharsetConverter *m_charset_converter;
yazpp_1::GDUQueue m_in_queue;
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();
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);
};
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab