diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /vendor/voclient/include/xmlrpc_client.h | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'vendor/voclient/include/xmlrpc_client.h')
-rw-r--r-- | vendor/voclient/include/xmlrpc_client.h | 316 |
1 files changed, 316 insertions, 0 deletions
diff --git a/vendor/voclient/include/xmlrpc_client.h b/vendor/voclient/include/xmlrpc_client.h new file mode 100644 index 00000000..c2e2e619 --- /dev/null +++ b/vendor/voclient/include/xmlrpc_client.h @@ -0,0 +1,316 @@ +/*============================================================================ + xmlrpc_client.h +============================================================================== + This header file defines the interface between xmlrpc.c and its users, + related to clients. + + Copyright information is at the end of the file. +============================================================================*/ + +#ifndef XMLRPC_CLIENT_H_INCLUDED +#define XMLRPC_CLIENT_H_INCLUDED + +#include <xmlrpc-c/base.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +struct xmlrpc_client; +struct xmlrpc_client_transport; +struct xmlrpc_client_transport_ops; +#ifndef __cplusplus +typedef struct xmlrpc_client xmlrpc_client; +typedef struct xmlrpc_client_transport xmlrpc_client_transport; +typedef struct xmlrpc_client_transport_ops xmlrpc_client_transport_ops; +#endif + +/* libxmlrpc_client typically does _not_ actually include all of the + XML transports declared here by xmlrpc_*_transport_ops. + + Use 'xmlrpc-c-config --features' to determine which features are + installed. +*/ + +/* Before Xmlrpc-c 1.13 (December 2007), we declared struct + xmlrpc_xportparms, as a sort of "base class." The struct was never + complete -- you just cast pointer to it it to pointers to other + types. It turned out not to be really helpful and casts are ugly, + so now we just use void * as a base class pointer. +*/ + +extern struct xmlrpc_client_transport_ops xmlrpc_libwww_transport_ops; +extern struct xmlrpc_client_transport_ops xmlrpc_wininet_transport_ops; +extern struct xmlrpc_client_transport_ops xmlrpc_curl_transport_ops; + +enum xmlrpc_sslversion { + XMLRPC_SSLVERSION_DEFAULT, + XMLRPC_SSLVERSION_TLSv1, + XMLRPC_SSLVERSION_SSLv2, + XMLRPC_SSLVERSION_SSLv3 +}; + +struct xmlrpc_curl_xportparms { + /* This is designed so that zero values are always the defaults. */ + const char * network_interface; + xmlrpc_bool no_ssl_verifypeer; + xmlrpc_bool no_ssl_verifyhost; + const char * user_agent; + const char * ssl_cert; + const char * sslcerttype; + const char * sslcertpasswd; + const char * sslkey; + const char * sslkeytype; + const char * sslkeypasswd; + const char * sslengine; + xmlrpc_bool sslengine_default; + enum xmlrpc_sslversion sslversion; + const char * cainfo; + const char * capath; + const char * randomfile; + const char * egdsocket; + const char * ssl_cipher_list; + unsigned int timeout; +}; + + +#define XMLRPC_CXPSIZE(mbrname) \ + XMLRPC_STRUCTSIZE(struct xmlrpc_curl_xportparms, mbrname) + +/* XMLRPC_CXPSIZE(xyz) is analogous to XMLRPC_CPSIZE, below */ + +struct xmlrpc_wininet_xportparms { + int allowInvalidSSLCerts; +}; + +#define XMLRPC_WXPSIZE(mbrname) \ + XMLRPC_STRUCTSIZE(struct xmlrpc_wininet_xportparms, mbrname) + +/* XMLRPC_WXPSIZE(xyz) is analogous to XMLRPC_CPSIZE, below */ + +struct xmlrpc_clientparms { + /* (transport, transportparmsP, transportparm_size) and + (transportOpsP, transportP) are mutually exclusive. + */ + const char * transport; + const void * transportparmsP; + /* This should be type "const struct ..._xportparms *" */ + size_t transportparm_size; + + const struct xmlrpc_client_transport_ops * transportOpsP; + xmlrpc_client_transport * transportP; + xmlrpc_dialect dialect; +}; + +#define XMLRPC_CPSIZE(mbrname) \ + XMLRPC_STRUCTSIZE(struct xmlrpc_clientparms, mbrname) + +/* XMLRPC_CPSIZE(xyz) is the minimum size a struct xmlrpc_clientparms + must be to include the 'xyz' member. This is essential to forward and + backward compatbility, as new members will be added to the end of the + struct in future releases. This is how the callee knows whether or + not the caller is new enough to have supplied a certain parameter. +*/ + +const char * +xmlrpc_client_get_default_transport(xmlrpc_env * const env); + +/* A callback function to handle the response to an asynchronous call. +** If 'fault->fault_occurred' is true, then response will be NULL. All +** arguments except 'user_data' will be deallocated internally; please do +** not free any of them yourself. +** WARNING: param_array may (or may not) be NULL if fault->fault_occurred +** is true, and you set up the call using xmlrpc_client_call_asynch. +** WARNING: If asynchronous calls are still pending when the library is +** shut down, your handler may (or may not) be called with a fault. */ +typedef void (*xmlrpc_response_handler) (const char *server_url, + const char *method_name, + xmlrpc_value *param_array, + void *user_data, + xmlrpc_env *fault, + xmlrpc_value *result); + + +/*========================================================================= + xmlrpc_server_info +=========================================================================== + We normally refer to servers by URL. But sometimes we need to do extra + setup for particular servers. In that case, we can create an + xmlrpc_server_info object, configure it in various ways, and call the + remote server. + + (This interface is also designed to discourage further multiplication + of xmlrpc_client_call APIs. We have enough of those already. Please + add future options and flags using xmlrpc_server_info.) +=========================================================================*/ + +typedef struct _xmlrpc_server_info xmlrpc_server_info; + +/* Create a new server info record, pointing to the specified server. */ +xmlrpc_server_info * +xmlrpc_server_info_new(xmlrpc_env * const envP, + const char * const serverUrl); + +/* Create a new server info record, with a copy of the old server. */ +extern xmlrpc_server_info * +xmlrpc_server_info_copy(xmlrpc_env * const envP, + xmlrpc_server_info * const srcP); + +void +xmlrpc_server_info_free(xmlrpc_server_info * const serverP); + + +void +xmlrpc_server_info_set_user(xmlrpc_env * const envP, + xmlrpc_server_info * const serverInfoP, + const char * const username, + const char * const password); + +void +xmlrpc_server_info_set_basic_auth(xmlrpc_env * const envP, + xmlrpc_server_info * const serverP, + const char * const username, + const char * const password); + +void +xmlrpc_server_info_allow_auth_basic(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +void +xmlrpc_server_info_disallow_auth_basic(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +void +xmlrpc_server_info_allow_auth_digest(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +void +xmlrpc_server_info_disallow_auth_digest(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +void +xmlrpc_server_info_allow_auth_negotiate(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +void +xmlrpc_server_info_disallow_auth_negotiate(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +void +xmlrpc_server_info_allow_auth_ntlm(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +void +xmlrpc_server_info_disallow_auth_ntlm(xmlrpc_env * const envP, + xmlrpc_server_info * const sP); + +extern unsigned int const xmlrpc_client_version_major; +extern unsigned int const xmlrpc_client_version_minor; +extern unsigned int const xmlrpc_client_version_point; + +void +xmlrpc_client_setup_global_const(xmlrpc_env * const envP); + +void +xmlrpc_client_teardown_global_const(void); + +void +xmlrpc_client_create(xmlrpc_env * const envP, + int const flags, + const char * const appname, + const char * const appversion, + const struct xmlrpc_clientparms * const clientparmsP, + unsigned int const parmSize, + xmlrpc_client ** const clientPP); + +void +xmlrpc_client_destroy(xmlrpc_client * const clientP); + +void +xmlrpc_client_transport_call2( + xmlrpc_env * const envP, + xmlrpc_client * const clientP, + const xmlrpc_server_info * const serverP, + xmlrpc_mem_block * const callXmlP, + xmlrpc_mem_block ** const respXmlPP); + +void +xmlrpc_client_call2(xmlrpc_env * const envP, + struct xmlrpc_client * const clientP, + const xmlrpc_server_info * const serverInfoP, + const char * const methodName, + xmlrpc_value * const paramArrayP, + xmlrpc_value ** const resultPP); + +void +xmlrpc_client_call2f(xmlrpc_env * const envP, + xmlrpc_client * const clientP, + const char * const serverUrl, + const char * const methodName, + xmlrpc_value ** const resultPP, + const char * const format, + ...); + +void +xmlrpc_client_event_loop_finish(xmlrpc_client * const clientP); + +void +xmlrpc_client_event_loop_finish_timeout(xmlrpc_client * const clientP, + unsigned long const milliseconds); + +void +xmlrpc_client_start_rpc(xmlrpc_env * const envP, + struct xmlrpc_client * const clientP, + xmlrpc_server_info * const serverInfoP, + const char * const methodName, + xmlrpc_value * const argP, + xmlrpc_response_handler responseHandler, + void * const userData); + +void +xmlrpc_client_start_rpcf(xmlrpc_env * const envP, + xmlrpc_client * const clientP, + const char * const serverUrl, + const char * const methodName, + xmlrpc_response_handler callback, + void * const userData, + const char * const format, + ...); + +void +xmlrpc_client_set_interrupt(xmlrpc_client * const clientP, + int * const interruptP); + +#include <xmlrpc-c/client_global.h> + +/* Copyright (C) 2001 by First Peer, Inc. All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** 1. Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** 3. The name of the author may not be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +** SUCH DAMAGE. */ + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _XMLRPC_CLIENT_H_ */ |