TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
stdsoap2.h File Reference
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <time.h>
#include <sys/socket.h>
#include <strings.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <fcntl.h>
#include <math.h>
+ Include dependency graph for stdsoap2.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

union  soap_double_nan
 
struct  Namespace
 
struct  soap_nlist
 
struct  soap_blist
 
struct  soap_array
 
struct  soap_plist
 
struct  soap_pblk
 
struct  soap_clist
 
struct  soap_attribute
 
struct  soap_cookie
 
struct  soap_dime
 
struct  soap_mime
 
struct  soap_multipart
 
struct  soap_xlist
 
struct  soap_dom_attribute
 
struct  soap_dom_element
 
struct  soap
 
struct  soap_code_map
 
struct  soap_flist
 
struct  soap_ilist
 
struct  soap_plugin
 

Macros

#define GSOAP_VERSION   20817
 
#define _THREAD_SAFE
 
#define _REENTRANT
 
#define SOAP_FMAC1
 
#define SOAP_FMAC2
 
#define SOAP_FMAC3
 
#define SOAP_FMAC3S   SOAP_FMAC3
 
#define SOAP_FMAC4
 
#define SOAP_FMAC4S   SOAP_FMAC4
 
#define SOAP_FMAC5
 
#define SOAP_FMAC6
 
#define SOAP_CMAC
 
#define SOAP_NMAC
 
#define SOAP_SOURCE_STAMP(str)
 
#define WITH_FAST
 
#define STDSOAP_H
 
#define HAVE_SNPRINTF
 
#define HAVE_STRRCHR
 
#define HAVE_STRTOD
 
#define HAVE_SSCANF
 
#define HAVE_STRTOL
 
#define HAVE_STRTOUL
 
#define HAVE_SYS_TIMEB_H
 
#define HAVE_FTIME
 
#define HAVE_RAND_R
 
#define HAVE_GETHOSTBYNAME_R
 
#define HAVE_GMTIME_R
 
#define HAVE_LOCALTIME_R
 
#define HAVE_STRERROR_R
 
#define WITH_CDATA
 
#define SOAP_PURE_VIRTUAL
 
#define SOAP_WINSOCKINT   size_t
 
#define SOAP_STRCMP   strcmp /* case sensitive XML element/attribute names */
 
#define SOAP_SOCKLEN_T   size_t
 
#define SOAP_SOCKET   int
 
#define soap_closesocket(n)   close(n)
 
#define SOAP_INVALID_SOCKET   ((SOAP_SOCKET)-1)
 
#define soap_valid_socket(n)   ((n) != SOAP_INVALID_SOCKET)
 
#define SOAP_SHUT_WR   1
 
#define SOAP_SHUT_RDWR   2
 
#define SOAP_GAI_STRERROR   gai_strerror
 
#define FD_SETSIZE   (1024)
 
#define SOAP_CHK_EOF   (soap->error ? soap->error : SOAP_EOF)
 
#define LONG64   long long
 
#define ULONG64   unsigned LONG64
 
#define SOAP_LONG_FORMAT   "%lld" /* printf format for 64 bit ints */
 
#define SOAP_ULONG_FORMAT   "%llu" /* printf format for unsigned 64 bit ints */
 
#define soap_int32   int32_t
 
#define SOAP_ERANGE   ERANGE
 
#define SOAP_EINTR   EINTR
 
#define SOAP_EAGAIN   EAGAIN
 
#define SOAP_EADDRINUSE   EADDRINUSE
 
#define SOAP_EWOULDBLOCK   EWOULDBLOCK
 
#define SOAP_EINPROGRESS   EINPROGRESS
 
#define soap_errno   errno
 
#define soap_socket_errno(s)   errno
 
#define soap_reset_errno   (errno = 0)
 
#define SOAP_BUFLEN   (65536) /* buffer length for socket packets, also used by gethostbyname_r and UDP messages, so don't make this too small */
 
#define SOAP_LABLEN   (256) /* initial look-aside buffer length */
 
#define SOAP_PTRBLK   (32) /* block allocation for pointer hash table chains */
 
#define SOAP_PTRHASH   (4096) /* size of pointer analysis hash table (must be power of 2) */
 
#define SOAP_IDHASH   (1999) /* prime size of hash table for parsed id/ref */
 
#define SOAP_BLKLEN   (256) /* to collect long strings and XML attributes */
 
#define SOAP_TAGLEN   (1024) /* maximum length of XML element tag/attribute name or host/path name + 1 */
 
#define SOAP_HDRLEN   (8192) /* maximum length of HTTP header line (must be >4096 to read cookies) */
 
#define SOAP_MAXDIMS   (16) /* maximum array dimensions (array nestings) must be less than 64 to protect soap->tmpbuf */
 
#define SOAP_MAXLOGS   (3) /* max number of debug logs per struct soap environment */
 
#define SOAP_INDEX_RECV   (0)
 
#define SOAP_INDEX_SENT   (1)
 
#define SOAP_INDEX_TEST   (2)
 
#define SOAP_MAXEINTR   (10)
 
#define SOAP_MAXKEEPALIVE   (100)
 
#define SOAP_MAXARRAYSIZE   (1000000)
 
#define SOAP_MAXDIMESIZE   (8388608) /* 8 MB */
 
#define FLT_NAN   (soap_double_nan.fv)
 
#define FLT_PINFTY   (3.40282347e+38F)
 
#define FLT_NINFTY   (-FLT_PINFTY)
 
#define DBL_NAN   (soap_double_nan.dv)
 
#define DBL_PINFTY   (1.7976931348623157e+308)
 
#define DBL_NINFTY   (-DBL_PINFTY)
 
#define soap_isnan(n)   ((n) != (n))
 
#define soap_isinf(n)   (!soap_isnan(n) && soap_isnan((n) - (n)))
 
#define soap_ispinfd(n)   ((n) > 0 && soap_isinf(n))
 
#define soap_ispinff(n)   ((n) > 0 && soap_isinf(n))
 
#define soap_isninfd(n)   ((n) < 0 && soap_isinf(n))
 
#define soap_isninff(n)   ((n) < 0 && soap_isinf(n))
 
#define soap_snprintf   snprintf
 
#define SOAP_EOF   EOF
 
#define SOAP_ERR   EOF
 
#define SOAP_OK   0
 
#define SOAP_CLI_FAULT   1
 
#define SOAP_SVR_FAULT   2
 
#define SOAP_TAG_MISMATCH   3
 
#define SOAP_TYPE   4
 
#define SOAP_SYNTAX_ERROR   5
 
#define SOAP_NO_TAG   6
 
#define SOAP_IOB   7
 
#define SOAP_MUSTUNDERSTAND   8
 
#define SOAP_NAMESPACE   9
 
#define SOAP_USER_ERROR   10
 
#define SOAP_FATAL_ERROR   11
 
#define SOAP_FAULT   12
 
#define SOAP_NO_METHOD   13
 
#define SOAP_NO_DATA   14
 
#define SOAP_GET_METHOD   15
 
#define SOAP_PUT_METHOD   16
 
#define SOAP_DEL_METHOD   17 /* deprecated */
 
#define SOAP_HEAD_METHOD   18 /* deprecated */
 
#define SOAP_HTTP_METHOD   19
 
#define SOAP_EOM   20
 
#define SOAP_MOE   21
 
#define SOAP_HDR   22
 
#define SOAP_NULL   23
 
#define SOAP_DUPLICATE_ID   24
 
#define SOAP_MISSING_ID   25
 
#define SOAP_HREF   26
 
#define SOAP_UDP_ERROR   27
 
#define SOAP_TCP_ERROR   28
 
#define SOAP_HTTP_ERROR   29
 
#define SOAP_SSL_ERROR   30
 
#define SOAP_ZLIB_ERROR   31
 
#define SOAP_DIME_ERROR   32
 
#define SOAP_DIME_HREF   33
 
#define SOAP_DIME_MISMATCH   34
 
#define SOAP_DIME_END   35
 
#define SOAP_MIME_ERROR   36
 
#define SOAP_MIME_HREF   37
 
#define SOAP_MIME_END   38
 
#define SOAP_VERSIONMISMATCH   39
 
#define SOAP_PLUGIN_ERROR   40
 
#define SOAP_DATAENCODINGUNKNOWN   41
 
#define SOAP_REQUIRED   42
 
#define SOAP_PROHIBITED   43
 
#define SOAP_OCCURS   44
 
#define SOAP_LENGTH   45
 
#define SOAP_FD_EXCEEDED   46
 
#define SOAP_UTF_ERROR   47
 
#define SOAP_NTLM_ERROR   48
 
#define soap_xml_error_check(e)   ((e) == SOAP_TAG_MISMATCH || (e) == SOAP_NO_TAG || (e) == SOAP_SYNTAX_ERROR || (e) == SOAP_NAMESPACE || (e) == SOAP_DUPLICATE_ID || (e) == SOAP_MISSING_ID || (e) == SOAP_REQUIRED || (e) == SOAP_PROHIBITED || (e) == SOAP_OCCURS || (e) == SOAP_LENGTH || (e) == SOAP_NULL || (e) == SOAP_HREF)
 
#define soap_soap_error_check(e)   ((e) == SOAP_CLI_FAULT || (e) == SOAP_SVR_FAULT || (e) == SOAP_VERSIONMISMATCH || (e) == SOAP_MUSTUNDERSTAND || (e) == SOAP_FAULT || (e) == SOAP_NO_METHOD)
 
#define soap_tcp_error_check(e)   ((e) == SOAP_EOF || (e) == SOAP_TCP_ERROR)
 
#define soap_ssl_error_check(e)   ((e) == SOAP_SSL_ERROR)
 
#define soap_zlib_error_check(e)   ((e) == SOAP_ZLIB_ERROR)
 
#define soap_http_error_check(e)   ((e) == SOAP_HTTP_ERROR || (e) == SOAP_NO_DATA || ((e) >= SOAP_GET_METHOD && (e) <= SOAP_HTTP_METHOD) || ((e) >= 100 && (e) < 600))
 
#define SOAP_STOP   1000 /* No HTTP response */
 
#define SOAP_FORM   1001 /* Request (form) data is present, no HTTP response */
 
#define SOAP_HTML   1002 /* Custom HTML response */
 
#define SOAP_FILE   1003 /* Custom file-based response */
 
#define SOAP_POST   2000 /* POST request */
 
#define SOAP_POST_FILE   2001 /* Custom file-based POST request */
 
#define SOAP_GET   2002 /* GET request */
 
#define SOAP_PUT   2003 /* PUT request */
 
#define SOAP_DEL   2004 /* DELETE request */
 
#define SOAP_CONNECT   2005 /* CONNECT request */
 
#define SOAP_DIME_CF   0x01
 
#define SOAP_DIME_ME   0x02
 
#define SOAP_DIME_MB   0x04
 
#define SOAP_DIME_VERSION   0x08 /* DIME version 1 */
 
#define SOAP_DIME_MEDIA   0x10
 
#define SOAP_DIME_ABSURI   0x20
 
#define SOAP_ZLIB_NONE   0x00
 
#define SOAP_ZLIB_DEFLATE   0x01
 
#define SOAP_ZLIB_INFLATE   0x02
 
#define SOAP_ZLIB_GZIP   0x02
 
#define SOAP_IO   0x00000003 /* IO mask */
 
#define SOAP_IO_FLUSH   0x00000000 /* flush output immediately, no buffering */
 
#define SOAP_IO_BUFFER   0x00000001 /* buffer output in packets of size SOAP_BUFLEN */
 
#define SOAP_IO_STORE   0x00000002 /* store entire output to determine length for transport */
 
#define SOAP_IO_CHUNK   0x00000003 /* use HTTP chunked transfer AND buffer packets */
 
#define SOAP_IO_UDP   0x00000004 /* TCP or UDP */
 
#define SOAP_IO_LENGTH   0x00000008 /* calc message length (internal) */
 
#define SOAP_IO_KEEPALIVE   0x00000010 /* keep connection alive */
 
#define SOAP_ENC   0x00000FFF /* IO and ENC mask */
 
#define SOAP_ENC_LATIN   0x00000020 /* in: accept iso-8859-1 */
 
#define SOAP_ENC_XML   0x00000040 /* out: plain XML encoding, no HTTP header */
 
#define SOAP_ENC_DIME   0x00000080
 
#define SOAP_ENC_MIME   0x00000100
 
#define SOAP_ENC_MTOM   0x00000200
 
#define SOAP_ENC_ZLIB   0x00000400
 
#define SOAP_ENC_SSL   0x00000800
 
#define SOAP_XML_STRICT   0x00001000 /* in: strict validation */
 
#define SOAP_XML_INDENT   0x00002000 /* out: emit indented XML */
 
#define SOAP_XML_IGNORENS   0x00004000 /* in: ignore namespaces */
 
#define SOAP_XML_DEFAULTNS   0x00008000 /* out: emit xmlns="..." */
 
#define SOAP_XML_CANONICAL   0x00010000 /* out: excC14N canonical XML */
 
#define SOAP_XML_TREE   0x00020000 /* in/out: XML tree (no id/ref) */
 
#define SOAP_XML_NIL   0x00040000 /* out: NULLs as xsi:nil */
 
#define SOAP_XML_NOTYPE   0x00080000 /* out: do not add xsi:type */
 
#define SOAP_DOM_TREE   0x00100000 /* see DOM manual */
 
#define SOAP_DOM_NODE   0x00200000
 
#define SOAP_DOM_ASIS   0x00400000
 
#define SOAP_C_NOIOB   0x01000000 /* don't fault on array index out of bounds (just ignore) */
 
#define SOAP_C_UTFSTRING   0x02000000 /* (de)serialize strings with UTF8 content */
 
#define SOAP_C_MBSTRING   0x04000000 /* (de)serialize strings with multi-byte content */
 
#define SOAP_C_NILSTRING   0x08000000 /* serialize empty strings as nil (omitted) */
 
#define SOAP_XML_DOM   0x10000000 /* enable internal DOM */
 
#define SOAP_XML_GRAPH   0x20000000 /* force id-ref XML graph */
 
#define SOAP_MIME_POSTCHECK   0x40000000 /* MIME flag (internal) */
 
#define SOAP_SEC_WSUID   0x80000000 /* Add Body wsu:Id */
 
#define SOAP_IO_DEFAULT   SOAP_IO_FLUSH
 
#define SOAP_SSL_NO_AUTHENTICATION   0x00 /* for testing purposes */
 
#define SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION   0x01 /* client requires server to authenticate */
 
#define SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION   0x02 /* server requires client to authenticate */
 
#define SOAP_SSL_SKIP_HOST_CHECK   0x04 /* client does not check the common name of the host in certificate */
 
#define SOAP_SSL_ALLOW_EXPIRED_CERTIFICATE   0x08 /* client does not check the expiration date of the host certificate */
 
#define SOAP_SSL_NO_DEFAULT_CA_PATH   0x10 /* don't use default_verify_paths */
 
#define SOAP_SSL_RSA   0x20 /* use RSA */
 
#define SOAP_SSLv3   0x40 /* SSL v3 only */
 
#define SOAP_TLSv1   0x80 /* TLS v1 only */
 
#define SOAP_SSLv3_TLSv1   0x00 /* SSL v3 and TLS v1 support by default (no SSL v1/v2) */
 
#define SOAP_SSL_CLIENT   0x100 /* client context */
 
#define SOAP_SSL_DEFAULT   (SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION | SOAP_SSLv3_TLSv1)
 
#define SOAP_NONE   0
 
#define SOAP_INIT   1
 
#define SOAP_COPY   2
 
#define soap_check_state(soap)   (!(soap) || ((soap)->state != SOAP_INIT && (soap)->state != SOAP_COPY))
 
#define SOAP_BEGIN   0
 
#define SOAP_IN_ENVELOPE   2
 
#define SOAP_IN_HEADER   3
 
#define SOAP_END_HEADER   4
 
#define SOAP_NO_BODY   5
 
#define SOAP_IN_BODY   6
 
#define SOAP_END_BODY   7
 
#define SOAP_END_ENVELOPE   8
 
#define SOAP_END   9
 
#define SOAP_SEC_BEGIN   1
 
#define SOAP_SEC_SIGN   2
 
#define SOAP_SEC_DECRYPT   3
 
#define SOAP_MALLOC(soap, size)   malloc(size)
 
#define SOAP_FREE(soap, ptr)   free(ptr)
 
#define SOAP_NOTHROW   (std::nothrow)
 
#define SOAP_NEW(type)   new SOAP_NOTHROW (type)
 
#define SOAP_NEW_ARRAY(type, n)   new SOAP_NOTHROW type[n]
 
#define SOAP_PLACEMENT_NEW(buf, type)   new (buf) (type)
 
#define SOAP_NEW_COPY(clas)   new SOAP_NOTHROW clas
 
#define SOAP_DELETE(obj)   delete obj
 
#define SOAP_DELETE_ARRAY(obj)   delete[] obj
 
#define DBGLOG(DBGFILE, CMD)
 
#define DBGMSG(DBGFILE, MSG, LEN)
 
#define DBGFUN(FNAME)
 
#define DBGFUN1(FNAME, FMT, ARG)
 
#define DBGFUN2(FNAME, FMT1, ARG1, FMT2, ARG2)
 
#define DBGFUN3(FNAME, FMT1, ARG1, FMT2, ARG2, FMT3, ARG3)
 
#define DBGHEX(DBGFILE, MSG, LEN)
 
#define SOAP_STD_API
 
#define soap_get0(soap)   (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx])
 
#define soap_get1(soap)   (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++])
 
#define SOAP_XSTRINGIFY(s)   SOAP_STRINGIFY(s)
 
#define SOAP_STRINGIFY(s)   #s
 
#define soap_versioning_paste(name, ext)   name##_LIBRARY_VERSION_REQUIRED_##ext
 
#define soap_versioning_ext(name, ext)   soap_versioning_paste(name, ext)
 
#define soap_versioning(name)   soap_versioning_ext(name, GSOAP_VERSION)
 
#define soap_init(soap)   soap_init1(soap, SOAP_IO_DEFAULT)
 
#define soap_init1(soap, mode)   soap_init2(soap, mode, mode)
 
#define soap_init2(soap, imode, omode)   soap_versioning(soap_init)(soap, imode, omode)
 
#define soap_new()   soap_new1(SOAP_IO_DEFAULT)
 
#define soap_new1(mode)   soap_new2(mode, mode)
 
#define soap_new2(imode, omode)   soap_versioning(soap_new)(imode, omode)
 
#define soap_revget1(soap)   ((soap)->bufidx--)
 
#define soap_unget(soap, c)   ((soap)->ahead = c)
 
#define soap_register_plugin(soap, plugin)   soap_register_plugin_arg(soap, plugin, NULL)
 
#define soap_mode(soap, n)   ((soap)->mode = (soap)->imode = (soap)->omode = (n))
 
#define soap_imode(soap, n)   ((soap)->imode = (n))
 
#define soap_omode(soap, n)   ((soap)->omode = (n))
 
#define soap_set_imode(soap, n)   ((soap)->imode |= (n))
 
#define soap_clr_imode(soap, n)   ((soap)->imode &= ~(n))
 
#define soap_set_omode(soap, n)   ((soap)->omode |= (n))
 
#define soap_clr_omode(soap, n)   ((soap)->omode &= ~(n))
 
#define soap_set_mode(soap, n)   ((soap)->imode |= (n), (soap)->omode |= (n))
 
#define soap_clr_mode(soap, n)   ((soap)->imode &= ~(n), (soap)->omode &= ~(n))
 
#define soap_destroy(soap)   soap_delete((soap), NULL)
 
#define soap_strrchr(s, t)   strrchr(s, t)
 
#define soap_strtol(s, t, b)   strtol(s, t, b)
 
#define soap_strtoul(s, t, b)   strtoul(s, t, b)
 
#define soap_strtoll   strtoll
 
#define soap_strtoull   strtoull
 
#define soap_random   rand()
 

Typedefs

typedef soap_int32 soap_status
 
typedef soap_int32 soap_mode
 
typedef soap_int32 soap_wchar
 
typedef void soap_walker (struct soap *, void *, int, const char *, const char *)
 

Enumerations

enum  soap_mime_encoding {
  SOAP_MIME_NONE, SOAP_MIME_7BIT, SOAP_MIME_8BIT, SOAP_MIME_BINARY,
  SOAP_MIME_QUOTED_PRINTABLE, SOAP_MIME_BASE64, SOAP_MIME_IETF_TOKEN, SOAP_MIME_X_TOKEN
}
 

Functions

SOAP_FMAC1 struct
soap_multipart *SOAP_FMAC2 
soap_next_multipart (struct soap_multipart *)
 
SOAP_FMAC1 struct
soap_dom_element *SOAP_FMAC2 
soap_dom_next_element (struct soap_dom_element *elt)
 
SOAP_FMAC1 struct
soap_dom_attribute *SOAP_FMAC2 
soap_dom_next_attribute (struct soap_dom_attribute *att)
 
SOAP_FMAC5 int SOAP_FMAC6 soap_serve (struct soap *soap)
 
SOAP_FMAC5 int SOAP_FMAC6 soap_serve_request (struct soap *soap)
 
SOAP_FMAC3 void SOAP_FMAC4 soap_header (struct soap *)
 
SOAP_FMAC3 void SOAP_FMAC4 soap_fault (struct soap *)
 
SOAP_FMAC3 const char **SOAP_FMAC4 soap_faultcode (struct soap *)
 
SOAP_FMAC3 const char **SOAP_FMAC4 soap_faultsubcode (struct soap *)
 
SOAP_FMAC3 const char **SOAP_FMAC4 soap_faultstring (struct soap *)
 
SOAP_FMAC3 const char **SOAP_FMAC4 soap_faultdetail (struct soap *)
 
SOAP_FMAC3 const char *SOAP_FMAC4 soap_check_faultsubcode (struct soap *)
 
SOAP_FMAC3 const char *SOAP_FMAC4 soap_check_faultdetail (struct soap *)
 
SOAP_FMAC3 void SOAP_FMAC4 soap_serializefault (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getheader (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_putheader (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getfault (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_putfault (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_ssl_init (void)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_poll (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_connect_command (struct soap *, int, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_connect (struct soap *, const char *, const char *)
 
SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_bind (struct soap *, const char *, int, int)
 
SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_accept (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_accept (struct soap *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_ssl_error (struct soap *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_server_context (struct soap *soap, unsigned short flags, const char *keyfile, const char *password, const char *cafile, const char *capath, const char *dhfile, const char *randfile, const char *sid)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_client_context (struct soap *soap, unsigned short flags, const char *keyfile, const char *password, const char *cafile, const char *capath, const char *randfile)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_puthttphdr (struct soap *, int status, size_t count)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_get_header_attribute (struct soap *, const char *, const char *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_decode_key (char *, size_t, const char *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_decode_val (char *, size_t, const char *)
 
SOAP_FMAC1 size_t SOAP_FMAC2 soap_hash (const char *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_endpoint (struct soap *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_flush_raw (struct soap *, const char *, size_t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_flush (struct soap *)
 
SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_get (struct soap *)
 
SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getchar (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_tag_cmp (const char *, const char *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_fault (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault (struct soap *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault_subcode (struct soap *, const char *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault (struct soap *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault_subcode (struct soap *, const char *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_set_sender_error (struct soap *, const char *, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_set_receiver_error (struct soap *, const char *, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_send_raw (struct soap *, const char *, size_t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_recv_raw (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_recv (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_send (struct soap *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_send2 (struct soap *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_send3 (struct soap *, const char *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_pututf8 (struct soap *, unsigned long)
 
SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getutf8 (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_putbase64 (struct soap *, const unsigned char *, int)
 
SOAP_FMAC1 unsigned char
*SOAP_FMAC2 
soap_getbase64 (struct soap *, int *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_puthex (struct soap *, const unsigned char *, int)
 
SOAP_FMAC1 unsigned char
*SOAP_FMAC2 
soap_gethex (struct soap *, int *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_xop_forward (struct soap *, unsigned char **, int *, char **, char **, char **)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_dime_forward (struct soap *, unsigned char **, int *, char **, char **, char **)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup_id (struct soap *, void *p, int t, struct soap_plist **)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup (struct soap *, const void *p, int t, struct soap_plist **)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_enter (struct soap *, const void *p, const struct soap_array *a, int n, int t, struct soap_plist **)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup (struct soap *, const void *p, const struct soap_array *a, int n, int t, struct soap_plist **)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_embed (struct soap *soap, const void *p, const struct soap_array *a, int n, const char *tag, int type)
 
SOAP_FMAC1 struct soap_ilist
*SOAP_FMAC2 
soap_lookup (struct soap *, const char *)
 
SOAP_FMAC1 struct soap_ilist
*SOAP_FMAC2 
soap_enter (struct soap *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_resolve (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_embedded (struct soap *, const void *p, int t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_reference (struct soap *, const void *p, int t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference (struct soap *, const void *p, const struct soap_array *a, int n, int t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_embedded_id (struct soap *, int id, const void *p, int t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_is_embedded (struct soap *, struct soap_plist *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_is_single (struct soap *, struct soap_plist *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_embedded (struct soap *, struct soap_plist *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_begin_count (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_end_count (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_begin_send (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_end_send (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_end_send_flush (struct soap *)
 
SOAP_FMAC1 const struct
soap_code_map *SOAP_FMAC2 
soap_code (const struct soap_code_map *, const char *)
 
SOAP_FMAC1 long SOAP_FMAC2 soap_code_int (const struct soap_code_map *, const char *, long)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_code_str (const struct soap_code_map *, long)
 
SOAP_FMAC1 long SOAP_FMAC2 soap_code_bits (const struct soap_code_map *, const char *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_code_list (struct soap *, const struct soap_code_map *, long)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getline (struct soap *, char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_begin_serve (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_end_recv (struct soap *)
 
SOAP_FMAC1 void *SOAP_FMAC2 soap_malloc (struct soap *, size_t)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_dealloc (struct soap *, void *)
 
SOAP_FMAC1 struct soap_clist
*SOAP_FMAC2 
soap_link (struct soap *, void *, int, int, int(*fdelete)(struct soap_clist *))
 
SOAP_FMAC1 int SOAP_FMAC2 soap_unlink (struct soap *, const void *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_free_temp (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_del (struct soap *)
 
SOAP_FMAC1 void *SOAP_FMAC2 soap_track_malloc (struct soap *, const char *, int, size_t)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_track_free (struct soap *, const char *, int, void *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_lookup_type (struct soap *, const char *id)
 
SOAP_FMAC1 void *SOAP_FMAC2 soap_id_lookup (struct soap *, const char *id, void **p, int t, size_t n, unsigned int k)
 
SOAP_FMAC1 void *SOAP_FMAC2 soap_id_forward (struct soap *, const char *id, void *p, size_t len, int st, int tt, size_t n, unsigned int k, void(*fcopy)(struct soap *, int, int, void *, size_t, const void *, size_t))
 
SOAP_FMAC1 void *SOAP_FMAC2 soap_id_enter (struct soap *, const char *id, void *p, int t, size_t n, unsigned int k, const char *type, const char *arrayType, void *(*finstantiate)(struct soap *, int, const char *, const char *, size_t *))
 
SOAP_FMAC1 void SOAP_FMAC2 soap_fcopy (struct soap *soap, int st, int tt, void *p, size_t, const void *q, size_t n)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_size (const int *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getoffsets (const char *, const int *, int *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getsize (const char *, const char *, int *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getsizes (const char *, int *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getposition (const char *, int *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_putsize (struct soap *, const char *, int)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_putsizesoffsets (struct soap *, const char *, const int *, const int *, int)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_putsizes (struct soap *, const char *, const int *, int)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_putoffset (struct soap *, int)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_putoffsets (struct soap *, const int *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_closesock (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_force_closesock (struct soap *)
 
SOAP_FMAC1 struct soap
*SOAP_FMAC2 soap_versioning() 
soap_new (soap_mode, soap_mode)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_free (struct soap *)
 
SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy (const struct soap *)
 
SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy_context (struct soap *, const struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_copy_stream (struct soap *, struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_free_stream (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2
soap_versioning() 
soap_init (struct soap *, soap_mode, soap_mode)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_initialize (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_done (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_cleanup (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_begin (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_end (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_delete (struct soap *, void *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_delegate_deletion (struct soap *, struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_recv_logfile (struct soap *, const char *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_sent_logfile (struct soap *, const char *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_test_logfile (struct soap *, const char *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_close_logfiles (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_open_logfile (struct soap *, int)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_value (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag (struct soap *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_match_array (struct soap *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element (struct soap *, const char *, int, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_out (struct soap *, const char *tag, int id, const char *type)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_array_begin_out (struct soap *, const char *tag, int id, const char *type, const char *offset)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_ref (struct soap *, const char *tag, int id, int href)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_href (struct soap *, const char *tag, int id, const char *ref, const char *val)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_null (struct soap *, const char *tag, int id, const char *type)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_nil (struct soap *, const char *tag)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_id (struct soap *, const char *tag, int id, const void *p, const struct soap_array *a, int d, const char *type, int n)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_result (struct soap *, const char *tag)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_check_result (struct soap *, const char *tag)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_out (struct soap *, const char *tag)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_start_end_out (struct soap *, const char *tag)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_attribute (struct soap *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_in (struct soap *, const char *tag, int nillable, const char *type)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_in (struct soap *, const char *tag)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_peek_element (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_retry (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_revert (struct soap *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_strdup (struct soap *, const char *)
 
SOAP_FMAC1 wchar_t *SOAP_FMAC2 soap_wstrdup (struct soap *, const wchar_t *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_tagsearch (const char *big, const char *little)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_string_out (struct soap *, const char *s, int flag)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_string_in (struct soap *, int, long, long)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wstring_out (struct soap *, const wchar_t *s, int flag)
 
SOAP_FMAC1 wchar_t *SOAP_FMAC2 soap_wstring_in (struct soap *, int, long, long)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_match_namespace (struct soap *, const char *, const char *, size_t n1, size_t n2)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_version (struct soap *, short)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_set_namespaces (struct soap *, const struct Namespace *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_local_namespaces (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_pop_namespace (struct soap *)
 
SOAP_FMAC1 struct soap_nlist
*SOAP_FMAC2 
soap_push_namespace (struct soap *, const char *, const char *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_current_namespace (struct soap *soap, const char *tag)
 
SOAP_FMAC1 struct soap_nlist
*SOAP_FMAC2 
soap_lookup_ns (struct soap *soap, const char *tag, size_t n)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_store_lab (struct soap *, const char *, size_t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_append_lab (struct soap *, const char *, size_t)
 
SOAP_FMAC1 struct soap_blist
*SOAP_FMAC2 
soap_new_block (struct soap *)
 
SOAP_FMAC1 void *SOAP_FMAC2 soap_push_block (struct soap *, struct soap_blist *, size_t)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_pop_block (struct soap *, struct soap_blist *)
 
SOAP_FMAC1 size_t SOAP_FMAC2 soap_size_block (struct soap *, struct soap_blist *, size_t)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_first_block (struct soap *, struct soap_blist *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_next_block (struct soap *, struct soap_blist *)
 
SOAP_FMAC1 size_t SOAP_FMAC2 soap_block_size (struct soap *, struct soap_blist *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_save_block (struct soap *, struct soap_blist *, char *, int)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_end_block (struct soap *, struct soap_blist *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_update_pointers (struct soap *soap, char *start, char *end, char *p1, char *p2)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_out (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_out (struct soap *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_get_http_body (struct soap *, size_t *len)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_in (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_out (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_out (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_in (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_response (struct soap *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_send_empty_response (struct soap *, int status)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_recv_empty_response (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_recv_fault (struct soap *, int check)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault (struct soap *, FILE *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault_location (struct soap *, FILE *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_sprint_fault (struct soap *, char *, size_t)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2byte (struct soap *, const char *, char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2short (struct soap *, const char *, short *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2int (struct soap *, const char *, int *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2long (struct soap *, const char *, long *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2LONG64 (struct soap *, const char *, LONG64 *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2float (struct soap *, const char *, float *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2double (struct soap *, const char *, double *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedByte (struct soap *, const char *, unsigned char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedShort (struct soap *, const char *, unsigned short *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedInt (struct soap *, const char *, unsigned int *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedLong (struct soap *, const char *, unsigned long *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2ULONG64 (struct soap *, const char *, ULONG64 *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2string (struct soap *, const char *, char **, long minlen, long maxlen)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2QName (struct soap *, const char *, char **, long minlen, long maxlen)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2wchar (struct soap *, const char *, wchar_t **, long minlen, long maxlen)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_s2dateTime (struct soap *, const char *, time_t *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_s2base64 (struct soap *, const unsigned char *, char *, int)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_s2hex (struct soap *, const unsigned char *, char *, int)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_byte2s (struct soap *, char)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_short2s (struct soap *, short)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_int2s (struct soap *, int)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_long2s (struct soap *, long)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_LONG642s (struct soap *, LONG64)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_float2s (struct soap *, float)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_double2s (struct soap *, double)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_unsignedByte2s (struct soap *, unsigned char)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_unsignedShort2s (struct soap *, unsigned short)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_unsignedInt2s (struct soap *, unsigned int)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_unsignedLong2s (struct soap *, unsigned long)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_ULONG642s (struct soap *, ULONG64)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_QName2s (struct soap *, const char *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_wchar2s (struct soap *, const wchar_t *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_dateTime2s (struct soap *, time_t)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_base642s (struct soap *, const char *, char *, size_t, int *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_hex2s (struct soap *, const char *, char *, size_t, int *)
 
SOAP_FMAC1 int *SOAP_FMAC2 soap_inint (struct soap *, const char *tag, int *p, const char *, int)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_inbyte (struct soap *, const char *tag, char *p, const char *, int)
 
SOAP_FMAC1 long *SOAP_FMAC2 soap_inlong (struct soap *, const char *tag, long *p, const char *, int)
 
SOAP_FMAC1 LONG64 *SOAP_FMAC2 soap_inLONG64 (struct soap *, const char *tag, LONG64 *p, const char *, int)
 
SOAP_FMAC1 short *SOAP_FMAC2 soap_inshort (struct soap *, const char *tag, short *p, const char *, int)
 
SOAP_FMAC1 float *SOAP_FMAC2 soap_infloat (struct soap *, const char *tag, float *p, const char *, int)
 
SOAP_FMAC1 double *SOAP_FMAC2 soap_indouble (struct soap *, const char *tag, double *p, const char *, int)
 
SOAP_FMAC1 unsigned char
*SOAP_FMAC2 
soap_inunsignedByte (struct soap *, const char *tag, unsigned char *p, const char *, int)
 
SOAP_FMAC1 unsigned short
*SOAP_FMAC2 
soap_inunsignedShort (struct soap *, const char *tag, unsigned short *p, const char *, int)
 
SOAP_FMAC1 unsigned int *SOAP_FMAC2 soap_inunsignedInt (struct soap *, const char *tag, unsigned int *p, const char *, int)
 
SOAP_FMAC1 unsigned long
*SOAP_FMAC2 
soap_inunsignedLong (struct soap *, const char *tag, unsigned long *p, const char *, int)
 
SOAP_FMAC1 ULONG64 *SOAP_FMAC2 soap_inULONG64 (struct soap *, const char *tag, ULONG64 *p, const char *, int)
 
SOAP_FMAC1 char **SOAP_FMAC2 soap_instring (struct soap *, const char *tag, char **p, const char *, int, int, long, long)
 
SOAP_FMAC1 char **SOAP_FMAC2 soap_inliteral (struct soap *, const char *tag, char **p)
 
SOAP_FMAC1 time_t *SOAP_FMAC2 soap_indateTime (struct soap *, const char *tag, time_t *p, const char *, int)
 
SOAP_FMAC1 time_t SOAP_FMAC2 soap_timegm (struct tm *)
 
SOAP_FMAC1 wchar_t **SOAP_FMAC2 soap_inwstring (struct soap *, const char *tag, wchar_t **p, const char *, int, long, long)
 
SOAP_FMAC1 wchar_t **SOAP_FMAC2 soap_inwliteral (struct soap *, const char *tag, wchar_t **p)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outbyte (struct soap *, const char *tag, int id, const char *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outshort (struct soap *, const char *tag, int id, const short *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outint (struct soap *, const char *tag, int id, const int *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outlong (struct soap *, const char *tag, int id, const long *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outLONG64 (struct soap *, const char *tag, int id, const LONG64 *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outfloat (struct soap *, const char *tag, int id, const float *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outdouble (struct soap *, const char *tag, int id, const double *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedByte (struct soap *, const char *tag, int id, const unsigned char *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedShort (struct soap *, const char *tag, int id, const unsigned short *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedInt (struct soap *, const char *tag, int id, const unsigned int *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedLong (struct soap *, const char *tag, int id, const unsigned long *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outULONG64 (struct soap *, const char *tag, int id, const ULONG64 *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outstring (struct soap *, const char *tag, int id, char *const *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outliteral (struct soap *, const char *tag, char *const *p, const char *type)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outdateTime (struct soap *, const char *tag, int id, const time_t *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outwstring (struct soap *, const char *tag, int id, wchar_t *const *p, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_outwliteral (struct soap *, const char *tag, wchar_t *const *p, const char *type)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_attachment (struct soap *, const char *, int, const void *, const struct soap_array *, const char *, const char *, const char *, int, const char *, int)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_move (struct soap *, size_t)
 
SOAP_FMAC1 size_t SOAP_FMAC2 soap_tell (struct soap *)
 
SOAP_FMAC1 char *SOAP_FMAC2 soap_dime_option (struct soap *, unsigned short, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getdimehdr (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getdime (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_putdimehdr (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_putdime (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getmimehdr (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_getmime (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_putmimehdr (struct soap *, struct soap_multipart *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_putmime (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_dime (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_set_mime (struct soap *, const char *boundary, const char *start)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_clr_dime (struct soap *)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_clr_mime (struct soap *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_set_dime_attachment (struct soap *, char *ptr, size_t size, const char *type, const char *id, unsigned short optype, const char *option)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_set_mime_attachment (struct soap *, char *ptr, size_t size, enum soap_mime_encoding encoding, const char *type, const char *id, const char *location, const char *description)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_post_check_mime_attachments (struct soap *soap)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_check_mime_attachments (struct soap *soap)
 
SOAP_FMAC1 struct
soap_multipart *SOAP_FMAC2 
soap_get_mime_attachment (struct soap *soap, void *handle)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_match_cid (struct soap *, const char *, const char *)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_register_plugin_arg (struct soap *, int(*fcreate)(struct soap *, struct soap_plugin *, void *), void *)
 
SOAP_FMAC1 void *SOAP_FMAC2 soap_lookup_plugin (struct soap *, const char *)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_attr_value (struct soap *soap, const char *name, int flag)
 
SOAP_FMAC1 int SOAP_FMAC2 soap_set_attr (struct soap *soap, const char *name, const char *value, int flag)
 
SOAP_FMAC1 void SOAP_FMAC2 soap_clr_attr (struct soap *soap)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_url (struct soap *soap, const char *, const char *)
 
SOAP_FMAC1 size_t SOAP_FMAC2 soap_encode_url (const char *, char *, size_t)
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_encode_url_string (struct soap *, const char *)
 

Variables

const union soap_double_nan soap_double_nan
 
const char soap_base64o []
 
const char soap_base64i []
 
SOAP_NMAC struct Namespace namespaces []
 

Macro Definition Documentation

#define _REENTRANT
#define _THREAD_SAFE
#define DBGFUN (   FNAME)
#define DBGFUN1 (   FNAME,
  FMT,
  ARG 
)
#define DBGFUN2 (   FNAME,
  FMT1,
  ARG1,
  FMT2,
  ARG2 
)
#define DBGFUN3 (   FNAME,
  FMT1,
  ARG1,
  FMT2,
  ARG2,
  FMT3,
  ARG3 
)
#define DBGHEX (   DBGFILE,
  MSG,
  LEN 
)
#define DBGLOG (   DBGFILE,
  CMD 
)
#define DBGMSG (   DBGFILE,
  MSG,
  LEN 
)
#define DBL_NAN   (soap_double_nan.dv)
#define DBL_NINFTY   (-DBL_PINFTY)
#define DBL_PINFTY   (1.7976931348623157e+308)
#define FD_SETSIZE   (1024)
#define FLT_NAN   (soap_double_nan.fv)
#define FLT_NINFTY   (-FLT_PINFTY)
#define FLT_PINFTY   (3.40282347e+38F)
#define GSOAP_VERSION   20817
#define HAVE_FTIME
#define HAVE_GETHOSTBYNAME_R
#define HAVE_GMTIME_R
#define HAVE_LOCALTIME_R
#define HAVE_RAND_R
#define HAVE_SNPRINTF
#define HAVE_SSCANF
#define HAVE_STRERROR_R
#define HAVE_STRRCHR
#define HAVE_STRTOD
#define HAVE_STRTOL
#define HAVE_STRTOUL
#define HAVE_SYS_TIMEB_H
#define LONG64   long long
#define SOAP_BEGIN   0
#define SOAP_BLKLEN   (256) /* to collect long strings and XML attributes */
#define SOAP_BUFLEN   (65536) /* buffer length for socket packets, also used by gethostbyname_r and UDP messages, so don't make this too small */
#define SOAP_C_MBSTRING   0x04000000 /* (de)serialize strings with multi-byte content */
#define SOAP_C_NILSTRING   0x08000000 /* serialize empty strings as nil (omitted) */
#define SOAP_C_NOIOB   0x01000000 /* don't fault on array index out of bounds (just ignore) */
#define SOAP_C_UTFSTRING   0x02000000 /* (de)serialize strings with UTF8 content */
#define soap_check_state (   soap)    (!(soap) || ((soap)->state != SOAP_INIT && (soap)->state != SOAP_COPY))
#define SOAP_CHK_EOF   (soap->error ? soap->error : SOAP_EOF)
#define SOAP_CLI_FAULT   1
#define soap_closesocket (   n)    close(n)
#define soap_clr_imode (   soap,
 
)    ((soap)->imode &= ~(n))
#define soap_clr_mode (   soap,
 
)    ((soap)->imode &= ~(n), (soap)->omode &= ~(n))
#define soap_clr_omode (   soap,
 
)    ((soap)->omode &= ~(n))
#define SOAP_CMAC
#define SOAP_CONNECT   2005 /* CONNECT request */
#define SOAP_COPY   2
#define SOAP_DATAENCODINGUNKNOWN   41
#define SOAP_DEL   2004 /* DELETE request */
#define SOAP_DEL_METHOD   17 /* deprecated */
#define SOAP_DELETE (   obj)    delete obj
#define SOAP_DELETE_ARRAY (   obj)    delete[] obj
#define soap_destroy (   soap)    soap_delete((soap), NULL)
#define SOAP_DIME_ABSURI   0x20
#define SOAP_DIME_CF   0x01
#define SOAP_DIME_END   35
#define SOAP_DIME_ERROR   32
#define SOAP_DIME_HREF   33
#define SOAP_DIME_MB   0x04
#define SOAP_DIME_ME   0x02
#define SOAP_DIME_MEDIA   0x10
#define SOAP_DIME_MISMATCH   34
#define SOAP_DIME_VERSION   0x08 /* DIME version 1 */
#define SOAP_DOM_ASIS   0x00400000
#define SOAP_DOM_NODE   0x00200000
#define SOAP_DOM_TREE   0x00100000 /* see DOM manual */
#define SOAP_DUPLICATE_ID   24
#define SOAP_EADDRINUSE   EADDRINUSE
#define SOAP_EAGAIN   EAGAIN
#define SOAP_EINPROGRESS   EINPROGRESS
#define SOAP_EINTR   EINTR
#define SOAP_ENC   0x00000FFF /* IO and ENC mask */
#define SOAP_ENC_DIME   0x00000080
#define SOAP_ENC_LATIN   0x00000020 /* in: accept iso-8859-1 */
#define SOAP_ENC_MIME   0x00000100
#define SOAP_ENC_MTOM   0x00000200
#define SOAP_ENC_SSL   0x00000800
#define SOAP_ENC_XML   0x00000040 /* out: plain XML encoding, no HTTP header */
#define SOAP_ENC_ZLIB   0x00000400
#define SOAP_END   9
#define SOAP_END_BODY   7
#define SOAP_END_ENVELOPE   8
#define SOAP_END_HEADER   4
#define SOAP_EOF   EOF
#define SOAP_EOM   20
#define SOAP_ERANGE   ERANGE
#define SOAP_ERR   EOF
#define soap_errno   errno
#define SOAP_EWOULDBLOCK   EWOULDBLOCK
#define SOAP_FATAL_ERROR   11
#define SOAP_FAULT   12
#define SOAP_FD_EXCEEDED   46
#define SOAP_FILE   1003 /* Custom file-based response */
#define SOAP_FMAC1
#define SOAP_FMAC2
#define SOAP_FMAC3
#define SOAP_FMAC3S   SOAP_FMAC3
#define SOAP_FMAC4
#define SOAP_FMAC4S   SOAP_FMAC4
#define SOAP_FMAC5
#define SOAP_FMAC6
#define SOAP_FORM   1001 /* Request (form) data is present, no HTTP response */
#define SOAP_FREE (   soap,
  ptr 
)    free(ptr)
#define SOAP_GAI_STRERROR   gai_strerror
#define SOAP_GET   2002 /* GET request */
#define soap_get0 (   soap)    (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx])
#define soap_get1 (   soap)    (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++])
#define SOAP_GET_METHOD   15
#define SOAP_HDR   22
#define SOAP_HDRLEN   (8192) /* maximum length of HTTP header line (must be >4096 to read cookies) */
#define SOAP_HEAD_METHOD   18 /* deprecated */
#define SOAP_HREF   26
#define SOAP_HTML   1002 /* Custom HTML response */
#define SOAP_HTTP_ERROR   29
#define soap_http_error_check (   e)    ((e) == SOAP_HTTP_ERROR || (e) == SOAP_NO_DATA || ((e) >= SOAP_GET_METHOD && (e) <= SOAP_HTTP_METHOD) || ((e) >= 100 && (e) < 600))
#define SOAP_HTTP_METHOD   19
#define SOAP_IDHASH   (1999) /* prime size of hash table for parsed id/ref */
#define soap_imode (   soap,
 
)    ((soap)->imode = (n))
#define SOAP_IN_BODY   6
#define SOAP_IN_ENVELOPE   2
#define SOAP_IN_HEADER   3
#define SOAP_INDEX_RECV   (0)
#define SOAP_INDEX_SENT   (1)
#define SOAP_INDEX_TEST   (2)
#define SOAP_INIT   1
#define soap_init (   soap)    soap_init1(soap, SOAP_IO_DEFAULT)
#define soap_init1 (   soap,
  mode 
)    soap_init2(soap, mode, mode)
#define soap_init2 (   soap,
  imode,
  omode 
)    soap_versioning(soap_init)(soap, imode, omode)
#define soap_int32   int32_t
#define SOAP_INVALID_SOCKET   ((SOAP_SOCKET)-1)
#define SOAP_IO   0x00000003 /* IO mask */
#define SOAP_IO_BUFFER   0x00000001 /* buffer output in packets of size SOAP_BUFLEN */
#define SOAP_IO_CHUNK   0x00000003 /* use HTTP chunked transfer AND buffer packets */
#define SOAP_IO_DEFAULT   SOAP_IO_FLUSH
#define SOAP_IO_FLUSH   0x00000000 /* flush output immediately, no buffering */
#define SOAP_IO_KEEPALIVE   0x00000010 /* keep connection alive */
#define SOAP_IO_LENGTH   0x00000008 /* calc message length (internal) */
#define SOAP_IO_STORE   0x00000002 /* store entire output to determine length for transport */
#define SOAP_IO_UDP   0x00000004 /* TCP or UDP */
#define SOAP_IOB   7
#define soap_isinf (   n)    (!soap_isnan(n) && soap_isnan((n) - (n)))
#define soap_isnan (   n)    ((n) != (n))
#define soap_isninfd (   n)    ((n) < 0 && soap_isinf(n))
#define soap_isninff (   n)    ((n) < 0 && soap_isinf(n))
#define soap_ispinfd (   n)    ((n) > 0 && soap_isinf(n))
#define soap_ispinff (   n)    ((n) > 0 && soap_isinf(n))
#define SOAP_LABLEN   (256) /* initial look-aside buffer length */
#define SOAP_LENGTH   45
#define SOAP_LONG_FORMAT   "%lld" /* printf format for 64 bit ints */
#define SOAP_MALLOC (   soap,
  size 
)    malloc(size)
#define SOAP_MAXARRAYSIZE   (1000000)
#define SOAP_MAXDIMESIZE   (8388608) /* 8 MB */
#define SOAP_MAXDIMS   (16) /* maximum array dimensions (array nestings) must be less than 64 to protect soap->tmpbuf */
#define SOAP_MAXEINTR   (10)
#define SOAP_MAXKEEPALIVE   (100)
#define SOAP_MAXLOGS   (3) /* max number of debug logs per struct soap environment */
#define SOAP_MIME_END   38
#define SOAP_MIME_ERROR   36
#define SOAP_MIME_HREF   37
#define SOAP_MIME_POSTCHECK   0x40000000 /* MIME flag (internal) */
#define SOAP_MISSING_ID   25
#define soap_mode (   soap,
 
)    ((soap)->mode = (soap)->imode = (soap)->omode = (n))
#define SOAP_MOE   21
#define SOAP_MUSTUNDERSTAND   8
#define SOAP_NAMESPACE   9
#define SOAP_NEW (   type)    new SOAP_NOTHROW (type)
#define soap_new ( )    soap_new1(SOAP_IO_DEFAULT)
#define soap_new1 (   mode)    soap_new2(mode, mode)
#define soap_new2 (   imode,
  omode 
)    soap_versioning(soap_new)(imode, omode)
#define SOAP_NEW_ARRAY (   type,
 
)    new SOAP_NOTHROW type[n]
#define SOAP_NEW_COPY (   clas)    new SOAP_NOTHROW clas
#define SOAP_NMAC
#define SOAP_NO_BODY   5
#define SOAP_NO_DATA   14
#define SOAP_NO_METHOD   13
#define SOAP_NO_TAG   6
#define SOAP_NONE   0
#define SOAP_NOTHROW   (std::nothrow)
#define SOAP_NTLM_ERROR   48
#define SOAP_NULL   23
#define SOAP_OCCURS   44
#define SOAP_OK   0
#define soap_omode (   soap,
 
)    ((soap)->omode = (n))
#define SOAP_PLACEMENT_NEW (   buf,
  type 
)    new (buf) (type)
#define SOAP_PLUGIN_ERROR   40
#define SOAP_POST   2000 /* POST request */
#define SOAP_POST_FILE   2001 /* Custom file-based POST request */
#define SOAP_PROHIBITED   43
#define SOAP_PTRBLK   (32) /* block allocation for pointer hash table chains */
#define SOAP_PTRHASH   (4096) /* size of pointer analysis hash table (must be power of 2) */
#define SOAP_PURE_VIRTUAL
#define SOAP_PUT   2003 /* PUT request */
#define SOAP_PUT_METHOD   16
#define soap_random   rand()
#define soap_register_plugin (   soap,
  plugin 
)    soap_register_plugin_arg(soap, plugin, NULL)
#define SOAP_REQUIRED   42
#define soap_reset_errno   (errno = 0)
#define soap_revget1 (   soap)    ((soap)->bufidx--)
#define SOAP_SEC_BEGIN   1
#define SOAP_SEC_DECRYPT   3
#define SOAP_SEC_SIGN   2
#define SOAP_SEC_WSUID   0x80000000 /* Add Body wsu:Id */
#define soap_set_imode (   soap,
 
)    ((soap)->imode |= (n))
#define soap_set_mode (   soap,
 
)    ((soap)->imode |= (n), (soap)->omode |= (n))
#define soap_set_omode (   soap,
 
)    ((soap)->omode |= (n))
#define SOAP_SHUT_RDWR   2
#define SOAP_SHUT_WR   1
#define soap_snprintf   snprintf
#define soap_soap_error_check (   e)    ((e) == SOAP_CLI_FAULT || (e) == SOAP_SVR_FAULT || (e) == SOAP_VERSIONMISMATCH || (e) == SOAP_MUSTUNDERSTAND || (e) == SOAP_FAULT || (e) == SOAP_NO_METHOD)
#define SOAP_SOCKET   int
#define soap_socket_errno (   s)    errno
#define SOAP_SOCKLEN_T   size_t
#define SOAP_SOURCE_STAMP (   str)
#define SOAP_SSL_ALLOW_EXPIRED_CERTIFICATE   0x08 /* client does not check the expiration date of the host certificate */
#define SOAP_SSL_CLIENT   0x100 /* client context */
#define SOAP_SSL_DEFAULT   (SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION | SOAP_SSLv3_TLSv1)
#define SOAP_SSL_ERROR   30
#define soap_ssl_error_check (   e)    ((e) == SOAP_SSL_ERROR)
#define SOAP_SSL_NO_AUTHENTICATION   0x00 /* for testing purposes */
#define SOAP_SSL_NO_DEFAULT_CA_PATH   0x10 /* don't use default_verify_paths */
#define SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION   0x02 /* server requires client to authenticate */
#define SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION   0x01 /* client requires server to authenticate */
#define SOAP_SSL_RSA   0x20 /* use RSA */
#define SOAP_SSL_SKIP_HOST_CHECK   0x04 /* client does not check the common name of the host in certificate */
#define SOAP_SSLv3   0x40 /* SSL v3 only */
#define SOAP_SSLv3_TLSv1   0x00 /* SSL v3 and TLS v1 support by default (no SSL v1/v2) */
#define SOAP_STD_API
#define SOAP_STOP   1000 /* No HTTP response */
#define SOAP_STRCMP   strcmp /* case sensitive XML element/attribute names */
#define SOAP_STRINGIFY (   s)    #s
#define soap_strrchr (   s,
 
)    strrchr(s, t)
#define soap_strtol (   s,
  t,
 
)    strtol(s, t, b)
#define soap_strtoll   strtoll
#define soap_strtoul (   s,
  t,
 
)    strtoul(s, t, b)
#define soap_strtoull   strtoull
#define SOAP_SVR_FAULT   2
#define SOAP_SYNTAX_ERROR   5
#define SOAP_TAG_MISMATCH   3
#define SOAP_TAGLEN   (1024) /* maximum length of XML element tag/attribute name or host/path name + 1 */
#define SOAP_TCP_ERROR   28
#define soap_tcp_error_check (   e)    ((e) == SOAP_EOF || (e) == SOAP_TCP_ERROR)
#define SOAP_TLSv1   0x80 /* TLS v1 only */
#define SOAP_TYPE   4
#define SOAP_UDP_ERROR   27
#define SOAP_ULONG_FORMAT   "%llu" /* printf format for unsigned 64 bit ints */
#define soap_unget (   soap,
 
)    ((soap)->ahead = c)
#define SOAP_USER_ERROR   10
#define SOAP_UTF_ERROR   47
#define soap_valid_socket (   n)    ((n) != SOAP_INVALID_SOCKET)
#define soap_versioning (   name)    soap_versioning_ext(name, GSOAP_VERSION)
#define soap_versioning_ext (   name,
  ext 
)    soap_versioning_paste(name, ext)
#define soap_versioning_paste (   name,
  ext 
)    name##_LIBRARY_VERSION_REQUIRED_##ext
#define SOAP_VERSIONMISMATCH   39
#define SOAP_WINSOCKINT   size_t
#define SOAP_XML_CANONICAL   0x00010000 /* out: excC14N canonical XML */
#define SOAP_XML_DEFAULTNS   0x00008000 /* out: emit xmlns="..." */
#define SOAP_XML_DOM   0x10000000 /* enable internal DOM */
#define soap_xml_error_check (   e)    ((e) == SOAP_TAG_MISMATCH || (e) == SOAP_NO_TAG || (e) == SOAP_SYNTAX_ERROR || (e) == SOAP_NAMESPACE || (e) == SOAP_DUPLICATE_ID || (e) == SOAP_MISSING_ID || (e) == SOAP_REQUIRED || (e) == SOAP_PROHIBITED || (e) == SOAP_OCCURS || (e) == SOAP_LENGTH || (e) == SOAP_NULL || (e) == SOAP_HREF)
#define SOAP_XML_GRAPH   0x20000000 /* force id-ref XML graph */
#define SOAP_XML_IGNORENS   0x00004000 /* in: ignore namespaces */
#define SOAP_XML_INDENT   0x00002000 /* out: emit indented XML */
#define SOAP_XML_NIL   0x00040000 /* out: NULLs as xsi:nil */
#define SOAP_XML_NOTYPE   0x00080000 /* out: do not add xsi:type */
#define SOAP_XML_STRICT   0x00001000 /* in: strict validation */
#define SOAP_XML_TREE   0x00020000 /* in/out: XML tree (no id/ref) */
#define SOAP_XSTRINGIFY (   s)    SOAP_STRINGIFY(s)
#define SOAP_ZLIB_DEFLATE   0x01
#define SOAP_ZLIB_ERROR   31
#define soap_zlib_error_check (   e)    ((e) == SOAP_ZLIB_ERROR)
#define SOAP_ZLIB_GZIP   0x02
#define SOAP_ZLIB_INFLATE   0x02
#define SOAP_ZLIB_NONE   0x00
#define STDSOAP_H
#define ULONG64   unsigned LONG64
#define WITH_CDATA
#define WITH_FAST

Typedef Documentation

typedef void soap_walker(struct soap *, void *, int, const char *, const char *)

Enumeration Type Documentation

Enumerator
SOAP_MIME_NONE 
SOAP_MIME_7BIT 
SOAP_MIME_8BIT 
SOAP_MIME_BINARY 
SOAP_MIME_QUOTED_PRINTABLE 
SOAP_MIME_BASE64 
SOAP_MIME_IETF_TOKEN 
SOAP_MIME_X_TOKEN 
1769 { SOAP_MIME_NONE,
1777 };
Definition: stdsoap2.h:1772
Definition: stdsoap2.h:1773
Definition: stdsoap2.h:1776
Definition: stdsoap2.h:1769
Definition: stdsoap2.h:1774
Definition: stdsoap2.h:1771
Definition: stdsoap2.h:1775
Definition: stdsoap2.h:1770

Function Documentation

SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_accept ( struct soap )
4972 { int n = (int)sizeof(soap->peer);
4973  register int err;
4974 #ifndef WITH_LEAN
4975 #ifndef WIN32
4976  int len = SOAP_BUFLEN;
4977 #else
4978  int len = SOAP_BUFLEN + 1; /* speeds up windows xfer */
4979 #endif
4980  int set = 1;
4981 #endif
4982  soap->error = SOAP_OK;
4983  memset((void*)&soap->peer, 0, sizeof(soap->peer));
4985  soap->errmode = 0;
4986  soap->keep_alive = 0;
4987  if (!soap_valid_socket(soap->master))
4988  { soap->errnum = 0;
4989  soap_set_receiver_error(soap, tcp_error(soap), "no master socket in soap_accept()", SOAP_TCP_ERROR);
4990  return SOAP_INVALID_SOCKET;
4991  }
4992 #ifndef WITH_LEAN
4993  if ((soap->omode & SOAP_IO_UDP))
4994  return soap->socket = soap->master;
4995 #endif
4996  for (;;)
4998  { for (;;)
4999  { register int r;
5001  if (r > 0)
5002  break;
5003  if (!r && soap->accept_timeout)
5004  { soap_set_receiver_error(soap, "Timeout", "accept failed in soap_accept()", SOAP_TCP_ERROR);
5005  return SOAP_INVALID_SOCKET;
5006  }
5007  if (r < 0)
5008  { r = soap->errnum;
5009  if (r != SOAP_EINTR)
5010  { soap_closesock(soap);
5011  soap_set_sender_error(soap, tcp_error(soap), "accept failed in soap_accept()", SOAP_TCP_ERROR);
5012  return SOAP_INVALID_SOCKET;
5013  }
5014  }
5015  }
5016  }
5017  if (soap->accept_timeout)
5019  else
5020  SOAP_SOCKBLOCK(soap->master)
5021  soap->socket = soap->faccept(soap, soap->master, (struct sockaddr*)&soap->peer, &n);
5022  soap->peerlen = (size_t)n;
5023  if (soap_valid_socket(soap->socket))
5024  {
5025 #ifdef WITH_IPV6
5026  unsigned int ip1, ip2, ip3, ip4;
5027  char port[16];
5028  getnameinfo((struct sockaddr*)&soap->peer, n, soap->host, sizeof(soap->host), port, 16, NI_NUMERICHOST | NI_NUMERICSERV);
5029  sscanf(soap->host, "%u.%u.%u.%u", &ip1, &ip2, &ip3, &ip4);
5030  soap->ip = (unsigned long)ip1 << 24 | (unsigned long)ip2 << 16 | (unsigned long)ip3 << 8 | (unsigned long)ip4;
5031  soap->port = soap_strtol(port, NULL, 10);
5032 #else
5033  soap->ip = ntohl(soap->peer.sin_addr.s_addr);
5034 #ifdef HAVE_SNPRINTF
5035  soap_snprintf(soap->host, sizeof(soap->host), "%u.%u.%u.%u", (int)(soap->ip>>24)&0xFF, (int)(soap->ip>>16)&0xFF, (int)(soap->ip>>8)&0xFF, (int)soap->ip&0xFF);
5036 #else
5037  sprintf(soap->host, "%u.%u.%u.%u", (int)(soap->ip>>24)&0xFF, (int)(soap->ip>>16)&0xFF, (int)(soap->ip>>8)&0xFF, (int)soap->ip&0xFF);
5038 #endif
5039  soap->port = (int)ntohs(soap->peer.sin_port); /* does not return port number on some systems */
5040 #endif
5041  DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Accept socket=%d at port=%d from IP='%s'\n", soap->socket, soap->port, soap->host));
5042 #ifndef WITH_LEAN
5043  if (soap->accept_flags == SO_LINGER)
5044  { struct linger linger;
5045  memset((void*)&linger, 0, sizeof(linger));
5046  linger.l_onoff = 1;
5047  linger.l_linger = soap->linger_time;
5048  if (setsockopt(soap->socket, SOL_SOCKET, SO_LINGER, (char*)&linger, sizeof(struct linger)))
5049  { soap->errnum = soap_socket_errno(soap->socket);
5050  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_LINGER failed in soap_accept()", SOAP_TCP_ERROR);
5051  soap_closesock(soap);
5052  return SOAP_INVALID_SOCKET;
5053  }
5054  }
5055  else if (soap->accept_flags && setsockopt(soap->socket, SOL_SOCKET, soap->accept_flags, (char*)&set, sizeof(int)))
5056  { soap->errnum = soap_socket_errno(soap->socket);
5057  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt failed in soap_accept()", SOAP_TCP_ERROR);
5058  soap_closesock(soap);
5059  return SOAP_INVALID_SOCKET;
5060  }
5061  if (((soap->imode | soap->omode) & SOAP_IO_KEEPALIVE) && setsockopt(soap->socket, SOL_SOCKET, SO_KEEPALIVE, (char*)&set, sizeof(int)))
5062  { soap->errnum = soap_socket_errno(soap->socket);
5063  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_KEEPALIVE failed in soap_accept()", SOAP_TCP_ERROR);
5064  soap_closesock(soap);
5065  return SOAP_INVALID_SOCKET;
5066  }
5067  if (setsockopt(soap->socket, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int)))
5068  { soap->errnum = soap_socket_errno(soap->socket);
5069  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_SNDBUF failed in soap_accept()", SOAP_TCP_ERROR);
5070  soap_closesock(soap);
5071  return SOAP_INVALID_SOCKET;
5072  }
5073  if (setsockopt(soap->socket, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int)))
5074  { soap->errnum = soap_socket_errno(soap->socket);
5075  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_RCVBUF failed in soap_accept()", SOAP_TCP_ERROR);
5076  soap_closesock(soap);
5077  return SOAP_INVALID_SOCKET;
5078  }
5079 #ifdef TCP_NODELAY
5080  if (setsockopt(soap->socket, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int)))
5081  { soap->errnum = soap_socket_errno(soap->socket);
5082  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt TCP_NODELAY failed in soap_accept()", SOAP_TCP_ERROR);
5083  soap_closesock(soap);
5084  return SOAP_INVALID_SOCKET;
5085  }
5086 #endif
5087 #endif
5088  soap->keep_alive = (((soap->imode | soap->omode) & SOAP_IO_KEEPALIVE) != 0);
5089  if (soap->send_timeout || soap->recv_timeout)
5090  SOAP_SOCKNONBLOCK(soap->socket)
5091  else
5092  SOAP_SOCKBLOCK(soap->socket)
5093  return soap->socket;
5094  }
5095  err = soap_socket_errno(soap->socket);
5096  if (err != 0 && err != SOAP_EINTR && err != SOAP_EAGAIN && err != SOAP_EWOULDBLOCK)
5097  { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Accept failed from %s\n", soap->host));
5098  soap->errnum = err;
5099  soap_set_receiver_error(soap, tcp_error(soap), "accept failed in soap_accept()", SOAP_TCP_ERROR);
5100  soap_closesock(soap);
5101  return SOAP_INVALID_SOCKET;
5102  }
5103  }
5104 }
#define soap_socket_errno(s)
Definition: stdsoap2.h:1002
short keep_alive
Definition: stdsoap2.h:2099
int error
Definition: stdsoap2.h:2112
#define SOAP_SOCKNONBLOCK(fd)
Definition: stdsoap2.cpp:286
#define soap_valid_socket(n)
Definition: stdsoap2.h:859
SOAP_SOCKET master
Definition: stdsoap2.h:2037
Definition: stdsoap2.h:1933
#define soap_strtol(s, t, b)
Definition: stdsoap2.h:2304
#define SOAP_EWOULDBLOCK
Definition: stdsoap2.h:984
#define SOAP_BUFLEN
Definition: stdsoap2.h:1013
#define SOAP_IO_UDP
Definition: stdsoap2.h:1348
int accept_timeout
Definition: stdsoap2.h:1950
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
arena_t NULL
Definition: jemalloc_internal.h:624
#define SOAP_EAGAIN
Definition: stdsoap2.h:978
int errmode
Definition: stdsoap2.h:2113
soap_mode omode
Definition: stdsoap2.h:1938
std::string sprintf(CStringRef format, ArgList args)
Definition: format.h:3096
int send_timeout
Definition: stdsoap2.h:1948
static int tcp_select(struct soap *, SOAP_SOCKET, int, int)
Definition: stdsoap2.cpp:4501
static const char * tcp_error(struct soap *)
Definition: stdsoap2.cpp:3718
#define SOAP_SOCKBLOCK(fd)
Definition: stdsoap2.cpp:285
struct sockaddr_in peer
Definition: stdsoap2.h:2141
SOAP_FMAC1 int SOAP_FMAC2 soap_set_sender_error(struct soap *soap, const char *faultstring, const char *faultdetailXML, int soaperror)
Definition: stdsoap2.cpp:16704
int errnum
Definition: stdsoap2.h:2114
#define SOAP_TCP_SELECT_ALL
Definition: stdsoap2.cpp:243
int recv_timeout
Definition: stdsoap2.h:1947
#define SOAP_INVALID_SOCKET
Definition: stdsoap2.h:858
#define SOAP_OK
Definition: stdsoap2.h:1245
SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap *soap)
Definition: stdsoap2.cpp:5113
#define soap_snprintf
Definition: stdsoap2.h:1235
#define SOAP_TCP_ERROR
Definition: stdsoap2.h:1273
SOAP_SOCKET socket
Definition: stdsoap2.h:2038
#define SOAP_IO_KEEPALIVE
Definition: stdsoap2.h:1350
SOAP_FMAC1 int SOAP_FMAC2 soap_set_receiver_error(struct soap *soap, const char *faultstring, const char *faultdetailXML, int soaperror)
Definition: stdsoap2.cpp:16714
#define SOAP_EINTR
Definition: stdsoap2.h:977

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_append_lab ( struct soap ,
const char *  ,
size_t   
)
10593 { if (soap->labidx + n >= soap->lablen)
10594  { register char *t = soap->labbuf;
10595  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Enlarging look-aside buffer to append data, size=%lu\n", (unsigned long)soap->lablen));
10596  if (soap->lablen == 0)
10597  soap->lablen = SOAP_LABLEN;
10598  while (soap->labidx + n >= soap->lablen)
10599  soap->lablen <<= 1;
10600  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "New look-aside buffer size=%lu\n", (unsigned long)soap->lablen));
10601  soap->labbuf = (char*)SOAP_MALLOC(soap, soap->lablen);
10602  if (!soap->labbuf)
10603  { if (t)
10604  SOAP_FREE(soap, t);
10605  return soap->error = SOAP_EOM;
10606  }
10607  if (t)
10608  { memcpy(soap->labbuf, t, soap->labidx);
10609  SOAP_FREE(soap, t);
10610  }
10611  }
10612  if (s)
10613  { memcpy(soap->labbuf + soap->labidx, s, n);
10614  soap->labidx += n;
10615  }
10616  return SOAP_OK;
10617 }
size_t lablen
Definition: stdsoap2.h:2064
#define SOAP_LABLEN
Definition: stdsoap2.h:1019
int error
Definition: stdsoap2.h:2112
Definition: stdsoap2.h:1933
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
#define SOAP_MALLOC(soap, size)
Definition: stdsoap2.h:1463
size_t labidx
Definition: stdsoap2.h:2065
char * labbuf
Definition: stdsoap2.h:2063
#define SOAP_OK
Definition: stdsoap2.h:1245
#define SOAP_EOM
Definition: stdsoap2.h:1265
#define SOAP_FREE(soap, ptr)
Definition: stdsoap2.h:1467

+ Here is the caller graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_array_begin_out ( struct soap ,
const char *  tag,
int  id,
const char *  type,
const char *  offset 
)
9891 { if (!type || !*type)
9892  return soap_element_begin_out(soap, tag, id, NULL);
9893  if (soap_element(soap, tag, id, "SOAP-ENC:Array"))
9894  return soap->error;
9895  if (soap->version == 2)
9896  { const char *s;
9897  s = soap_strrchr(type, '[');
9898  if (s && (size_t)(s - type) < sizeof(soap->tmpbuf))
9899  { strncpy(soap->tmpbuf, type, s - type);
9900  soap->tmpbuf[s - type] = '\0';
9901  if (soap_attribute(soap, "SOAP-ENC:itemType", soap->tmpbuf))
9902  return soap->error;
9903  s++;
9904  if (*s)
9905  { strncpy(soap->tmpbuf, s, sizeof(soap->tmpbuf));
9906  soap->tmpbuf[sizeof(soap->tmpbuf) - 1] = '\0';
9907  soap->tmpbuf[strlen(soap->tmpbuf) - 1] = '\0';
9908  if (soap_attribute(soap, "SOAP-ENC:arraySize", soap->tmpbuf))
9909  return soap->error;
9910  }
9911  }
9912  }
9913  else
9914  { if (offset && soap_attribute(soap, "SOAP-ENC:offset", offset))
9915  return soap->error;
9916  if (soap_attribute(soap, "SOAP-ENC:arrayType", type))
9917  return soap->error;
9918  }
9919 #ifndef WITH_LEAN
9920  if ((soap->mode & SOAP_XML_CANONICAL))
9921  soap_utilize_ns(soap, type);
9922 #endif
9924 }
char tmpbuf[1024]
Definition: stdsoap2.h:2068
static void soap_utilize_ns(struct soap *soap, const char *tag)
Definition: stdsoap2.cpp:9501
SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_out(struct soap *soap, const char *tag, int id, const char *type)
Definition: stdsoap2.cpp:9757
int error
Definition: stdsoap2.h:2112
soap_mode mode
Definition: stdsoap2.h:1936
Definition: stdsoap2.h:1933
short version
Definition: stdsoap2.h:1935
arena_t NULL
Definition: jemalloc_internal.h:624
#define SOAP_XML_CANONICAL
Definition: stdsoap2.h:1365
SOAP_FMAC1 int SOAP_FMAC2 soap_element_start_end_out(struct soap *soap, const char *tag)
Definition: stdsoap2.cpp:9932
#define soap_strrchr(s, t)
Definition: stdsoap2.h:2298
SOAP_FMAC1 int SOAP_FMAC2 soap_attribute(struct soap *soap, const char *name, const char *value)
Definition: stdsoap2.cpp:10217
SOAP_FMAC1 int SOAP_FMAC2 soap_element(struct soap *soap, const char *tag, int id, const char *type)
Definition: stdsoap2.cpp:9529

+ Here is the call graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup ( struct soap ,
const void *  p,
const struct soap_array a,
int  n,
int  t,
struct soap_plist **   
)
7089 { register struct soap_plist *pp;
7090  *ppp = NULL;
7091  if (!p || !a->__ptr)
7092  return 0;
7093  for (pp = soap->pht[soap_hash_ptr(a->__ptr)]; pp; pp = pp->next)
7094  { if (pp->type == type && pp->array && pp->array->__ptr == a->__ptr)
7095  { register int i;
7096  for (i = 0; i < n; i++)
7097  if (((const int*)&pp->array->__size)[i] != ((const int*)&a->__size)[i])
7098  break;
7099  if (i == n)
7100  { *ppp = pp;
7101  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Array lookup location=%p type=%d id=%d\n", a->__ptr, type, pp->id));
7102  return pp->id;
7103  }
7104  }
7105  }
7106  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Array lookup location=%p type=%d: not found\n", a->__ptr, type));
7107  return 0;
7108 }
struct soap_plist * next
Definition: stdsoap2.h:1644
Definition: stdsoap2.h:1933
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
const struct soap_array * array
Definition: stdsoap2.h:1646
arena_t NULL
Definition: jemalloc_internal.h:624
struct soap_plist * pht[SOAP_PTRHASH]
Definition: stdsoap2.h:1964
Definition: stdsoap2.h:1643
int id
Definition: stdsoap2.h:1648
int __size
Definition: stdsoap2.h:1639
#define soap_hash_ptr(p)
Definition: stdsoap2.cpp:106
void * __ptr
Definition: stdsoap2.h:1638
int type
Definition: stdsoap2.h:1647

+ Here is the caller graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference ( struct soap ,
const void *  p,
const struct soap_array a,
int  n,
int  t 
)
7362 { struct soap_plist *pp;
7364  return 1;
7365  if (soap_array_pointer_lookup(soap, p, a, n, t, &pp))
7366  { if (pp->mark1 == 0)
7367  { pp->mark1 = 2;
7368  pp->mark2 = 2;
7369  }
7370  }
7371  else if (!soap_pointer_enter(soap, p, a, n, t, &pp))
7372  return 1;
7373  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Array reference %p ptr=%p dim=%d type=%d (%d %d)\n", p, a->__ptr, n, t, (int)pp->mark1, (int)pp->mark2));
7374  return pp->mark1;
7375 }
#define SOAP_XML_GRAPH
Definition: stdsoap2.h:1380
Definition: stdsoap2.h:1933
#define SOAP_ENC_MTOM
Definition: stdsoap2.h:1357
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
char mark1
Definition: stdsoap2.h:1649
SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup(struct soap *soap, const void *p, const struct soap_array *a, int n, int type, struct soap_plist **ppp)
Definition: stdsoap2.cpp:7088
SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_enter(struct soap *soap, const void *p, const struct soap_array *a, int n, int type, struct soap_plist **ppp)
Definition: stdsoap2.cpp:7049
#define SOAP_XML_TREE
Definition: stdsoap2.h:1366
soap_mode omode
Definition: stdsoap2.h:1938
Definition: stdsoap2.h:1643
void * __ptr
Definition: stdsoap2.h:1638
#define SOAP_ENC_DIME
Definition: stdsoap2.h:1355
char mark2
Definition: stdsoap2.h:1650
#define SOAP_ENC_MIME
Definition: stdsoap2.h:1356
const char * encodingStyle
Definition: stdsoap2.h:1944

+ Here is the call graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_attachment ( struct soap ,
const char *  ,
int  ,
const void *  ,
const struct soap_array ,
const char *  ,
const char *  ,
const char *  ,
int  ,
const char *  ,
int   
)
7484 {
7485 #ifndef WITH_NOIDREF
7486  struct soap_plist *pp;
7487  int i;
7488  if (!p || !a->__ptr || (!aid && !atype))
7489  return soap_element_id(soap, tag, id, p, a, n, type, t);
7490  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Attachment tag='%s' id='%s' (%d) type='%s'\n", tag, aid ? aid : SOAP_STR_EOS, id, atype ? atype : SOAP_STR_EOS));
7491  i = soap_array_pointer_lookup(soap, p, a, n, t, &pp);
7492  if (!i)
7493  { i = soap_pointer_enter(soap, p, a, n, t, &pp);
7494  if (!i)
7495  { soap->error = SOAP_EOM;
7496  return -1;
7497  }
7498  }
7499  if (id <= 0)
7500  id = i;
7501  if (!aid)
7502  {
7503 #ifdef HAVE_SNPRINTF
7505 #else
7507 #endif
7508  aid = soap_strdup(soap, soap->tmpbuf);
7509  }
7510  /* Add MTOM xop:Include element when necessary */
7511  /* TODO: this code to be obsoleted with new import/xop.h conventions */
7512  if ((soap->mode & SOAP_ENC_MTOM) && strcmp(tag, "xop:Include"))
7513  { if (soap_element_begin_out(soap, tag, 0, type)
7514  || soap_element_href(soap, "xop:Include", 0, "xmlns:xop=\"http://www.w3.org/2004/08/xop/include\" href", aid)
7515  || soap_element_end_out(soap, tag))
7516  return soap->error;
7517  }
7518  else if (soap_element_href(soap, tag, 0, "href", aid))
7519  return soap->error;
7520  if (soap->mode & SOAP_IO_LENGTH)
7521  { if (pp->mark1 != 3)
7522  { struct soap_multipart *content;
7523  if (soap->mode & SOAP_ENC_MTOM)
7524  content = soap_new_multipart(soap, &soap->mime.first, &soap->mime.last, (char*)a->__ptr, a->__size);
7525  else
7526  content = soap_new_multipart(soap, &soap->dime.first, &soap->dime.last, (char*)a->__ptr, a->__size);
7527  if (!content)
7528  { soap->error = SOAP_EOM;
7529  return -1;
7530  }
7531  if (!strncmp(aid, "cid:", 4)) /* RFC 2111 */
7532  { if (soap->mode & SOAP_ENC_MTOM)
7533  { char *s = (char*)soap_malloc(soap, strlen(aid) - 1);
7534  if (s)
7535  { *s = '<';
7536  strcpy(s + 1, aid + 4);
7537  strcat(s, ">");
7538  content->id = s;
7539  }
7540  }
7541  else
7542  content->id = aid + 4;
7543  }
7544  else
7545  content->id = aid;
7546  content->type = atype;
7547  content->options = aoptions;
7548  content->encoding = SOAP_MIME_BINARY;
7549  pp->mark1 = 3;
7550  }
7551  }
7552  else
7553  pp->mark2 = 3;
7554 #endif
7555  return -1;
7556 }
SOAP_FMAC1 char *SOAP_FMAC2 soap_strdup(struct soap *soap, const char *s)
Definition: stdsoap2.cpp:2122
char tmpbuf[1024]
Definition: stdsoap2.h:2068
const char * id
Definition: stdsoap2.h:1786
Definition: stdsoap2.h:1772
SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_out(struct soap *soap, const char *tag, int id, const char *type)
Definition: stdsoap2.cpp:9757
const char * dime_id_format
Definition: stdsoap2.h:1941
int error
Definition: stdsoap2.h:2112
struct soap_multipart * first
Definition: stdsoap2.h:1756
soap_mode mode
Definition: stdsoap2.h:1936
struct soap_multipart * first
Definition: stdsoap2.h:1741
Definition: stdsoap2.h:1933
#define SOAP_ENC_MTOM
Definition: stdsoap2.h:1357
static struct soap_multipart * soap_new_multipart(struct soap *, struct soap_multipart **, struct soap_multipart **, char *, size_t)
Definition: stdsoap2.cpp:14832
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
char mark1
Definition: stdsoap2.h:1649
SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup(struct soap *soap, const void *p, const struct soap_array *a, int n, int type, struct soap_plist **ppp)
Definition: stdsoap2.cpp:7088
enum soap_mime_encoding encoding
Definition: stdsoap2.h:1789
SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_enter(struct soap *soap, const void *p, const struct soap_array *a, int n, int type, struct soap_plist **ppp)
Definition: stdsoap2.cpp:7049
struct soap_dime dime
Definition: stdsoap2.h:2117
#define SOAP_IO_LENGTH
Definition: stdsoap2.h:1349
Definition: stdsoap2.h:1782
std::string sprintf(CStringRef format, ArgList args)
Definition: format.h:3096
SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_out(struct soap *soap, const char *tag)
Definition: stdsoap2.cpp:10030
Definition: stdsoap2.h:1643
struct soap_multipart * last
Definition: stdsoap2.h:1741
SOAP_FMAC1 int SOAP_FMAC2 soap_element_href(struct soap *soap, const char *tag, int id, const char *ref, const char *val)
Definition: stdsoap2.cpp:10098
struct soap_multipart * last
Definition: stdsoap2.h:1756
#define SOAP_STR_EOS
Definition: stdsoap2.cpp:322
#define soap_snprintf
Definition: stdsoap2.h:1235
SOAP_FMAC1 int SOAP_FMAC2 soap_element_id(struct soap *soap, const char *tag, int id, const void *p, const struct soap_array *a, int n, const char *type, int t)
Definition: stdsoap2.cpp:10149
#define SOAP_EOM
Definition: stdsoap2.h:1265
const char * options
Definition: stdsoap2.h:1788
struct soap_mime mime
Definition: stdsoap2.h:2118
char mark2
Definition: stdsoap2.h:1650
const char * type
Definition: stdsoap2.h:1787
int type
Definition: stdsoap2.h:1647
SOAP_FMAC1 void *SOAP_FMAC2 soap_malloc(struct soap *soap, size_t n)
Definition: stdsoap2.cpp:7638

+ Here is the call graph for this function:

SOAP_FMAC1 const char* SOAP_FMAC2 soap_attr_value ( struct soap soap,
const char *  name,
int  flag 
)
10368 { register struct soap_attribute *tp;
10369  if (*name == '-')
10370  return SOAP_STR_EOS;
10371  for (tp = soap->attributes; tp; tp = tp->next)
10372  { if (tp->visible && !soap_match_tag(soap, tp->name, name))
10373  break;
10374  }
10375  if (tp)
10376  { if (flag == 2 && (soap->mode & SOAP_XML_STRICT))
10377  soap->error = SOAP_PROHIBITED;
10378  else
10379  return tp->value;
10380  }
10381  else if (flag == 1 && (soap->mode & SOAP_XML_STRICT))
10382  soap->error = SOAP_REQUIRED;
10383  else
10384  soap->error = SOAP_OK;
10385  return NULL;
10386 }
int error
Definition: stdsoap2.h:2112
soap_mode mode
Definition: stdsoap2.h:1936
short visible
Definition: stdsoap2.h:1686
SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag(struct soap *soap, const char *tag1, const char *tag2)
Definition: stdsoap2.cpp:2966
arena_t NULL
Definition: jemalloc_internal.h:624
struct soap_attribute * next
Definition: stdsoap2.h:1681
short flag
Definition: stdsoap2.h:1682
#define SOAP_XML_STRICT
Definition: stdsoap2.h:1361
Definition: stdsoap2.h:1680
struct soap_attribute * attributes
Definition: stdsoap2.h:2080
char name[1]
Definition: stdsoap2.h:1687
#define SOAP_PROHIBITED
Definition: stdsoap2.h:1288
#define SOAP_OK
Definition: stdsoap2.h:1245
#define SOAP_STR_EOS
Definition: stdsoap2.cpp:322
#define SOAP_REQUIRED
Definition: stdsoap2.h:1287
char * value
Definition: stdsoap2.h:1683

+ Here is the call graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_attribute ( struct soap ,
const char *  ,
const char *   
)
10218 {
10219  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Attribute '%s'='%s'\n", name, value));
10220 #ifdef WITH_DOM
10221  if ((soap->mode & SOAP_XML_DOM) && !(soap->mode & SOAP_XML_CANONICAL) && soap->dom)
10222  { register struct soap_dom_attribute *a = (struct soap_dom_attribute*)soap_malloc(soap, sizeof(struct soap_dom_attribute));
10223  if (!a)
10224  return soap->error;
10225  a->next = soap->dom->atts;
10226  a->nstr = NULL;
10227  a->name = soap_strdup(soap, name);
10228  a->data = soap_strdup(soap, value);
10229  a->wide = NULL;
10230  a->soap = soap;
10231  soap->dom->atts = a;
10232  return SOAP_OK;
10233  }
10234 #endif
10235 #ifndef WITH_LEAN
10236  if (soap->mode & SOAP_XML_CANONICAL)
10237  { /* push namespace */
10238  if (!strncmp(name, "xmlns", 5) && (name[5] == ':' || name[5] == '\0'))
10239  soap_push_ns(soap, name + 5 + (name[5] == ':'), value, 0);
10240  else if (soap_set_attr(soap, name, value, 1))
10241  return soap->error;
10242  }
10243  else
10244 #endif
10245  { if (soap_send(soap, " ") || soap_send(soap, name))
10246  return soap->error;
10247  if (value)
10248  if (soap_send_raw(soap, "=\"", 2)
10249  || soap_string_out(soap, value, 1)
10250  || soap_send_raw(soap, "\"", 1))
10251  return soap->error;
10252  }
10253  return SOAP_OK;
10254 }
SOAP_FMAC1 char *SOAP_FMAC2 soap_strdup(struct soap *soap, const char *s)
Definition: stdsoap2.cpp:2122
struct soap_dom_element * dom
Definition: stdsoap2.h:2116
int error
Definition: stdsoap2.h:2112
const char * nstr
Definition: stdsoap2.h:1833
soap_mode mode
Definition: stdsoap2.h:1936
SOAP_FMAC1 int SOAP_FMAC2 soap_send(struct soap *soap, const char *s)
Definition: stdsoap2.cpp:845
Definition: stdsoap2.h:1933
#define SOAP_XML_DOM
Definition: stdsoap2.h:1379
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
arena_t NULL
Definition: jemalloc_internal.h:624
SOAP_FMAC1 int SOAP_FMAC2 soap_send_raw(struct soap *soap, const char *s, size_t n)
Definition: stdsoap2.cpp:730
#define SOAP_XML_CANONICAL
Definition: stdsoap2.h:1365
wchar_t * wide
Definition: stdsoap2.h:1836
static struct soap_nlist * soap_push_ns(struct soap *soap, const char *id, const char *ns, short utilized)
Definition: stdsoap2.cpp:9457
struct soap_dom_attribute * next
Definition: stdsoap2.h:1832
char name[1]
Definition: stdsoap2.h:1687
#define SOAP_OK
Definition: stdsoap2.h:1245
SOAP_FMAC1 int SOAP_FMAC2 soap_string_out(struct soap *soap, const char *s, int flag)
Definition: stdsoap2.cpp:11066
char * name
Definition: stdsoap2.h:1834
Definition: stdsoap2.h:1831
char * data
Definition: stdsoap2.h:1835
struct soap_dom_attribute * atts
Definition: stdsoap2.h:1878
const FieldDescriptor value
Definition: descriptor.h:1522
SOAP_FMAC1 int SOAP_FMAC2 soap_set_attr(struct soap *soap, const char *name, const char *value, int flag)
Definition: stdsoap2.cpp:10394
SOAP_FMAC1 void *SOAP_FMAC2 soap_malloc(struct soap *soap, size_t n)
Definition: stdsoap2.cpp:7638
struct soap * soap
Definition: stdsoap2.h:1837

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 const char* SOAP_FMAC2 soap_base642s ( struct soap ,
const char *  ,
char *  ,
size_t  ,
int *   
)
15931 { register size_t i, j;
15932  register soap_wchar c;
15933  register unsigned long m;
15934  register const char *p;
15935  if (!s || !*s)
15936  { if (n)
15937  *n = 0;
15938  if (soap->error)
15939  return NULL;
15940  return SOAP_NON_NULL;
15941  }
15942  if (!t)
15943  { l = (strlen(s) + 3) / 4 * 3 + 1; /* make sure enough space for \0 */
15944  t = (char*)soap_malloc(soap, l);
15945  }
15946  if (!t)
15947  return NULL;
15948  p = t;
15949  if (n)
15950  *n = 0;
15951  for (i = 0; ; i += 3, l -= 3)
15952  { m = 0;
15953  j = 0;
15954  while (j < 4)
15955  { c = *s++;
15956  if (c == '=' || !c)
15957  { if (l >= j - 1)
15958  { switch (j)
15959  { case 2:
15960  *t++ = (char)((m >> 4) & 0xFF);
15961  i++;
15962  l--;
15963  break;
15964  case 3:
15965  *t++ = (char)((m >> 10) & 0xFF);
15966  *t++ = (char)((m >> 2) & 0xFF);
15967  i += 2;
15968  l -= 2;
15969  }
15970  }
15971  if (n)
15972  *n = (int)i;
15973  if (l)
15974  *t = '\0';
15975  return p;
15976  }
15977  c -= '+';
15978  if (c >= 0 && c <= 79)
15979  { int b = soap_base64i[c];
15980  if (b >= 64)
15981  { soap->error = SOAP_TYPE;
15982  return NULL;
15983  }
15984  m = (m << 6) + b;
15985  j++;
15986  }
15987  else if (!soap_blank(c + '+'))
15988  { soap->error = SOAP_TYPE;
15989  return NULL;
15990  }
15991  }
15992  if (l < 3)
15993  { if (n)
15994  *n = (int)i;
15995  if (l)
15996  *t = '\0';
15997  return p;
15998  }
15999  *t++ = (char)((m >> 16) & 0xFF);
16000  *t++ = (char)((m >> 8) & 0xFF);
16001  *t++ = (char)(m & 0xFF);
16002  }
16003 }
int error
Definition: stdsoap2.h:2112
Definition: stdsoap2.h:1933
soap_int32 soap_wchar
Definition: stdsoap2.h:1610
arena_t NULL
Definition: jemalloc_internal.h:624
#define SOAP_NON_NULL
Definition: stdsoap2.cpp:323
#define SOAP_TYPE
Definition: stdsoap2.h:1249
#define soap_blank(c)
Definition: stdsoap2.cpp:100
SOAP_FMAC1 void *SOAP_FMAC2 soap_malloc(struct soap *soap, size_t n)
Definition: stdsoap2.cpp:7638
const char soap_base64i[81]
Definition: stdsoap2.cpp:306

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 void SOAP_FMAC2 soap_begin ( struct soap )
9241 { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Reinitializing context\n"));
9242  if (!soap->keep_alive)
9243  { soap->buflen = 0;
9244  soap->bufidx = 0;
9245  }
9246  soap->null = 0;
9247  soap->position = 0;
9248  soap->encoding = 0;
9249  soap->mustUnderstand = 0;
9250  soap->mode = 0;
9251  soap->ns = 0;
9252  soap->part = SOAP_END;
9253  soap->event = 0;
9254  soap->evlev = 0;
9255  soap->alloced = 0;
9256  soap->count = 0;
9257  soap->length = 0;
9258  soap->cdata = 0;
9259  soap->error = SOAP_OK;
9260  soap->peeked = 0;
9261  soap->ahead = 0;
9262  soap->idnum = 0;
9263  soap->level = 0;
9264  soap->endpoint[0] = '\0';
9266 #ifndef WITH_LEANER
9267  soap->dime.chunksize = 0;
9268  soap->dime.buflen = 0;
9269 #endif
9271 }
short alloced
Definition: stdsoap2.h:2088
short keep_alive
Definition: stdsoap2.h:2099
size_t chunksize
Definition: stdsoap2.h:1733
int error
Definition: stdsoap2.h:2112
short part
Definition: stdsoap2.h:2085
soap_mode mode
Definition: stdsoap2.h:1936
Definition: stdsoap2.h:1933
short ns
Definition: stdsoap2.h:2084
unsigned int level
Definition: stdsoap2.h:2060
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
struct soap_dime dime
Definition: stdsoap2.h:2117
short peeked
Definition: stdsoap2.h:2089
unsigned int evlev
Definition: stdsoap2.h:2087
soap_wchar ahead
Definition: stdsoap2.h:2057
int position
Definition: stdsoap2.h:2078
char endpoint[SOAP_TAGLEN]
Definition: stdsoap2.h:2092
short encoding
Definition: stdsoap2.h:2081
short cdata
Definition: stdsoap2.h:2058
size_t bufidx
Definition: stdsoap2.h:2055
#define SOAP_END
Definition: stdsoap2.h:1427
short mustUnderstand
Definition: stdsoap2.h:2082
#define SOAP_OK
Definition: stdsoap2.h:1245
#define SOAP_STR_EOS
Definition: stdsoap2.cpp:322
int idnum
Definition: stdsoap2.h:1970
size_t length
Definition: stdsoap2.h:2062
SOAP_FMAC1 void SOAP_FMAC2 soap_free_temp(struct soap *soap)
Definition: stdsoap2.cpp:8495
size_t buflen
Definition: stdsoap2.h:1734
short null
Definition: stdsoap2.h:2083
size_t buflen
Definition: stdsoap2.h:2056
const char * encodingStyle
Definition: stdsoap2.h:1944
size_t count
Definition: stdsoap2.h:2061
short event
Definition: stdsoap2.h:2086

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_begin_count ( struct soap )
7118 { soap_free_ns(soap);
7119 #ifndef WITH_LEANER
7120  if ((soap->mode & SOAP_ENC_DIME) || (soap->omode & SOAP_ENC_DIME))
7122  else
7123 #endif
7124  { soap->mode = soap->omode;
7125  if ((soap->mode & SOAP_IO_UDP))
7126  soap->mode |= SOAP_ENC_XML;
7127  if ((soap->mode & SOAP_IO) == SOAP_IO_STORE
7128  || (((soap->mode & SOAP_IO) == SOAP_IO_CHUNK || (soap->mode & SOAP_ENC_XML))
7129 #ifndef WITH_LEANER
7130  && !soap->fpreparesend
7131 #endif
7132  ))
7133  soap->mode &= ~SOAP_IO_LENGTH;
7134  else
7135  soap->mode |= SOAP_IO_LENGTH;
7136  }
7137 #ifdef WITH_ZLIB
7138  if ((soap->mode & SOAP_ENC_ZLIB) && (soap->mode & SOAP_IO) == SOAP_IO_FLUSH)
7139  { if (!(soap->mode & SOAP_ENC_DIME))
7140  soap->mode &= ~SOAP_IO_LENGTH;
7141  if (soap->mode & SOAP_ENC_XML)
7142  soap->mode |= SOAP_IO_BUFFER;
7143  else
7144  soap->mode |= SOAP_IO_STORE;
7145  }
7146 #endif
7147 #ifndef WITH_LEANER
7148  if ((soap->mode & SOAP_ENC_MTOM) && (soap->mode & SOAP_ENC_DIME))
7149  soap->mode |= SOAP_ENC_MIME;
7150  else if (!(soap->mode & SOAP_ENC_MIME))
7151  soap->mode &= ~SOAP_ENC_MTOM;
7152  if (soap->mode & SOAP_ENC_MIME)
7154  soap->dime.list = soap->dime.last; /* keep track of last DIME attachment */
7155 #endif
7156  soap->count = 0;
7157  soap->ns = 0;
7158  soap->null = 0;
7159  soap->position = 0;
7160  soap->mustUnderstand = 0;
7161  soap->encoding = 0;
7162  soap->part = SOAP_BEGIN;
7163  soap->event = 0;
7164  soap->evlev = 0;
7165  soap->idnum = 0;
7168 #ifndef WITH_LEANER
7169  soap->dime.count = 0; /* count # of attachments */
7170  soap->dime.size = 0; /* accumulate total size of attachments */
7172  return soap->error;
7173 #endif
7174  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Begin count phase (socket=%d mode=0x%x count=%lu)\n", soap->socket, (unsigned int)soap->mode, (unsigned long)soap->count));
7175  return SOAP_OK;
7176 }
int error
Definition: stdsoap2.h:2112
short part
Definition: stdsoap2.h:2085
soap_mode mode
Definition: stdsoap2.h:1936
Definition: stdsoap2.h:1933
#define SOAP_ENC_MTOM
Definition: stdsoap2.h:1357
size_t size
Definition: stdsoap2.h:1732
#define SOAP_BEGIN
Definition: stdsoap2.h:1419
short ns
Definition: stdsoap2.h:2084
#define SOAP_IO_UDP
Definition: stdsoap2.h:1348
#define SOAP_IO_FLUSH
Definition: stdsoap2.h:1343
#define SOAP_IO
Definition: stdsoap2.h:1342
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
int(* fprepareinitsend)(struct soap *)
Definition: stdsoap2.h:2015
struct soap_multipart * list
Definition: stdsoap2.h:1740
struct soap_dime dime
Definition: stdsoap2.h:2117
SOAP_FMAC1 void SOAP_FMAC2 soap_clr_attr(struct soap *soap)
Definition: stdsoap2.cpp:10493
#define SOAP_IO_CHUNK
Definition: stdsoap2.h:1346
unsigned int evlev
Definition: stdsoap2.h:2087
#define SOAP_IO_LENGTH
Definition: stdsoap2.h:1349
int position
Definition: stdsoap2.h:2078
int(* fpreparesend)(struct soap *, const char *, size_t)
Definition: stdsoap2.h:2017
soap_mode omode
Definition: stdsoap2.h:1938
size_t count
Definition: stdsoap2.h:1731
short encoding
Definition: stdsoap2.h:2081
#define SOAP_IO_BUFFER
Definition: stdsoap2.h:1344
#define SOAP_ENC_ZLIB
Definition: stdsoap2.h:1358
struct soap_multipart * last
Definition: stdsoap2.h:1741
short mustUnderstand
Definition: stdsoap2.h:2082
#define SOAP_OK
Definition: stdsoap2.h:1245
int idnum
Definition: stdsoap2.h:1970
#define SOAP_IO_STORE
Definition: stdsoap2.h:1345
static void soap_select_mime_boundary(struct soap *)
Definition: stdsoap2.cpp:14912
#define SOAP_ENC_XML
Definition: stdsoap2.h:1354
SOAP_SOCKET socket
Definition: stdsoap2.h:2038
#define SOAP_ENC_DIME
Definition: stdsoap2.h:1355
SOAP_FMAC1 void SOAP_FMAC2 soap_set_local_namespaces(struct soap *soap)
Definition: stdsoap2.cpp:9381
#define SOAP_ENC_MIME
Definition: stdsoap2.h:1356
short null
Definition: stdsoap2.h:2083
static void soap_free_ns(struct soap *soap)
Definition: stdsoap2.cpp:8545
size_t count
Definition: stdsoap2.h:2061
short event
Definition: stdsoap2.h:2086

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv ( struct soap )
15045 { register soap_wchar c;
15046  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Initializing for input from socket=%d/fd=%d\n", soap->socket, soap->recvfd));
15047  soap->error = SOAP_OK;
15048  soap->filterstop = SOAP_OK;
15051  soap->version = 0; /* don't assume we're parsing SOAP content by default */
15052 #ifndef WITH_NOIDREF
15054 #endif
15055  if ((soap->imode & SOAP_IO) == SOAP_IO_CHUNK)
15056  soap->omode |= SOAP_IO_CHUNK;
15057  soap->imode &= ~(SOAP_IO | SOAP_ENC_MIME);
15058  soap->mode = soap->imode;
15059  if (!soap->keep_alive)
15060  { soap->buflen = 0;
15061  soap->bufidx = 0;
15062  }
15063  if (!(soap->mode & SOAP_IO_KEEPALIVE))
15064  soap->keep_alive = 0;
15065  soap->ahead = 0;
15066  soap->peeked = 0;
15067  soap->level = 0;
15068  soap->part = SOAP_BEGIN;
15069  soap->alloced = 0;
15070  soap->body = 1;
15071  soap->count = 0;
15072  soap->length = 0;
15073  soap->cdata = 0;
15074  *soap->endpoint = '\0';
15075  soap->action = NULL;
15076  soap->header = NULL;
15077  soap->fault = NULL;
15078  soap->status = 0;
15079  soap->fform = NULL;
15080 #ifndef WITH_LEANER
15081  soap->dom = NULL;
15082  soap->dime.chunksize = 0;
15083  soap->dime.buflen = 0;
15084  soap->dime.list = NULL;
15085  soap->dime.first = NULL;
15086  soap->dime.last = NULL;
15087  soap->mime.list = NULL;
15088  soap->mime.first = NULL;
15089  soap->mime.last = NULL;
15090  soap->mime.boundary = NULL;
15091  soap->mime.start = NULL;
15092 #endif
15093 #ifdef WIN32
15094 #ifndef UNDER_CE
15095 #ifndef WITH_FASTCGI
15096  if (!soap_valid_socket(soap->socket) && !soap->is) /* Set win32 stdout or soap->sendfd to BINARY, e.g. to support DIME */
15097 #ifdef __BORLANDC__
15098  setmode(soap->recvfd, _O_BINARY);
15099 #else
15100  _setmode(soap->recvfd, _O_BINARY);
15101 #endif
15102 #endif
15103 #endif
15104 #endif
15105 #ifdef WITH_ZLIB
15106  soap->mode &= ~SOAP_ENC_ZLIB;
15109  soap->d_stream->next_in = Z_NULL;
15110  soap->d_stream->avail_in = 0;
15111  soap->d_stream->next_out = (Byte*)soap->buf;
15112  soap->d_stream->avail_out = SOAP_BUFLEN;
15113  soap->z_ratio_in = 1.0;
15114 #endif
15115 #ifdef WITH_OPENSSL
15116  if (soap->ssl)
15117  ERR_clear_error();
15118 #endif
15119 #ifndef WITH_LEANER
15121  return soap->error;
15122 #endif
15123  c = soap_getchar(soap);
15124 #ifdef WITH_GZIP
15125  if (c == 0x1F)
15126  { if (soap_getgziphdr(soap))
15127  return soap->error;
15129  return soap->error = SOAP_ZLIB_ERROR;
15130  if (soap->z_dict)
15131  { if (inflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len) != Z_OK)
15132  return soap->error = SOAP_ZLIB_ERROR;
15133  }
15135  soap->mode |= SOAP_ENC_ZLIB;
15137  soap->z_crc = crc32(0L, NULL, 0);
15138  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "gzip initialized\n"));
15139  if (!soap->z_buf)
15140  soap->z_buf = (char*)SOAP_MALLOC(soap, SOAP_BUFLEN);
15141  memcpy(soap->z_buf, soap->buf, SOAP_BUFLEN);
15142  /* should not chunk over plain transport, so why bother to check? */
15143  /* if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK) */
15144  /* soap->z_buflen = soap->bufidx; */
15145  /* else */
15146  soap->d_stream->next_in = (Byte*)(soap->z_buf + soap->bufidx);
15147  soap->d_stream->avail_in = (unsigned int)(soap->buflen - soap->bufidx);
15148  soap->z_buflen = soap->buflen;
15149  soap->buflen = soap->bufidx;
15150  c = ' ';
15151  }
15152 #endif
15153  while (soap_blank(c))
15154  c = soap_getchar(soap);
15155 #ifndef WITH_LEANER
15156  if (c == '-' && soap_get0(soap) == '-')
15157  soap->mode |= SOAP_ENC_MIME;
15158  else if ((c & 0xFFFC) == (SOAP_DIME_VERSION | SOAP_DIME_MB) && (soap_get0(soap) & 0xFFF0) == 0x20)
15159  soap->mode |= SOAP_ENC_DIME;
15160  else
15161 #endif
15162  { /* skip BOM */
15163  if (c == 0xEF && soap_get0(soap) == 0xBB)
15164  { c = soap_get1(soap);
15165  if ((c = soap_get1(soap)) == 0xBF)
15166  { soap->mode &= ~SOAP_ENC_LATIN;
15167  c = soap_getchar(soap);
15168  }
15169  else
15170  c = (0x0F << 12) | (0xBB << 6) | (c & 0x3F); /* UTF-8 */
15171  }
15172  else if ((c == 0xFE && soap_get0(soap) == 0xFF) /* UTF-16 BE */
15173  || (c == 0xFF && soap_get0(soap) == 0xFE)) /* UTF-16 LE */
15174  return soap->error = SOAP_UTF_ERROR;
15175  /* skip space */
15176  while (soap_blank(c))
15177  c = soap_getchar(soap);
15178  }
15179  if ((int)c == EOF)
15180  return soap->error = SOAP_CHK_EOF;
15181  soap_unget(soap, c);
15182 #ifndef WITH_NOHTTP
15183  /* if not XML/MIME/DIME/ZLIB, assume HTTP method or status line */
15184  if (((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) && !(soap->mode & (SOAP_ENC_MIME | SOAP_ENC_DIME | SOAP_ENC_ZLIB | SOAP_ENC_XML)))
15185  { soap_mode m = soap->imode;
15186  soap->mode &= ~SOAP_IO;
15187  soap->error = soap->fparse(soap);
15188  if (soap->error && soap->error < SOAP_STOP)
15189  { soap->keep_alive = 0; /* force close later */
15190  return soap->error;
15191  }
15192  if (soap->error == SOAP_STOP)
15193  { if (soap->fform)
15194  { soap->error = soap->fform(soap);
15195  if (soap->error == SOAP_OK)
15196  soap->error = SOAP_STOP; /* prevents further processing */
15197  }
15198  return soap->error;
15199  }
15200  soap->mode = soap->imode; /* if imode is changed, effectuate */
15201  soap->imode = m; /* restore imode */
15202 #ifdef WITH_ZLIB
15203  soap->mode &= ~SOAP_ENC_ZLIB;
15204 #endif
15205  if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK)
15206  { soap->chunkbuflen = soap->buflen;
15207  soap->buflen = soap->bufidx;
15208  soap->chunksize = 0;
15209  }
15210  /* Note: fparse should not use soap_unget to push back last char */
15211 #if 0
15212  if (soap->status > 200 && soap->length == 0 && !(soap->http_content && (!soap->keep_alive || soap->recv_timeout)) && (soap->imode & SOAP_IO) != SOAP_IO_CHUNK)
15213 #endif
15214  if (soap->status && !soap->body)
15215  return soap->error = soap->status;
15216 #ifdef WITH_ZLIB
15217  if (soap->zlib_in != SOAP_ZLIB_NONE)
15218  {
15219 #ifdef WITH_GZIP
15220  if (soap->zlib_in != SOAP_ZLIB_DEFLATE)
15221  { c = soap_get1(soap);
15222  if (c == (int)EOF)
15223  return soap->error = SOAP_EOF;
15224  if (c == 0x1F)
15225  { if (soap_getgziphdr(soap))
15226  return soap->error;
15228  return soap->error = SOAP_ZLIB_ERROR;
15229  soap->z_crc = crc32(0L, NULL, 0);
15230  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "gzip initialized\n"));
15231  }
15232  else
15233  { soap_revget1(soap);
15234  if (inflateInit(soap->d_stream) != Z_OK)
15235  return soap->error = SOAP_ZLIB_ERROR;
15237  }
15238  }
15239  else
15240 #endif
15241  if (inflateInit(soap->d_stream) != Z_OK)
15242  return soap->error = SOAP_ZLIB_ERROR;
15243  if (soap->z_dict)
15244  { if (inflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len) != Z_OK)
15245  return soap->error = SOAP_ZLIB_ERROR;
15246  }
15248  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inflate initialized\n"));
15249  soap->mode |= SOAP_ENC_ZLIB;
15250  if (!soap->z_buf)
15251  soap->z_buf = (char*)SOAP_MALLOC(soap, SOAP_BUFLEN);
15252  memcpy(soap->z_buf, soap->buf, SOAP_BUFLEN);
15253  soap->d_stream->next_in = (Byte*)(soap->z_buf + soap->bufidx);
15254  soap->d_stream->avail_in = (unsigned int)(soap->buflen - soap->bufidx);
15255  soap->z_buflen = soap->buflen;
15256  soap->buflen = soap->bufidx;
15257  }
15258 #endif
15259 #ifndef WITH_LEANER
15261  { int r;
15262  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Invoking fpreparerecv\n"));
15263  if ((r = soap->fpreparerecv(soap, soap->buf + soap->bufidx, soap->buflen - soap->bufidx)))
15264  return soap->error = r;
15265  }
15266 #endif
15267  if (soap_get0(soap) == (int)EOF)
15268  { if (soap->status == 0 || soap->status == 200)
15269  return soap->error = SOAP_NO_DATA; /* HTTP OK: always expect data */
15270  return soap->error = soap->status;
15271  }
15272  if (soap->error)
15273  { if (soap->error == SOAP_FORM && soap->fform)
15274  { soap->error = soap->fform(soap);
15275  if (soap->error == SOAP_OK)
15276  soap->error = SOAP_STOP; /* prevents further processing */
15277  }
15278  return soap->error;
15279  }
15280  }
15281 #endif
15282 #ifndef WITH_LEANER
15283  if (soap->mode & SOAP_ENC_MIME)
15284  { do /* skip preamble */
15285  { if ((int)(c = soap_getchar(soap)) == EOF)
15286  return soap->error = SOAP_CHK_EOF;
15287  } while (c != '-' || soap_get0(soap) != '-');
15288  soap_unget(soap, c);
15289  if (soap_getmimehdr(soap))
15290  return soap->error;
15291  if (soap->mime.start)
15292  { do
15293  { if (!soap->mime.last->id)
15294  break;
15296  break;
15297  } while (soap_get_mime_attachment(soap, NULL));
15298  }
15299  if (soap_get_header_attribute(soap, soap->mime.first->type, "application/dime"))
15300  soap->mode |= SOAP_ENC_DIME;
15301  }
15302  if (soap->mode & SOAP_ENC_DIME)
15303  { if (soap_getdimehdr(soap))
15304  return soap->error;
15305  if (soap->dime.flags & SOAP_DIME_CF)
15306  { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Chunked DIME SOAP message\n"));
15308  if (soap->buflen - soap->bufidx >= soap->dime.chunksize)
15309  { soap->dime.buflen = soap->buflen;
15311  }
15312  else
15314  }
15315  soap->count = soap->buflen - soap->bufidx;
15316  }
15317 #endif
15318  return SOAP_OK;
15319 }
const char * id
Definition: stdsoap2.h:1786
short alloced
Definition: stdsoap2.h:2088
short keep_alive
Definition: stdsoap2.h:2099
int filterstop
Definition: stdsoap2.h:2021
void * is
Definition: stdsoap2.h:2046
int recvfd
Definition: stdsoap2.h:2050
struct soap_dom_element * dom
Definition: stdsoap2.h:2116
size_t chunksize
Definition: stdsoap2.h:1733
int error
Definition: stdsoap2.h:2112
struct soap_multipart * first
Definition: stdsoap2.h:1756
unsigned char Byte
Definition: zconf.h:368
struct soap_multipart * list
Definition: stdsoap2.h:1755
#define soap_valid_socket(n)
Definition: stdsoap2.h:859
short part
Definition: stdsoap2.h:2085
char * action
Definition: stdsoap2.h:2095
soap_mode imode
Definition: stdsoap2.h:1937
soap_mode mode
Definition: stdsoap2.h:1936
struct soap_multipart * first
Definition: stdsoap2.h:1741
Definition: stdsoap2.h:1933
soap_int32 soap_wchar
Definition: stdsoap2.h:1610
struct SOAP_ENV__Fault * fault
Definition: stdsoap2.h:1969
#define SOAP_BUFLEN
Definition: stdsoap2.h:1013
size_t size
Definition: stdsoap2.h:1732
#define SOAP_BEGIN
Definition: stdsoap2.h:1419
size_t chunksize
Definition: stdsoap2.h:2090
short version
Definition: stdsoap2.h:1935
SOAP_FMAC1 struct soap_multipart *SOAP_FMAC2 soap_get_mime_attachment(struct soap *soap, void *handle)
Definition: stdsoap2.cpp:14500
#define SOAP_IO
Definition: stdsoap2.h:1342
unsigned int level
Definition: stdsoap2.h:2060
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
#define SOAP_ZLIB_NONE
Definition: stdsoap2.h:1333
arena_t NULL
Definition: jemalloc_internal.h:624
struct soap_multipart * list
Definition: stdsoap2.h:1740
#define SOAP_ZLIB_INFLATE
Definition: stdsoap2.h:1335
int(* fprepareinitrecv)(struct soap *)
Definition: stdsoap2.h:2016
#define SOAP_UTF_ERROR
Definition: stdsoap2.h:1292
struct soap_dime dime
Definition: stdsoap2.h:2117
size_t z_buflen
Definition: stdsoap2.h:2204
short zlib_state
Definition: stdsoap2.h:2200
Byte FAR Bytef
Definition: zconf.h:377
#define SOAP_ZLIB_DEFLATE
Definition: stdsoap2.h:1334
int(* fform)(struct soap *)
Definition: stdsoap2.h:1988
const char * z_dict
Definition: stdsoap2.h:2198
short peeked
Definition: stdsoap2.h:2089
#define SOAP_ZLIB_GZIP
Definition: stdsoap2.h:1336
SOAP_FMAC1 const char *SOAP_FMAC2 soap_get_header_attribute(struct soap *soap, const char *line, const char *key)
Definition: stdsoap2.cpp:5680
#define SOAP_IO_CHUNK
Definition: stdsoap2.h:1346
soap_int32 soap_mode
Definition: stdsoap2.h:1340
#define soap_unget(soap, c)
Definition: stdsoap2.h:2284
soap_wchar ahead
Definition: stdsoap2.h:2057
SOAP_FMAC1 int SOAP_FMAC2 soap_match_cid(struct soap *soap, const char *s, const char *t)
Definition: stdsoap2.cpp:14622
#define inflateInit2(strm, windowBits)
Definition: zlib.h:1654
#define soap_blank(c)
Definition: stdsoap2.cpp:100
void * d_stream
Definition: stdsoap2.h:2195
const char * http_content
Definition: stdsoap2.h:1943
#define soap_revget1(soap)
Definition: stdsoap2.h:2283
#define SOAP_STOP
Definition: stdsoap2.h:1308
#define SOAP_DIME_VERSION
Definition: stdsoap2.h:1327
soap_mode omode
Definition: stdsoap2.h:1938
soap_int32 z_crc
Definition: stdsoap2.h:2196
#define SOAP_MALLOC(soap, size)
Definition: stdsoap2.h:1463
char endpoint[SOAP_TAGLEN]
Definition: stdsoap2.h:2092
void * ssl
Definition: stdsoap2.h:2167
SOAP_FMAC1 int SOAP_FMAC2 soap_getmimehdr(struct soap *soap)
Definition: stdsoap2.cpp:14397
const char * start
Definition: stdsoap2.h:1754
static void soap_free_iht(struct soap *)
Definition: stdsoap2.cpp:7576
short cdata
Definition: stdsoap2.h:2058
#define SOAP_ENC_ZLIB
Definition: stdsoap2.h:1358
struct SOAP_ENV__Header * header
Definition: stdsoap2.h:1968
float z_ratio_in
Definition: stdsoap2.h:2206
struct soap_multipart * last
Definition: stdsoap2.h:1741
unsigned int z_dict_len
Definition: stdsoap2.h:2199
#define SOAP_FORM
Definition: stdsoap2.h:1309
struct soap_multipart * last
Definition: stdsoap2.h:1756
size_t bufidx
Definition: stdsoap2.h:2055
int recv_timeout
Definition: stdsoap2.h:1947
#define SOAP_CHK_EOF
Definition: stdsoap2.h:875
SOAP_FMAC1 int SOAP_FMAC2 soap_getdimehdr(struct soap *soap)
Definition: stdsoap2.cpp:14228
#define SOAP_DIME_CF
Definition: stdsoap2.h:1324
char * boundary
Definition: stdsoap2.h:1753
#define SOAP_OK
Definition: stdsoap2.h:1245
short zlib_in
Definition: stdsoap2.h:2201
char * z_buf
Definition: stdsoap2.h:2203
int status
Definition: stdsoap2.h:2111
#define SOAP_ENC_LATIN
Definition: stdsoap2.h:1353
#define soap_get1(soap)
Definition: stdsoap2.h:2262
#define inflateInit(strm)
Definition: zlib.h:1649
#define soap_get0(soap)
Definition: stdsoap2.h:2261
size_t length
Definition: stdsoap2.h:2062
#define Z_OK
Definition: zlib.h:173
SOAP_FMAC1 void SOAP_FMAC2 soap_free_temp(struct soap *soap)
Definition: stdsoap2.cpp:8495
char buf[SOAP_BUFLEN]
Definition: stdsoap2.h:2066
char flags
Definition: stdsoap2.h:1735
#define SOAP_NO_DATA
Definition: stdsoap2.h:1259
int(* fpreparerecv)(struct soap *, const char *, size_t)
Definition: stdsoap2.h:2018
size_t chunkbuflen
Definition: stdsoap2.h:2091
#define SOAP_ZLIB_ERROR
Definition: stdsoap2.h:1276
#define Z_NULL
Definition: zlib.h:208
#define SOAP_ENC_XML
Definition: stdsoap2.h:1354
struct soap_mime mime
Definition: stdsoap2.h:2118
#define SOAP_EOF
Definition: stdsoap2.h:1243
SOAP_SOCKET socket
Definition: stdsoap2.h:2038
short body
Definition: stdsoap2.h:2059
#define SOAP_ENC_DIME
Definition: stdsoap2.h:1355
size_t buflen
Definition: stdsoap2.h:1734
const char * type
Definition: stdsoap2.h:1787
#define SOAP_IO_KEEPALIVE
Definition: stdsoap2.h:1350
SOAP_FMAC1 void SOAP_FMAC2 soap_set_local_namespaces(struct soap *soap)
Definition: stdsoap2.cpp:9381
#define SOAP_ENC_MIME
Definition: stdsoap2.h:1356
SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getchar(struct soap *soap)
Definition: stdsoap2.cpp:1337
size_t buflen
Definition: stdsoap2.h:2056
#define MAX_WBITS
Definition: zconf.h:247
int(* fparse)(struct soap *)
Definition: stdsoap2.h:1991
short zlib_out
Definition: stdsoap2.h:2202
#define SOAP_DIME_MB
Definition: stdsoap2.h:1326
size_t count
Definition: stdsoap2.h:2061

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_begin_send ( struct soap )
7202 { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Initializing for output to socket=%d/fd=%d\n", soap->socket, soap->sendfd));
7203  soap_free_ns(soap);
7204  soap->error = SOAP_OK;
7206 #ifdef WITH_ZLIB
7207  if ((soap->mode & SOAP_ENC_ZLIB) && (soap->mode & SOAP_IO) == SOAP_IO_FLUSH)
7208  { if (soap->mode & SOAP_ENC_XML)
7209  soap->mode |= SOAP_IO_BUFFER;
7210  else
7211  soap->mode |= SOAP_IO_STORE;
7212  }
7213 #endif
7214 #ifndef WITH_LEAN
7215  if ((soap->mode & SOAP_IO_UDP))
7216  { soap->mode |= SOAP_ENC_XML;
7217  if (soap->count > SOAP_BUFLEN)
7218  return soap->error = SOAP_UDP_ERROR;
7219  }
7220 #endif
7222  { if (soap->count || (soap->mode & SOAP_IO_LENGTH) || (soap->mode & SOAP_ENC_XML))
7223  soap->mode |= SOAP_IO_BUFFER;
7224  else
7225  soap->mode |= SOAP_IO_STORE;
7226  }
7227  soap->mode &= ~SOAP_IO_LENGTH;
7228  if ((soap->mode & SOAP_IO) == SOAP_IO_STORE)
7229  if (soap_new_block(soap) == NULL)
7230  return soap->error;
7231  if (!(soap->mode & SOAP_IO_KEEPALIVE))
7232  soap->keep_alive = 0;
7233 #ifndef WITH_LEANER
7234  if ((soap->mode & SOAP_ENC_MTOM) && (soap->mode & SOAP_ENC_DIME))
7235  { soap->mode |= SOAP_ENC_MIME;
7236  soap->mode &= ~SOAP_ENC_DIME;
7237  }
7238  else if (!(soap->mode & SOAP_ENC_MIME))
7239  soap->mode &= ~SOAP_ENC_MTOM;
7240  if (soap->mode & SOAP_ENC_MIME)
7242 #ifdef WIN32
7243 #ifndef UNDER_CE
7244 #ifndef WITH_FASTCGI
7245  if (!soap_valid_socket(soap->socket) && !soap->os) /* Set win32 stdout or soap->sendfd to BINARY, e.g. to support DIME */
7246 #ifdef __BORLANDC__
7247  setmode(soap->sendfd, _O_BINARY);
7248 #else
7249  _setmode(soap->sendfd, _O_BINARY);
7250 #endif
7251 #endif
7252 #endif
7253 #endif
7254 #endif
7255  if (soap->mode & SOAP_IO)
7256  { soap->bufidx = 0;
7257  soap->buflen = 0;
7258  }
7259  soap->chunksize = 0;
7260  soap->ns = 0;
7261  soap->null = 0;
7262  soap->position = 0;
7263  soap->mustUnderstand = 0;
7264  soap->encoding = 0;
7265  soap->idnum = 0;
7266  soap->level = 0;
7269 #ifdef WITH_ZLIB
7270  soap->z_ratio_out = 1.0;
7272  { if (!soap->z_buf)
7273  soap->z_buf = (char*)SOAP_MALLOC(soap, SOAP_BUFLEN);
7274  soap->d_stream->next_out = (Byte*)soap->z_buf;
7275  soap->d_stream->avail_out = SOAP_BUFLEN;
7276 #ifdef WITH_GZIP
7278  { memcpy(soap->z_buf, "\37\213\10\0\0\0\0\0\0\377", 10);
7279  soap->d_stream->next_out = (Byte*)soap->z_buf + 10;
7280  soap->d_stream->avail_out = SOAP_BUFLEN - 10;
7281  soap->z_crc = crc32(0L, NULL, 0);
7283  if (soap->z_dict)
7284  *((Byte*)soap->z_buf + 2) = 0xff;
7286  return soap->error = SOAP_ZLIB_ERROR;
7287  }
7288  else
7289 #endif
7291  return soap->error = SOAP_ZLIB_ERROR;
7292  if (soap->z_dict)
7293  { if (deflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len) != Z_OK)
7294  return soap->error = SOAP_ZLIB_ERROR;
7295  }
7296  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Deflate initialized\n"));
7298  }
7299 #endif
7300 #ifdef WITH_OPENSSL
7301  if (soap->ssl)
7302  ERR_clear_error();
7303 #endif
7304  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Begin send phase (socket=%d mode=0x%x count=%lu)\n", soap->socket, soap->mode, (unsigned long)soap->count));
7305  soap->part = SOAP_BEGIN;
7306 #ifndef WITH_LEANER
7308  return soap->error;
7309 #endif
7310  return SOAP_OK;
7311 }
short keep_alive
Definition: stdsoap2.h:2099
#define deflateInit2(strm, level, method, windowBits, memLevel, strategy)
Definition: zlib.h:1651
unsigned short z_level
Definition: stdsoap2.h:2205
int error
Definition: stdsoap2.h:2112
unsigned char Byte
Definition: zconf.h:368
#define soap_valid_socket(n)
Definition: stdsoap2.h:859
int sendfd
Definition: stdsoap2.h:2049
short part
Definition: stdsoap2.h:2085
#define SOAP_UDP_ERROR
Definition: stdsoap2.h:1272
soap_mode mode
Definition: stdsoap2.h:1936
Definition: stdsoap2.h:1933
#define SOAP_ENC_MTOM
Definition: stdsoap2.h:1357
#define SOAP_BUFLEN
Definition: stdsoap2.h:1013
#define SOAP_BEGIN
Definition: stdsoap2.h:1419
short ns
Definition: stdsoap2.h:2084
#define SOAP_IO_UDP
Definition: stdsoap2.h:1348
size_t chunksize
Definition: stdsoap2.h:2090
#define SOAP_IO_FLUSH
Definition: stdsoap2.h:1343
#define SOAP_IO
Definition: stdsoap2.h:1342
unsigned int level
Definition: stdsoap2.h:2060
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
int(* fprepareinitsend)(struct soap *)
Definition: stdsoap2.h:2015
arena_t NULL
Definition: jemalloc_internal.h:624
short zlib_state
Definition: stdsoap2.h:2200
Byte FAR Bytef
Definition: zconf.h:377
SOAP_FMAC1 void SOAP_FMAC2 soap_clr_attr(struct soap *soap)
Definition: stdsoap2.cpp:10493
#define SOAP_ZLIB_DEFLATE
Definition: stdsoap2.h:1334
const char * z_dict
Definition: stdsoap2.h:2198
SOAP_FMAC1 struct soap_blist *SOAP_FMAC2 soap_new_block(struct soap *soap)
Definition: stdsoap2.cpp:2153
#define SOAP_ZLIB_GZIP
Definition: stdsoap2.h:1336
void * d_stream
Definition: stdsoap2.h:2195
#define SOAP_IO_LENGTH
Definition: stdsoap2.h:1349
int position
Definition: stdsoap2.h:2078
float z_ratio_out
Definition: stdsoap2.h:2207
soap_mode omode
Definition: stdsoap2.h:1938
soap_int32 z_crc
Definition: stdsoap2.h:2196
#define SOAP_MALLOC(soap, size)
Definition: stdsoap2.h:1463
short encoding
Definition: stdsoap2.h:2081
#define Z_DEFLATED
Definition: zlib.h:205
void * ssl
Definition: stdsoap2.h:2167
#define SOAP_IO_BUFFER
Definition: stdsoap2.h:1344
#define SOAP_ENC_ZLIB
Definition: stdsoap2.h:1358
unsigned int z_dict_len
Definition: stdsoap2.h:2199
size_t bufidx
Definition: stdsoap2.h:2055
short mustUnderstand
Definition: stdsoap2.h:2082
#define SOAP_OK
Definition: stdsoap2.h:1245
void * os
Definition: stdsoap2.h:2045
char * z_buf
Definition: stdsoap2.h:2203
int idnum
Definition: stdsoap2.h:1970
#define deflateInit(strm, level)
Definition: zlib.h:1647
#define Z_OK
Definition: zlib.h:173
#define SOAP_IO_STORE
Definition: stdsoap2.h:1345
static void soap_select_mime_boundary(struct soap *)
Definition: stdsoap2.cpp:14912
#define SOAP_ZLIB_ERROR
Definition: stdsoap2.h:1276
#define Z_DEFAULT_STRATEGY
Definition: zlib.h:196
#define SOAP_ENC_XML
Definition: stdsoap2.h:1354
SOAP_SOCKET socket
Definition: stdsoap2.h:2038
#define SOAP_ENC_DIME
Definition: stdsoap2.h:1355
#define SOAP_IO_KEEPALIVE
Definition: stdsoap2.h:1350
SOAP_FMAC1 void SOAP_FMAC2 soap_set_local_namespaces(struct soap *soap)
Definition: stdsoap2.cpp:9381
#define SOAP_ENC_MIME
Definition: stdsoap2.h:1356
short null
Definition: stdsoap2.h:2083
size_t buflen
Definition: stdsoap2.h:2056
#define MAX_WBITS
Definition: zconf.h:247
static void soap_free_ns(struct soap *soap)
Definition: stdsoap2.cpp:8545
short zlib_out
Definition: stdsoap2.h:2202
size_t count
Definition: stdsoap2.h:2061

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 int SOAP_FMAC2 soap_begin_serve ( struct soap )
15013 {
15014 #ifdef WITH_FASTCGI
15015  if (FCGI_Accept() < 0)
15016  { soap->error = SOAP_EOF;
15017  return soap_send_fault(soap);
15018  }
15019 #endif
15020  soap_begin(soap);
15021  if (soap_begin_recv(soap)
15025  { if (soap->error < SOAP_STOP)
15026  {
15027 #ifdef WITH_FASTCGI
15029 #else
15030  return soap_send_fault(soap);
15031 #endif
15032  }
15033  return soap_closesock(soap);
15034  }
15035  return SOAP_OK;
15036 }
SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault(struct soap *soap)
Definition: stdsoap2.cpp:16451
SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header(struct soap *soap)
Definition: stdsoap2.cpp:15605
int error
Definition: stdsoap2.h:2112
Definition: stdsoap2.h:1933
SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in(struct soap *soap)
Definition: stdsoap2.cpp:15482
SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in(struct soap *soap)
Definition: stdsoap2.cpp:15573
#define SOAP_STOP
Definition: stdsoap2.h:1308
SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv(struct soap *soap)
Definition: stdsoap2.cpp:15044
#define SOAP_OK
Definition: stdsoap2.h:1245
SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap *soap)
Definition: stdsoap2.cpp:5113
#define SOAP_EOF
Definition: stdsoap2.h:1243
SOAP_FMAC1 void SOAP_FMAC2 soap_begin(struct soap *soap)
Definition: stdsoap2.cpp:9240

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_bind ( struct soap ,
const char *  ,
int  ,
int   
)
4744 {
4745 #ifdef WITH_IPV6
4746  struct addrinfo *addrinfo = NULL;
4747  struct addrinfo hints;
4748  struct addrinfo res;
4749  int err;
4750 #ifdef WITH_NO_IPV6_V6ONLY
4751  int unset = 0;
4752 #endif
4753 #endif
4754 #ifndef WITH_LEAN
4755 #ifndef WIN32
4756  int len = SOAP_BUFLEN;
4757 #else
4758  int len = SOAP_BUFLEN + 1; /* speeds up windows xfer */
4759 #endif
4760  int set = 1;
4761 #endif
4765  }
4767  soap->errmode = 1;
4768  if (tcp_init(soap))
4769  { soap_set_receiver_error(soap, tcp_error(soap), "TCP init failed in soap_bind()", SOAP_TCP_ERROR);
4770  return SOAP_INVALID_SOCKET;
4771  }
4772 #ifdef WITH_IPV6
4773  memset((void*)&hints, 0, sizeof(hints));
4774  hints.ai_family = PF_UNSPEC;
4775 #ifndef WITH_LEAN
4776  if ((soap->omode & SOAP_IO_UDP))
4777  hints.ai_socktype = SOCK_DGRAM;
4778  else
4779 #endif
4780  hints.ai_socktype = SOCK_STREAM;
4781  hints.ai_flags = AI_PASSIVE;
4782  soap->errmode = 2;
4783  err = getaddrinfo(host, soap_int2s(soap, port), &hints, &addrinfo);
4784  if (err || !addrinfo)
4785  { soap_set_receiver_error(soap, SOAP_GAI_STRERROR(err), "getaddrinfo failed in soap_bind()", SOAP_TCP_ERROR);
4786  return SOAP_INVALID_SOCKET;
4787  }
4788  res = *addrinfo;
4789  memcpy(&soap->peer, addrinfo->ai_addr, addrinfo->ai_addrlen);
4790  soap->peerlen = addrinfo->ai_addrlen;
4791  res.ai_addr = (struct sockaddr*)&soap->peer;
4792  res.ai_addrlen = soap->peerlen;
4793  freeaddrinfo(addrinfo);
4794  soap->master = (int)socket(res.ai_family, res.ai_socktype, res.ai_protocol);
4795 #else
4796 #ifndef WITH_LEAN
4797  if ((soap->omode & SOAP_IO_UDP))
4798  soap->master = (int)socket(AF_INET, SOCK_DGRAM, 0);
4799  else
4800 #endif
4801  soap->master = (int)socket(AF_INET, SOCK_STREAM, 0);
4802 #endif
4803  soap->errmode = 0;
4804  if (!soap_valid_socket(soap->master))
4806  soap_set_receiver_error(soap, tcp_error(soap), "socket failed in soap_bind()", SOAP_TCP_ERROR);
4807  return SOAP_INVALID_SOCKET;
4808  }
4809  soap->port = port;
4810 #ifndef WITH_LEAN
4811  if ((soap->omode & SOAP_IO_UDP))
4812  soap->socket = soap->master;
4813 #endif
4814 #ifdef SOCKET_CLOSE_ON_EXEC
4815 #ifdef WIN32
4816 #ifndef UNDER_CE
4817  SetHandleInformation((HANDLE)soap->master, HANDLE_FLAG_INHERIT, 0);
4818 #endif
4819 #else
4820  fcntl(soap->master, F_SETFD, 1);
4821 #endif
4822 #endif
4823 #ifndef WITH_LEAN
4824  if (soap->bind_flags && setsockopt(soap->master, SOL_SOCKET, soap->bind_flags, (char*)&set, sizeof(int)))
4826  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt failed in soap_bind()", SOAP_TCP_ERROR);
4827  return SOAP_INVALID_SOCKET;
4828  }
4829  if (((soap->imode | soap->omode) & SOAP_IO_KEEPALIVE) && (!((soap->imode | soap->omode) & SOAP_IO_UDP)) && setsockopt(soap->master, SOL_SOCKET, SO_KEEPALIVE, (char*)&set, sizeof(int)))
4831  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_KEEPALIVE failed in soap_bind()", SOAP_TCP_ERROR);
4832  return SOAP_INVALID_SOCKET;
4833  }
4834  if (setsockopt(soap->master, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int)))
4836  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_SNDBUF failed in soap_bind()", SOAP_TCP_ERROR);
4837  return SOAP_INVALID_SOCKET;
4838  }
4839  if (setsockopt(soap->master, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int)))
4841  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_RCVBUF failed in soap_bind()", SOAP_TCP_ERROR);
4842  return SOAP_INVALID_SOCKET;
4843  }
4844 #ifdef TCP_NODELAY
4845  if (!(soap->omode & SOAP_IO_UDP) && setsockopt(soap->master, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int)))
4847  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt TCP_NODELAY failed in soap_bind()", SOAP_TCP_ERROR);
4848  return SOAP_INVALID_SOCKET;
4849  }
4850 #endif
4851 #endif
4852 #ifdef WITH_IPV6
4853 #ifdef WITH_IPV6_V6ONLY
4854  if (setsockopt(soap->master, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&set, sizeof(int)))
4856  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt set IPV6_V6ONLY failed in soap_bind()", SOAP_TCP_ERROR);
4857  return SOAP_INVALID_SOCKET;
4858  }
4859 #endif
4860 #ifdef WITH_NO_IPV6_V6ONLY
4861  if (setsockopt(soap->master, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&unset, sizeof(int)))
4863  soap_set_receiver_error(soap, tcp_error(soap), "setsockopt unset IPV6_V6ONLY failed in soap_bind()", SOAP_TCP_ERROR);
4864  return SOAP_INVALID_SOCKET;
4865  }
4866 #endif
4867  soap->errmode = 0;
4868  if (bind(soap->master, res.ai_addr, (int)res.ai_addrlen))
4870  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not bind to host\n"));
4872  soap_set_receiver_error(soap, tcp_error(soap), "bind failed in soap_bind()", SOAP_TCP_ERROR);
4873  return SOAP_INVALID_SOCKET;
4874  }
4875 #else
4876  soap->peerlen = sizeof(soap->peer);
4877  memset((void*)&soap->peer, 0, sizeof(soap->peer));
4878  soap->peer.sin_family = AF_INET;
4879  soap->errmode = 2;
4880  if (host)
4881  { if (soap->fresolve(soap, host, &soap->peer.sin_addr))
4882  { soap_set_receiver_error(soap, tcp_error(soap), "get host by name failed in soap_bind()", SOAP_TCP_ERROR);
4883  return SOAP_INVALID_SOCKET;
4884  }
4885  }
4886  else
4887  soap->peer.sin_addr.s_addr = htonl(INADDR_ANY);
4888  soap->peer.sin_port = htons((short)port);
4889  soap->errmode = 0;
4890  if (bind(soap->master, (struct sockaddr*)&soap->peer, (int)soap->peerlen))
4892  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not bind to host\n"));
4894  soap_set_receiver_error(soap, tcp_error(soap), "bind failed in soap_bind()", SOAP_TCP_ERROR);
4895  return SOAP_INVALID_SOCKET;
4896  }
4897 #endif
4898  if (!(soap->omode & SOAP_IO_UDP) && listen(soap->master, backlog))
4900  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not bind to host\n"));
4902  soap_set_receiver_error(soap, tcp_error(soap), "listen failed in soap_bind()", SOAP_TCP_ERROR);
4903  return SOAP_INVALID_SOCKET;
4904  }
4905  return soap->master;
4906 }
#define soap_socket_errno(s)
Definition: stdsoap2.h:1002
void * HANDLE
Definition: CascPort.h:146
#define soap_valid_socket(n)
Definition: stdsoap2.h:859
static int tcp_init(struct soap *)
Definition: stdsoap2.cpp:3697
soap_mode imode
Definition: stdsoap2.h:1937
SOAP_SOCKET master
Definition: stdsoap2.h:2037
Definition: stdsoap2.h:1933
#define SOAP_BUFLEN
Definition: stdsoap2.h:1013
#define SOAP_IO_UDP
Definition: stdsoap2.h:1348
#define DBGLOG(DBGFILE, CMD)
Definition: stdsoap2.h:1600
arena_t NULL
Definition: jemalloc_internal.h:624
int errmode
Definition: stdsoap2.h:2113
int(* fresolve)(struct soap *, const char *, struct in_addr *inaddr)
Definition: stdsoap2.h:1994
#define SOAP_GAI_STRERROR
Definition: stdsoap2.h:865
soap_mode omode
Definition: stdsoap2.h:1938
size_t peerlen
Definition: stdsoap2.h:2144
int bind_flags
Definition: stdsoap2.h:1953
SOAP_FMAC1 const char *SOAP_FMAC2 soap_int2s(struct soap *soap, int n)
Definition: stdsoap2.cpp:11934
static const char * tcp_error(struct soap *)
Definition: stdsoap2.cpp:3718
struct sockaddr_in peer
Definition: stdsoap2.h:2141
int errnum
Definition: stdsoap2.h:2114
int port
Definition: stdsoap2.h:2098
#define SOAP_INVALID_SOCKET
Definition: stdsoap2.h:858
SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap *soap)
Definition: stdsoap2.cpp:5113
#define SOAP_TCP_ERROR
Definition: stdsoap2.h:1273
int(* fclosesocket)(struct soap *, SOAP_SOCKET)
Definition: stdsoap2.h:1997
SOAP_SOCKET socket
Definition: stdsoap2.h:2038
#define SOAP_IO_KEEPALIVE
Definition: stdsoap2.h:1350
SOAP_FMAC1 int SOAP_FMAC2 soap_set_receiver_error(struct soap *soap, const char *faultstring, const char *faultdetailXML, int soaperror)
Definition: stdsoap2.cpp:16714

+ Here is the call graph for this function: