1*12720SWyllys.Ingersoll@Sun.COM /*
2*12720SWyllys.Ingersoll@Sun.COM  * CDDL HEADER START
3*12720SWyllys.Ingersoll@Sun.COM  *
4*12720SWyllys.Ingersoll@Sun.COM  * The contents of this file are subject to the terms of the
5*12720SWyllys.Ingersoll@Sun.COM  * Common Development and Distribution License (the "License").
6*12720SWyllys.Ingersoll@Sun.COM  * You may not use this file except in compliance with the License.
7*12720SWyllys.Ingersoll@Sun.COM  *
8*12720SWyllys.Ingersoll@Sun.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*12720SWyllys.Ingersoll@Sun.COM  * or http://www.opensolaris.org/os/licensing.
10*12720SWyllys.Ingersoll@Sun.COM  * See the License for the specific language governing permissions
11*12720SWyllys.Ingersoll@Sun.COM  * and limitations under the License.
12*12720SWyllys.Ingersoll@Sun.COM  *
13*12720SWyllys.Ingersoll@Sun.COM  * When distributing Covered Code, include this CDDL HEADER in each
14*12720SWyllys.Ingersoll@Sun.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*12720SWyllys.Ingersoll@Sun.COM  * If applicable, add the following below this CDDL HEADER, with the
16*12720SWyllys.Ingersoll@Sun.COM  * fields enclosed by brackets "[]" replaced with your own identifying
17*12720SWyllys.Ingersoll@Sun.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
18*12720SWyllys.Ingersoll@Sun.COM  *
19*12720SWyllys.Ingersoll@Sun.COM  * CDDL HEADER END
20*12720SWyllys.Ingersoll@Sun.COM  */
21*12720SWyllys.Ingersoll@Sun.COM /*
22*12720SWyllys.Ingersoll@Sun.COM  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
23*12720SWyllys.Ingersoll@Sun.COM  */
24*12720SWyllys.Ingersoll@Sun.COM 
25*12720SWyllys.Ingersoll@Sun.COM /*
26*12720SWyllys.Ingersoll@Sun.COM 	stdsoap2.h 2.7.17
27*12720SWyllys.Ingersoll@Sun.COM 
28*12720SWyllys.Ingersoll@Sun.COM 	gSOAP runtime engine
29*12720SWyllys.Ingersoll@Sun.COM 
30*12720SWyllys.Ingersoll@Sun.COM gSOAP XML Web services tools
31*12720SWyllys.Ingersoll@Sun.COM Copyright (C) 2000-2010, Robert van Engelen, Genivia Inc., All Rights Reserved.
32*12720SWyllys.Ingersoll@Sun.COM This part of the software is released under ONE of the following licenses:
33*12720SWyllys.Ingersoll@Sun.COM GPL, or the gSOAP public license, or Genivia's license for commercial use.
34*12720SWyllys.Ingersoll@Sun.COM --------------------------------------------------------------------------------
35*12720SWyllys.Ingersoll@Sun.COM Contributors:
36*12720SWyllys.Ingersoll@Sun.COM 
37*12720SWyllys.Ingersoll@Sun.COM Wind River Systems, Inc., for the following additions
38*12720SWyllys.Ingersoll@Sun.COM   - vxWorks compatible
39*12720SWyllys.Ingersoll@Sun.COM --------------------------------------------------------------------------------
40*12720SWyllys.Ingersoll@Sun.COM gSOAP public license.
41*12720SWyllys.Ingersoll@Sun.COM 
42*12720SWyllys.Ingersoll@Sun.COM The contents of this file are subject to the gSOAP Public License Version 1.3
43*12720SWyllys.Ingersoll@Sun.COM (the "License"); you may not use this file except in compliance with the
44*12720SWyllys.Ingersoll@Sun.COM License. You may obtain a copy of the License at
45*12720SWyllys.Ingersoll@Sun.COM http://www.cs.fsu.edu/~engelen/soaplicense.html
46*12720SWyllys.Ingersoll@Sun.COM Software distributed under the License is distributed on an "AS IS" basis,
47*12720SWyllys.Ingersoll@Sun.COM WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
48*12720SWyllys.Ingersoll@Sun.COM for the specific language governing rights and limitations under the License.
49*12720SWyllys.Ingersoll@Sun.COM 
50*12720SWyllys.Ingersoll@Sun.COM The Initial Developer of the Original Code is Robert A. van Engelen.
51*12720SWyllys.Ingersoll@Sun.COM Copyright (C) 2000-2010, Robert van Engelen, Genivia Inc., All Rights Reserved.
52*12720SWyllys.Ingersoll@Sun.COM --------------------------------------------------------------------------------
53*12720SWyllys.Ingersoll@Sun.COM GPL license.
54*12720SWyllys.Ingersoll@Sun.COM 
55*12720SWyllys.Ingersoll@Sun.COM This program is free software; you can redistribute it and/or modify it under
56*12720SWyllys.Ingersoll@Sun.COM the terms of the GNU General Public License as published by the Free Software
57*12720SWyllys.Ingersoll@Sun.COM Foundation; either version 2 of the License, or (at your option) any later
58*12720SWyllys.Ingersoll@Sun.COM version.
59*12720SWyllys.Ingersoll@Sun.COM 
60*12720SWyllys.Ingersoll@Sun.COM This program is distributed in the hope that it will be useful, but WITHOUT ANY
61*12720SWyllys.Ingersoll@Sun.COM WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
62*12720SWyllys.Ingersoll@Sun.COM PARTICULAR PURPOSE. See the GNU General Public License for more details.
63*12720SWyllys.Ingersoll@Sun.COM 
64*12720SWyllys.Ingersoll@Sun.COM You should have received a copy of the GNU General Public License along with
65*12720SWyllys.Ingersoll@Sun.COM this program; if not, write to the Free Software Foundation, Inc., 59 Temple
66*12720SWyllys.Ingersoll@Sun.COM Place, Suite 330, Boston, MA 02111-1307 USA
67*12720SWyllys.Ingersoll@Sun.COM 
68*12720SWyllys.Ingersoll@Sun.COM Author contact information:
69*12720SWyllys.Ingersoll@Sun.COM engelen@genivia.com / engelen@acm.org
70*12720SWyllys.Ingersoll@Sun.COM 
71*12720SWyllys.Ingersoll@Sun.COM This program is released under the GPL with the additional exemption that
72*12720SWyllys.Ingersoll@Sun.COM compiling, linking, and/or using OpenSSL is allowed.
73*12720SWyllys.Ingersoll@Sun.COM --------------------------------------------------------------------------------
74*12720SWyllys.Ingersoll@Sun.COM A commercial use license is available from Genivia, Inc., contact@genivia.com
75*12720SWyllys.Ingersoll@Sun.COM --------------------------------------------------------------------------------
76*12720SWyllys.Ingersoll@Sun.COM */
77*12720SWyllys.Ingersoll@Sun.COM 
78*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_SOAPDEFS_H
79*12720SWyllys.Ingersoll@Sun.COM # include "soapdefs.h"		/* include user-defined stuff */
80*12720SWyllys.Ingersoll@Sun.COM #endif
81*12720SWyllys.Ingersoll@Sun.COM 
82*12720SWyllys.Ingersoll@Sun.COM #ifndef _THREAD_SAFE
83*12720SWyllys.Ingersoll@Sun.COM # define _THREAD_SAFE
84*12720SWyllys.Ingersoll@Sun.COM #endif
85*12720SWyllys.Ingersoll@Sun.COM 
86*12720SWyllys.Ingersoll@Sun.COM #ifndef OPENSERVER
87*12720SWyllys.Ingersoll@Sun.COM # ifndef _REENTRANT
88*12720SWyllys.Ingersoll@Sun.COM #  define _REENTRANT
89*12720SWyllys.Ingersoll@Sun.COM # endif
90*12720SWyllys.Ingersoll@Sun.COM #endif
91*12720SWyllys.Ingersoll@Sun.COM 
92*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC1	/* stdsoap2.h declaration macro */
93*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC1
94*12720SWyllys.Ingersoll@Sun.COM #endif
95*12720SWyllys.Ingersoll@Sun.COM 
96*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC2	/* stdsoap2.h declaration macro */
97*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC2
98*12720SWyllys.Ingersoll@Sun.COM #endif
99*12720SWyllys.Ingersoll@Sun.COM 
100*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC3	/* (de)serializer declaration macro */
101*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC3
102*12720SWyllys.Ingersoll@Sun.COM #endif
103*12720SWyllys.Ingersoll@Sun.COM 
104*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC3S	/* string converter for (de)serializer declaration macro */
105*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC3S SOAP_FMAC3
106*12720SWyllys.Ingersoll@Sun.COM #endif
107*12720SWyllys.Ingersoll@Sun.COM 
108*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC4	/* (de)serializer declaration macro */
109*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC4
110*12720SWyllys.Ingersoll@Sun.COM #endif
111*12720SWyllys.Ingersoll@Sun.COM 
112*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC4S	/* string converter for (de)serializer declaration macro */
113*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC4S SOAP_FMAC4
114*12720SWyllys.Ingersoll@Sun.COM #endif
115*12720SWyllys.Ingersoll@Sun.COM 
116*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC5	/* stub/skeleton declaration macro */
117*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC5
118*12720SWyllys.Ingersoll@Sun.COM #endif
119*12720SWyllys.Ingersoll@Sun.COM 
120*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FMAC6	/* stub/skeleton declaration macro */
121*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FMAC6
122*12720SWyllys.Ingersoll@Sun.COM #endif
123*12720SWyllys.Ingersoll@Sun.COM 
124*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_CMAC	/* class declaration macro */
125*12720SWyllys.Ingersoll@Sun.COM # define SOAP_CMAC
126*12720SWyllys.Ingersoll@Sun.COM #endif
127*12720SWyllys.Ingersoll@Sun.COM 
128*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_NMAC	/* namespace table declaration macro */
129*12720SWyllys.Ingersoll@Sun.COM # define SOAP_NMAC
130*12720SWyllys.Ingersoll@Sun.COM #endif
131*12720SWyllys.Ingersoll@Sun.COM 
132*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_SOURCE_STAMP
133*12720SWyllys.Ingersoll@Sun.COM # define SOAP_SOURCE_STAMP(str)
134*12720SWyllys.Ingersoll@Sun.COM #endif
135*12720SWyllys.Ingersoll@Sun.COM 
136*12720SWyllys.Ingersoll@Sun.COM /* gSOAP 2.7.4 and higher: fast look-aside buffering is stable */
137*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_FAST
138*12720SWyllys.Ingersoll@Sun.COM # define WITH_FAST
139*12720SWyllys.Ingersoll@Sun.COM #endif
140*12720SWyllys.Ingersoll@Sun.COM 
141*12720SWyllys.Ingersoll@Sun.COM /* gSOAP 2.7.15 and higher: always retain CDATA in literal XML, unless WITH_LEAN or WITH_NOCDATA */
142*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
143*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_NOCDATA
144*12720SWyllys.Ingersoll@Sun.COM #  ifndef WITH_CDATA
145*12720SWyllys.Ingersoll@Sun.COM #   define WITH_CDATA
146*12720SWyllys.Ingersoll@Sun.COM #  endif
147*12720SWyllys.Ingersoll@Sun.COM # endif
148*12720SWyllys.Ingersoll@Sun.COM #endif
149*12720SWyllys.Ingersoll@Sun.COM 
150*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_LEANER
151*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
152*12720SWyllys.Ingersoll@Sun.COM #  define WITH_LEAN
153*12720SWyllys.Ingersoll@Sun.COM # endif
154*12720SWyllys.Ingersoll@Sun.COM #endif
155*12720SWyllys.Ingersoll@Sun.COM 
156*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_LEAN
157*12720SWyllys.Ingersoll@Sun.COM # ifdef WITH_COOKIES
158*12720SWyllys.Ingersoll@Sun.COM #  error "Cannot build WITH_LEAN code WITH_COOKIES enabled"
159*12720SWyllys.Ingersoll@Sun.COM # endif
160*12720SWyllys.Ingersoll@Sun.COM #endif
161*12720SWyllys.Ingersoll@Sun.COM 
162*12720SWyllys.Ingersoll@Sun.COM #ifndef STDSOAP_H
163*12720SWyllys.Ingersoll@Sun.COM #define STDSOAP_H
164*12720SWyllys.Ingersoll@Sun.COM 
165*12720SWyllys.Ingersoll@Sun.COM #if defined(__vxworks) || defined(__VXWORKS__)
166*12720SWyllys.Ingersoll@Sun.COM # ifndef VXWORKS
167*12720SWyllys.Ingersoll@Sun.COM #  define VXWORKS
168*12720SWyllys.Ingersoll@Sun.COM # endif
169*12720SWyllys.Ingersoll@Sun.COM #endif
170*12720SWyllys.Ingersoll@Sun.COM 
171*12720SWyllys.Ingersoll@Sun.COM #ifdef _WIN32
172*12720SWyllys.Ingersoll@Sun.COM # ifndef WIN32
173*12720SWyllys.Ingersoll@Sun.COM #  define WIN32
174*12720SWyllys.Ingersoll@Sun.COM # endif
175*12720SWyllys.Ingersoll@Sun.COM #endif
176*12720SWyllys.Ingersoll@Sun.COM 
177*12720SWyllys.Ingersoll@Sun.COM #ifdef _WIN32_WCE
178*12720SWyllys.Ingersoll@Sun.COM # ifndef UNDER_CE
179*12720SWyllys.Ingersoll@Sun.COM #  define UNDER_CE _WIN32_WCE
180*12720SWyllys.Ingersoll@Sun.COM # endif
181*12720SWyllys.Ingersoll@Sun.COM #endif
182*12720SWyllys.Ingersoll@Sun.COM 
183*12720SWyllys.Ingersoll@Sun.COM #ifdef UNDER_CE
184*12720SWyllys.Ingersoll@Sun.COM # ifndef WIN32
185*12720SWyllys.Ingersoll@Sun.COM #  define WIN32
186*12720SWyllys.Ingersoll@Sun.COM # endif
187*12720SWyllys.Ingersoll@Sun.COM #endif
188*12720SWyllys.Ingersoll@Sun.COM 
189*12720SWyllys.Ingersoll@Sun.COM #ifdef __BORLANDC__
190*12720SWyllys.Ingersoll@Sun.COM # ifdef __WIN32__
191*12720SWyllys.Ingersoll@Sun.COM #  ifndef WIN32
192*12720SWyllys.Ingersoll@Sun.COM #   define WIN32
193*12720SWyllys.Ingersoll@Sun.COM #  endif
194*12720SWyllys.Ingersoll@Sun.COM # endif
195*12720SWyllys.Ingersoll@Sun.COM #endif
196*12720SWyllys.Ingersoll@Sun.COM 
197*12720SWyllys.Ingersoll@Sun.COM #ifdef __CYGWIN__
198*12720SWyllys.Ingersoll@Sun.COM # ifndef CYGWIN
199*12720SWyllys.Ingersoll@Sun.COM #  define CYGWIN
200*12720SWyllys.Ingersoll@Sun.COM # endif
201*12720SWyllys.Ingersoll@Sun.COM #endif
202*12720SWyllys.Ingersoll@Sun.COM 
203*12720SWyllys.Ingersoll@Sun.COM #ifdef __SYMBIAN32__
204*12720SWyllys.Ingersoll@Sun.COM # define SYMBIAN
205*12720SWyllys.Ingersoll@Sun.COM # undef WIN32
206*12720SWyllys.Ingersoll@Sun.COM #endif
207*12720SWyllys.Ingersoll@Sun.COM 
208*12720SWyllys.Ingersoll@Sun.COM #if defined(__palmos__) || defined(PALM_GCC) || defined(__PALMOS_TRAPS__)
209*12720SWyllys.Ingersoll@Sun.COM # ifndef PALM
210*12720SWyllys.Ingersoll@Sun.COM #  define PALM
211*12720SWyllys.Ingersoll@Sun.COM # endif
212*12720SWyllys.Ingersoll@Sun.COM #endif
213*12720SWyllys.Ingersoll@Sun.COM 
214*12720SWyllys.Ingersoll@Sun.COM #if defined(__hpux)
215*12720SWyllys.Ingersoll@Sun.COM # ifndef HP_UX
216*12720SWyllys.Ingersoll@Sun.COM #  define HP_UX
217*12720SWyllys.Ingersoll@Sun.COM # endif
218*12720SWyllys.Ingersoll@Sun.COM #endif
219*12720SWyllys.Ingersoll@Sun.COM 
220*12720SWyllys.Ingersoll@Sun.COM #if defined(__digital__) && defined(__unix__)
221*12720SWyllys.Ingersoll@Sun.COM # ifndef TRU64
222*12720SWyllys.Ingersoll@Sun.COM #  define TRU64
223*12720SWyllys.Ingersoll@Sun.COM # endif
224*12720SWyllys.Ingersoll@Sun.COM #endif
225*12720SWyllys.Ingersoll@Sun.COM 
226*12720SWyllys.Ingersoll@Sun.COM #ifdef __MVS__
227*12720SWyllys.Ingersoll@Sun.COM # ifndef OS390
228*12720SWyllys.Ingersoll@Sun.COM #  define OS390
229*12720SWyllys.Ingersoll@Sun.COM # endif
230*12720SWyllys.Ingersoll@Sun.COM #endif
231*12720SWyllys.Ingersoll@Sun.COM 
232*12720SWyllys.Ingersoll@Sun.COM #ifdef HAVE_CONFIG_H
233*12720SWyllys.Ingersoll@Sun.COM # include "config.h"
234*12720SWyllys.Ingersoll@Sun.COM # if defined(WITH_OPENSSL)
235*12720SWyllys.Ingersoll@Sun.COM #  ifndef HAVE_OPENSSL_SSL_H
236*12720SWyllys.Ingersoll@Sun.COM #   undef WITH_OPENSSL
237*12720SWyllys.Ingersoll@Sun.COM #  endif
238*12720SWyllys.Ingersoll@Sun.COM # endif
239*12720SWyllys.Ingersoll@Sun.COM # if defined(WITH_ZLIB) || defined(WITH_GZIP)
240*12720SWyllys.Ingersoll@Sun.COM #  ifndef HAVE_ZLIB_H
241*12720SWyllys.Ingersoll@Sun.COM #   undef WITH_ZLIB
242*12720SWyllys.Ingersoll@Sun.COM #   undef WITH_GZIP
243*12720SWyllys.Ingersoll@Sun.COM #  endif
244*12720SWyllys.Ingersoll@Sun.COM # endif
245*12720SWyllys.Ingersoll@Sun.COM #else
246*12720SWyllys.Ingersoll@Sun.COM # if defined(UNDER_CE)
247*12720SWyllys.Ingersoll@Sun.COM #  define WITH_LEAN
248*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
249*12720SWyllys.Ingersoll@Sun.COM # elif defined(WIN32)
250*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
251*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
252*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
253*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
254*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
255*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
256*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
257*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
258*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME
259*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
260*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
261*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_LONG_FORMAT "%I64d"
262*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_ULONG_FORMAT "%I64u"
263*12720SWyllys.Ingersoll@Sun.COM # elif defined(CYGWIN)
264*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_POLL
265*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
266*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
267*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
268*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
269*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
270*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
271*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
272*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
273*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
274*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
275*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
276*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
277*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
278*12720SWyllys.Ingersoll@Sun.COM # elif defined(__APPLE__)
279*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_POLL
280*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
281*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
282*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
283*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
284*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD_L
285*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF_L
286*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SPRINTF_L
287*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
288*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
289*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
290*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
291*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
292*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_TIMEGM
293*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
294*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
295*12720SWyllys.Ingersoll@Sun.COM # elif defined(_AIX43)
296*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
297*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
298*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
299*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
300*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
301*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
302*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
303*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
304*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
305*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
306*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
307*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
308*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
309*12720SWyllys.Ingersoll@Sun.COM # elif defined(_AIX41)
310*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
311*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
312*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
313*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
314*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
315*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
316*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
317*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
318*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
319*12720SWyllys.Ingersoll@Sun.COM # elif defined(HP_UX)
320*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
321*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
322*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
323*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
324*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
325*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
326*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
327*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
328*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
329*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
330*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
331*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
332*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
333*12720SWyllys.Ingersoll@Sun.COM # elif defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD)
334*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_POLL
335*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
336*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
337*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
338*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
339*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD_L
340*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF_L
341*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SPRINTF_L
342*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
343*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
344*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOLL
345*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOULL
346*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GETTIMEOFDAY
347*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
348*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
349*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
350*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
351*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
352*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_LONG_FORMAT "%qd"
353*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_ULONG_FORMAT "%qu"
354*12720SWyllys.Ingersoll@Sun.COM # elif defined(__VMS)
355*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
356*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
357*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
358*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
359*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
360*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
361*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
362*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
363*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
364*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
365*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
366*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
367*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
368*12720SWyllys.Ingersoll@Sun.COM # elif defined(__GLIBC__) || defined(__GNU__)
369*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_POLL
370*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
371*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
372*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
373*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
374*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD_L
375*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF_L
376*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SPRINTF_L
377*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
378*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
379*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOLL
380*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOULL
381*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
382*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
383*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
384*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
385*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
386*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_TIMEGM
387*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
388*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
389*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_ISNAN
390*12720SWyllys.Ingersoll@Sun.COM # elif defined(TRU64)
391*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
392*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
393*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
394*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
395*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
396*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
397*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GETTIMEOFDAY
398*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
399*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
400*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
401*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
402*12720SWyllys.Ingersoll@Sun.COM #  define __USE_STD_IOSTREAM
403*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
404*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
405*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_LONG_FORMAT "%ld"
406*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_ULONG_FORMAT "%lu"
407*12720SWyllys.Ingersoll@Sun.COM # elif defined(MAC_CARBON)
408*12720SWyllys.Ingersoll@Sun.COM #  define WITH_NOIO
409*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
410*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
411*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
412*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
413*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD_L
414*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF_L
415*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SPRINTF_L
416*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
417*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
418*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
419*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
420*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GETHOSTBYNAME_R
421*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
422*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
423*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
424*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
425*12720SWyllys.Ingersoll@Sun.COM # elif defined(PALM)
426*12720SWyllys.Ingersoll@Sun.COM #  define WITH_LEAN
427*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD   /* strtod() is defined in palmFunctions.h */
428*12720SWyllys.Ingersoll@Sun.COM #  include <stdlib.h>	/* Needs to be included before unix headers */
429*12720SWyllys.Ingersoll@Sun.COM #  include <sys_types.h>
430*12720SWyllys.Ingersoll@Sun.COM #  define IGNORE_STDIO_STUBS
431*12720SWyllys.Ingersoll@Sun.COM #  include <StdIOPalm.h>
432*12720SWyllys.Ingersoll@Sun.COM #  define O_NONBLOCK FNONBIO
433*12720SWyllys.Ingersoll@Sun.COM #  include <sys_socket.h>
434*12720SWyllys.Ingersoll@Sun.COM #  include "palmFunctions.h"
435*12720SWyllys.Ingersoll@Sun.COM # elif defined(SYMBIAN)
436*12720SWyllys.Ingersoll@Sun.COM #  define WITH_LEAN
437*12720SWyllys.Ingersoll@Sun.COM #  define WITH_NONAMESPACES
438*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD	/* use STRTOD since sscanf doesn't seem to work */
439*12720SWyllys.Ingersoll@Sun.COM #  include <e32def.h>
440*12720SWyllys.Ingersoll@Sun.COM #  include <sys/ioctl.h>
441*12720SWyllys.Ingersoll@Sun.COM # elif defined(VXWORKS)
442*12720SWyllys.Ingersoll@Sun.COM #  ifdef _WRS_KERNEL
443*12720SWyllys.Ingersoll@Sun.COM #   define _POSIX_THREADS 1
444*12720SWyllys.Ingersoll@Sun.COM #  endif
445*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
446*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
447*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
448*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
449*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
450*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME
451*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME
452*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MKTIME
453*12720SWyllys.Ingersoll@Sun.COM # elif defined(OS390)
454*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
455*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
456*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
457*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
458*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
459*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
460*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
461*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
462*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
463*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
464*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
465*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
466*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
467*12720SWyllys.Ingersoll@Sun.COM # elif defined(AS400)
468*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
469*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
470*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
471*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
472*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
473*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
474*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
475*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
476*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
477*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
478*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
479*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
480*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
481*12720SWyllys.Ingersoll@Sun.COM # elif defined(__QNX__) || defined(QNX)
482*12720SWyllys.Ingersoll@Sun.COM /* QNX does not have a working version of strtof */
483*12720SWyllys.Ingersoll@Sun.COM #  undef HAVE_STRTOF
484*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_POLL
485*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
486*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
487*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
488*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
489*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
490*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
491*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
492*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
493*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
494*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GETHOSTBYNAME_R
495*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
496*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
497*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_WCTOMB
498*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_MBTOWC
499*12720SWyllys.Ingersoll@Sun.COM #  define LONG64 long
500*12720SWyllys.Ingersoll@Sun.COM #  define ULONG64 unsigned LONG64
501*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_LONG_FORMAT "%ld"
502*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_ULONG_FORMAT "%lu"
503*12720SWyllys.Ingersoll@Sun.COM # else
504*12720SWyllys.Ingersoll@Sun.COM /* Default assumptions for supported functions */
505*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SNPRINTF
506*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRRCHR
507*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOD
508*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SSCANF
509*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOL
510*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_STRTOUL
511*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_SYS_TIMEB_H
512*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_FTIME
513*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_RAND_R
514*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GETHOSTBYNAME_R
515*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_GMTIME_R
516*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_LOCALTIME_R
517*12720SWyllys.Ingersoll@Sun.COM #  ifdef MB_LEN_MAX
518*12720SWyllys.Ingersoll@Sun.COM #   define HAVE_WCTOMB
519*12720SWyllys.Ingersoll@Sun.COM #   define HAVE_MBTOWC
520*12720SWyllys.Ingersoll@Sun.COM #  endif
521*12720SWyllys.Ingersoll@Sun.COM # endif
522*12720SWyllys.Ingersoll@Sun.COM #endif
523*12720SWyllys.Ingersoll@Sun.COM 
524*12720SWyllys.Ingersoll@Sun.COM /* native Win and HP-UX compilers don't like empty structs */
525*12720SWyllys.Ingersoll@Sun.COM #if defined(WIN32) || defined(HP_UX) || defined(_AIX41) || defined(_AIX43) || defined(VXWORKS)
526*12720SWyllys.Ingersoll@Sun.COM # define WITH_NOEMPTYSTRUCT
527*12720SWyllys.Ingersoll@Sun.COM #endif
528*12720SWyllys.Ingersoll@Sun.COM 
529*12720SWyllys.Ingersoll@Sun.COM #ifdef HP_UX
530*12720SWyllys.Ingersoll@Sun.COM # undef HAVE_STRTOLL
531*12720SWyllys.Ingersoll@Sun.COM # undef HAVE_STRTOULL
532*12720SWyllys.Ingersoll@Sun.COM #endif
533*12720SWyllys.Ingersoll@Sun.COM 
534*12720SWyllys.Ingersoll@Sun.COM /* older OpenVMS TCP/IP stacks cannot handle 65536 bytes */
535*12720SWyllys.Ingersoll@Sun.COM #ifdef __VMS
536*12720SWyllys.Ingersoll@Sun.COM # ifndef SOAP_BUFLEN
537*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_BUFLEN (65535)
538*12720SWyllys.Ingersoll@Sun.COM # endif
539*12720SWyllys.Ingersoll@Sun.COM #endif
540*12720SWyllys.Ingersoll@Sun.COM 
541*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_C_LOCALE
542*12720SWyllys.Ingersoll@Sun.COM # include <xlocale.h>
543*12720SWyllys.Ingersoll@Sun.COM #else
544*12720SWyllys.Ingersoll@Sun.COM # undef HAVE_STRTOF_L
545*12720SWyllys.Ingersoll@Sun.COM # undef HAVE_STRTOD_L
546*12720SWyllys.Ingersoll@Sun.COM # undef HAVE_SSCANF_L
547*12720SWyllys.Ingersoll@Sun.COM # undef HAVE_SPRINTF_L
548*12720SWyllys.Ingersoll@Sun.COM #endif
549*12720SWyllys.Ingersoll@Sun.COM 
550*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NOSTDLIB
551*12720SWyllys.Ingersoll@Sun.COM # include <stdlib.h>
552*12720SWyllys.Ingersoll@Sun.COM # ifndef PALM
553*12720SWyllys.Ingersoll@Sun.COM #  include <stdio.h>
554*12720SWyllys.Ingersoll@Sun.COM #  include <string.h>
555*12720SWyllys.Ingersoll@Sun.COM # endif
556*12720SWyllys.Ingersoll@Sun.COM # include <ctype.h>
557*12720SWyllys.Ingersoll@Sun.COM # include <limits.h>
558*12720SWyllys.Ingersoll@Sun.COM #endif
559*12720SWyllys.Ingersoll@Sun.COM 
560*12720SWyllys.Ingersoll@Sun.COM #ifdef HAVE_POLL
561*12720SWyllys.Ingersoll@Sun.COM # include <poll.h>
562*12720SWyllys.Ingersoll@Sun.COM #endif
563*12720SWyllys.Ingersoll@Sun.COM 
564*12720SWyllys.Ingersoll@Sun.COM #if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
565*12720SWyllys.Ingersoll@Sun.COM # include <string>
566*12720SWyllys.Ingersoll@Sun.COM # include <iostream>
567*12720SWyllys.Ingersoll@Sun.COM #endif
568*12720SWyllys.Ingersoll@Sun.COM 
569*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_NOHTTP
570*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_NOIO
571*12720SWyllys.Ingersoll@Sun.COM #  define WITH_NOIO
572*12720SWyllys.Ingersoll@Sun.COM #  undef WITH_COOKIES
573*12720SWyllys.Ingersoll@Sun.COM # endif
574*12720SWyllys.Ingersoll@Sun.COM #endif
575*12720SWyllys.Ingersoll@Sun.COM 
576*12720SWyllys.Ingersoll@Sun.COM /* Suggestion when SOAP_FD_EXCEEDED error occurs:
577*12720SWyllys.Ingersoll@Sun.COM    Some systems allow increasing FD_SETSIZE before including sys/types.h:
578*12720SWyllys.Ingersoll@Sun.COM #define FD_SETSIZE (2048)
579*12720SWyllys.Ingersoll@Sun.COM */
580*12720SWyllys.Ingersoll@Sun.COM 
581*12720SWyllys.Ingersoll@Sun.COM #ifndef UNDER_CE
582*12720SWyllys.Ingersoll@Sun.COM # ifndef PALM
583*12720SWyllys.Ingersoll@Sun.COM #  ifndef WITH_NOIO
584*12720SWyllys.Ingersoll@Sun.COM #   include <errno.h>
585*12720SWyllys.Ingersoll@Sun.COM #   include <sys/types.h>
586*12720SWyllys.Ingersoll@Sun.COM #  endif
587*12720SWyllys.Ingersoll@Sun.COM #  ifndef WITH_LEAN
588*12720SWyllys.Ingersoll@Sun.COM #   ifdef HAVE_SYS_TIMEB_H
589*12720SWyllys.Ingersoll@Sun.COM #    include <sys/timeb.h>		/* for ftime() */
590*12720SWyllys.Ingersoll@Sun.COM #   endif
591*12720SWyllys.Ingersoll@Sun.COM #   include <time.h>
592*12720SWyllys.Ingersoll@Sun.COM #  endif
593*12720SWyllys.Ingersoll@Sun.COM # endif
594*12720SWyllys.Ingersoll@Sun.COM #endif
595*12720SWyllys.Ingersoll@Sun.COM 
596*12720SWyllys.Ingersoll@Sun.COM #ifdef OPENSERVER
597*12720SWyllys.Ingersoll@Sun.COM # include <sys/socket.h>
598*12720SWyllys.Ingersoll@Sun.COM # include <sys/stream.h>
599*12720SWyllys.Ingersoll@Sun.COM # include <sys/protosw.h>
600*12720SWyllys.Ingersoll@Sun.COM   extern int h_errno;
601*12720SWyllys.Ingersoll@Sun.COM #endif
602*12720SWyllys.Ingersoll@Sun.COM 
603*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NOIO
604*12720SWyllys.Ingersoll@Sun.COM # ifndef WIN32
605*12720SWyllys.Ingersoll@Sun.COM #  ifndef PALM
606*12720SWyllys.Ingersoll@Sun.COM #   include <sys/socket.h>
607*12720SWyllys.Ingersoll@Sun.COM #   ifdef VXWORKS
608*12720SWyllys.Ingersoll@Sun.COM #    include <sockLib.h>
609*12720SWyllys.Ingersoll@Sun.COM #    include <selectLib.h>
610*12720SWyllys.Ingersoll@Sun.COM #    ifndef _WRS_KERNEL
611*12720SWyllys.Ingersoll@Sun.COM #     include <strings.h>
612*12720SWyllys.Ingersoll@Sun.COM #    endif
613*12720SWyllys.Ingersoll@Sun.COM #   else
614*12720SWyllys.Ingersoll@Sun.COM #    ifndef SYMBIAN
615*12720SWyllys.Ingersoll@Sun.COM #     include <strings.h>
616*12720SWyllys.Ingersoll@Sun.COM #    endif
617*12720SWyllys.Ingersoll@Sun.COM #   endif
618*12720SWyllys.Ingersoll@Sun.COM #   ifdef SUN_OS
619*12720SWyllys.Ingersoll@Sun.COM #    include <sys/stream.h>		/* SUN */
620*12720SWyllys.Ingersoll@Sun.COM #    include <sys/socketvar.h>		/* SUN < 2.8 (?) */
621*12720SWyllys.Ingersoll@Sun.COM #   endif
622*12720SWyllys.Ingersoll@Sun.COM #   ifdef VXWORKS
623*12720SWyllys.Ingersoll@Sun.COM #    ifdef _WRS_KERNEL
624*12720SWyllys.Ingersoll@Sun.COM #     include <sys/times.h>
625*12720SWyllys.Ingersoll@Sun.COM #    endif
626*12720SWyllys.Ingersoll@Sun.COM #   else
627*12720SWyllys.Ingersoll@Sun.COM #    include <sys/time.h>
628*12720SWyllys.Ingersoll@Sun.COM #   endif
629*12720SWyllys.Ingersoll@Sun.COM #   include <netinet/in.h>
630*12720SWyllys.Ingersoll@Sun.COM #   ifdef OS390
631*12720SWyllys.Ingersoll@Sun.COM #    include <netinet/tcp_var.h>
632*12720SWyllys.Ingersoll@Sun.COM #   else
633*12720SWyllys.Ingersoll@Sun.COM #    include <netinet/tcp.h>          /* TCP_NODELAY */
634*12720SWyllys.Ingersoll@Sun.COM #   endif
635*12720SWyllys.Ingersoll@Sun.COM #   include <arpa/inet.h>
636*12720SWyllys.Ingersoll@Sun.COM #  endif
637*12720SWyllys.Ingersoll@Sun.COM # endif
638*12720SWyllys.Ingersoll@Sun.COM #endif
639*12720SWyllys.Ingersoll@Sun.COM 
640*12720SWyllys.Ingersoll@Sun.COM #ifdef WIN32
641*12720SWyllys.Ingersoll@Sun.COM # define SOAP_WINSOCKINT int
642*12720SWyllys.Ingersoll@Sun.COM #else
643*12720SWyllys.Ingersoll@Sun.COM # define SOAP_WINSOCKINT size_t
644*12720SWyllys.Ingersoll@Sun.COM #endif
645*12720SWyllys.Ingersoll@Sun.COM 
646*12720SWyllys.Ingersoll@Sun.COM #ifdef WIN32
647*12720SWyllys.Ingersoll@Sun.COM # ifndef UNDER_CE
648*12720SWyllys.Ingersoll@Sun.COM #  include <io.h>
649*12720SWyllys.Ingersoll@Sun.COM #  include <fcntl.h>
650*12720SWyllys.Ingersoll@Sun.COM # endif
651*12720SWyllys.Ingersoll@Sun.COM # ifdef WITH_IPV6
652*12720SWyllys.Ingersoll@Sun.COM #  include <winsock2.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
653*12720SWyllys.Ingersoll@Sun.COM #  include <ws2tcpip.h>
654*12720SWyllys.Ingersoll@Sun.COM #  include <wspiapi.h>
655*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_GAI_STRERROR gai_strerrorA
656*12720SWyllys.Ingersoll@Sun.COM # else
657*12720SWyllys.Ingersoll@Sun.COM #  ifndef __BORLANDC__
658*12720SWyllys.Ingersoll@Sun.COM #   include <winsock.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
659*12720SWyllys.Ingersoll@Sun.COM /* # include <winsock2.h> */ /* Alternative: use winsock2 (not available with eVC), enable this line and comment out the line above */
660*12720SWyllys.Ingersoll@Sun.COM #  else
661*12720SWyllys.Ingersoll@Sun.COM #   include <winsock2.h> /* Borland C */
662*12720SWyllys.Ingersoll@Sun.COM #  endif
663*12720SWyllys.Ingersoll@Sun.COM # endif
664*12720SWyllys.Ingersoll@Sun.COM #else
665*12720SWyllys.Ingersoll@Sun.COM # ifdef VXWORKS
666*12720SWyllys.Ingersoll@Sun.COM #  include <hostLib.h>
667*12720SWyllys.Ingersoll@Sun.COM #  include <ioctl.h>
668*12720SWyllys.Ingersoll@Sun.COM #  include <ioLib.h>
669*12720SWyllys.Ingersoll@Sun.COM # endif
670*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_NOIO
671*12720SWyllys.Ingersoll@Sun.COM #  ifndef PALM
672*12720SWyllys.Ingersoll@Sun.COM #   include <netdb.h>
673*12720SWyllys.Ingersoll@Sun.COM #   include <netinet/in.h>
674*12720SWyllys.Ingersoll@Sun.COM #   include <unistd.h>
675*12720SWyllys.Ingersoll@Sun.COM #   include <fcntl.h>
676*12720SWyllys.Ingersoll@Sun.COM #   ifdef _AIX41
677*12720SWyllys.Ingersoll@Sun.COM #    include <sys/select.h>
678*12720SWyllys.Ingersoll@Sun.COM #   endif
679*12720SWyllys.Ingersoll@Sun.COM #  endif
680*12720SWyllys.Ingersoll@Sun.COM # endif
681*12720SWyllys.Ingersoll@Sun.COM #endif
682*12720SWyllys.Ingersoll@Sun.COM 
683*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_FASTCGI
684*12720SWyllys.Ingersoll@Sun.COM # include <fcgi_stdio.h>
685*12720SWyllys.Ingersoll@Sun.COM #endif
686*12720SWyllys.Ingersoll@Sun.COM 
687*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_OPENSSL
688*12720SWyllys.Ingersoll@Sun.COM # define OPENSSL_NO_KRB5
689*12720SWyllys.Ingersoll@Sun.COM # include <openssl/bio.h>
690*12720SWyllys.Ingersoll@Sun.COM # include <openssl/err.h>
691*12720SWyllys.Ingersoll@Sun.COM # include <openssl/rand.h>
692*12720SWyllys.Ingersoll@Sun.COM # include <openssl/ssl.h>
693*12720SWyllys.Ingersoll@Sun.COM # include <openssl/x509v3.h>
694*12720SWyllys.Ingersoll@Sun.COM # ifndef ALLOW_OLD_VERSIONS
695*12720SWyllys.Ingersoll@Sun.COM #  if (OPENSSL_VERSION_NUMBER < 0x00905100L)
696*12720SWyllys.Ingersoll@Sun.COM #   error "Must use OpenSSL 0.9.6 or later"
697*12720SWyllys.Ingersoll@Sun.COM #  endif
698*12720SWyllys.Ingersoll@Sun.COM # endif
699*12720SWyllys.Ingersoll@Sun.COM #endif
700*12720SWyllys.Ingersoll@Sun.COM 
701*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_GNUTLS
702*12720SWyllys.Ingersoll@Sun.COM # include <gnutls/gnutls.h>
703*12720SWyllys.Ingersoll@Sun.COM #endif
704*12720SWyllys.Ingersoll@Sun.COM 
705*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_GZIP
706*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_ZLIB
707*12720SWyllys.Ingersoll@Sun.COM #  define WITH_ZLIB
708*12720SWyllys.Ingersoll@Sun.COM # endif
709*12720SWyllys.Ingersoll@Sun.COM #endif
710*12720SWyllys.Ingersoll@Sun.COM 
711*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_CASEINSENSITIVETAGS
712*12720SWyllys.Ingersoll@Sun.COM # define SOAP_STRCMP soap_tag_cmp	/* case insensitve XML element/attribute names */
713*12720SWyllys.Ingersoll@Sun.COM #else
714*12720SWyllys.Ingersoll@Sun.COM # define SOAP_STRCMP strcmp		/* case sensitive XML element/attribute names */
715*12720SWyllys.Ingersoll@Sun.COM #endif
716*12720SWyllys.Ingersoll@Sun.COM 
717*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_ZLIB
718*12720SWyllys.Ingersoll@Sun.COM # include <zlib.h>
719*12720SWyllys.Ingersoll@Sun.COM #endif
720*12720SWyllys.Ingersoll@Sun.COM 
721*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NOSTDLIB
722*12720SWyllys.Ingersoll@Sun.COM # ifndef PALM
723*12720SWyllys.Ingersoll@Sun.COM #  include <math.h>	/* for isnan() */
724*12720SWyllys.Ingersoll@Sun.COM # endif
725*12720SWyllys.Ingersoll@Sun.COM #endif
726*12720SWyllys.Ingersoll@Sun.COM 
727*12720SWyllys.Ingersoll@Sun.COM /* #define DEBUG */ /* Uncomment to debug sending (in file SENT.log) receiving (in file RECV.log) and messages (in file TEST.log) */
728*12720SWyllys.Ingersoll@Sun.COM 
729*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
730*12720SWyllys.Ingersoll@Sun.COM extern "C" {
731*12720SWyllys.Ingersoll@Sun.COM #endif
732*12720SWyllys.Ingersoll@Sun.COM 
733*12720SWyllys.Ingersoll@Sun.COM /* Portability: define SOAP_SOCKLEN_T */
734*12720SWyllys.Ingersoll@Sun.COM #if defined(_AIX)
735*12720SWyllys.Ingersoll@Sun.COM # if defined(_AIX43)
736*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_SOCKLEN_T socklen_t
737*12720SWyllys.Ingersoll@Sun.COM # else
738*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_SOCKLEN_T int
739*12720SWyllys.Ingersoll@Sun.COM # endif
740*12720SWyllys.Ingersoll@Sun.COM #elif defined(SOCKLEN_T)
741*12720SWyllys.Ingersoll@Sun.COM # define SOAP_SOCKLEN_T SOCKLEN_T
742*12720SWyllys.Ingersoll@Sun.COM #elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(HP_UX)
743*12720SWyllys.Ingersoll@Sun.COM # define SOAP_SOCKLEN_T socklen_t
744*12720SWyllys.Ingersoll@Sun.COM #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS)
745*12720SWyllys.Ingersoll@Sun.COM # define SOAP_SOCKLEN_T int
746*12720SWyllys.Ingersoll@Sun.COM #else
747*12720SWyllys.Ingersoll@Sun.COM # define SOAP_SOCKLEN_T size_t
748*12720SWyllys.Ingersoll@Sun.COM #endif
749*12720SWyllys.Ingersoll@Sun.COM 
750*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_SOCKET
751*12720SWyllys.Ingersoll@Sun.COM # ifdef WIN32
752*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_SOCKET SOCKET
753*12720SWyllys.Ingersoll@Sun.COM #  define soap_closesocket(n) closesocket(n)
754*12720SWyllys.Ingersoll@Sun.COM # else
755*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_SOCKET int
756*12720SWyllys.Ingersoll@Sun.COM #  define soap_closesocket(n) close(n)
757*12720SWyllys.Ingersoll@Sun.COM # endif
758*12720SWyllys.Ingersoll@Sun.COM #endif
759*12720SWyllys.Ingersoll@Sun.COM 
760*12720SWyllys.Ingersoll@Sun.COM #define SOAP_INVALID_SOCKET ((SOAP_SOCKET)-1)
761*12720SWyllys.Ingersoll@Sun.COM #define soap_valid_socket(n) ((n) != SOAP_INVALID_SOCKET)
762*12720SWyllys.Ingersoll@Sun.COM 
763*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_GAI_STRERROR
764*12720SWyllys.Ingersoll@Sun.COM # define SOAP_GAI_STRERROR gai_strerror
765*12720SWyllys.Ingersoll@Sun.COM #endif
766*12720SWyllys.Ingersoll@Sun.COM 
767*12720SWyllys.Ingersoll@Sun.COM #ifndef FD_SETSIZE
768*12720SWyllys.Ingersoll@Sun.COM # define FD_SETSIZE (1024)
769*12720SWyllys.Ingersoll@Sun.COM #endif
770*12720SWyllys.Ingersoll@Sun.COM 
771*12720SWyllys.Ingersoll@Sun.COM #if defined(SYMBIAN)
772*12720SWyllys.Ingersoll@Sun.COM # define LONG64 long
773*12720SWyllys.Ingersoll@Sun.COM # define ULONG64 unsigned LONG64
774*12720SWyllys.Ingersoll@Sun.COM #elif !defined(WIN32) || defined(CYGWIN) || defined(__GLIBC__) || defined(__GNU__)
775*12720SWyllys.Ingersoll@Sun.COM # ifndef LONG64
776*12720SWyllys.Ingersoll@Sun.COM #  if defined(HAVE_STDINT_H)
777*12720SWyllys.Ingersoll@Sun.COM #   include <stdint.h>
778*12720SWyllys.Ingersoll@Sun.COM #   define LONG64 int64_t
779*12720SWyllys.Ingersoll@Sun.COM #   define ULONG64 uint64_t
780*12720SWyllys.Ingersoll@Sun.COM #  elif defined(__GLIBC__)
781*12720SWyllys.Ingersoll@Sun.COM #   include <bits/wordsize.h>
782*12720SWyllys.Ingersoll@Sun.COM #   if (__WORDSIZE == 64)
783*12720SWyllys.Ingersoll@Sun.COM #    define LONG64 int64_t
784*12720SWyllys.Ingersoll@Sun.COM #    define ULONG64 uint64_t
785*12720SWyllys.Ingersoll@Sun.COM #    ifndef SOAP_LONG_FORMAT
786*12720SWyllys.Ingersoll@Sun.COM #     define SOAP_LONG_FORMAT "%ld"
787*12720SWyllys.Ingersoll@Sun.COM #    endif
788*12720SWyllys.Ingersoll@Sun.COM #    ifndef SOAP_ULONG_FORMAT
789*12720SWyllys.Ingersoll@Sun.COM #     define SOAP_ULONG_FORMAT "%lu"
790*12720SWyllys.Ingersoll@Sun.COM #    endif
791*12720SWyllys.Ingersoll@Sun.COM #   else
792*12720SWyllys.Ingersoll@Sun.COM #    define LONG64 long long
793*12720SWyllys.Ingersoll@Sun.COM #    define ULONG64 unsigned LONG64
794*12720SWyllys.Ingersoll@Sun.COM #   endif
795*12720SWyllys.Ingersoll@Sun.COM #  else
796*12720SWyllys.Ingersoll@Sun.COM #   define LONG64 long long
797*12720SWyllys.Ingersoll@Sun.COM #   define ULONG64 unsigned LONG64
798*12720SWyllys.Ingersoll@Sun.COM #  endif
799*12720SWyllys.Ingersoll@Sun.COM # endif
800*12720SWyllys.Ingersoll@Sun.COM #elif defined(UNDER_CE)
801*12720SWyllys.Ingersoll@Sun.COM # define LONG64 __int64
802*12720SWyllys.Ingersoll@Sun.COM # define ULONG64 unsigned LONG64
803*12720SWyllys.Ingersoll@Sun.COM #elif defined(__BORLANDC__)
804*12720SWyllys.Ingersoll@Sun.COM # define LONG64 __int64
805*12720SWyllys.Ingersoll@Sun.COM # define ULONG64 unsigned LONG64
806*12720SWyllys.Ingersoll@Sun.COM #endif
807*12720SWyllys.Ingersoll@Sun.COM 
808*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_LONG_FORMAT
809*12720SWyllys.Ingersoll@Sun.COM # define SOAP_LONG_FORMAT "%lld"	/* printf format for 64 bit ints */
810*12720SWyllys.Ingersoll@Sun.COM #endif
811*12720SWyllys.Ingersoll@Sun.COM 
812*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_ULONG_FORMAT
813*12720SWyllys.Ingersoll@Sun.COM # define SOAP_ULONG_FORMAT "%llu"	/* printf format for unsigned 64 bit ints */
814*12720SWyllys.Ingersoll@Sun.COM #endif
815*12720SWyllys.Ingersoll@Sun.COM 
816*12720SWyllys.Ingersoll@Sun.COM #if defined(WIN32) && !defined(CYGWIN)
817*12720SWyllys.Ingersoll@Sun.COM # define soap_int32 __int32
818*12720SWyllys.Ingersoll@Sun.COM #elif defined(SYMBIAN)
819*12720SWyllys.Ingersoll@Sun.COM # define soap_int32 long
820*12720SWyllys.Ingersoll@Sun.COM #elif defined(PALM)
821*12720SWyllys.Ingersoll@Sun.COM # define soap_int32 Int32
822*12720SWyllys.Ingersoll@Sun.COM #elif defined(_AIX)
823*12720SWyllys.Ingersoll@Sun.COM # define SOAP_NEW(type) new type	/* AIX compilers don't like new (t) */
824*12720SWyllys.Ingersoll@Sun.COM # if defined(_AIX43)
825*12720SWyllys.Ingersoll@Sun.COM #  define soap_int32 int32_t
826*12720SWyllys.Ingersoll@Sun.COM # else
827*12720SWyllys.Ingersoll@Sun.COM #  define soap_int32 signed int
828*12720SWyllys.Ingersoll@Sun.COM # endif
829*12720SWyllys.Ingersoll@Sun.COM #else
830*12720SWyllys.Ingersoll@Sun.COM # define soap_int32 int32_t
831*12720SWyllys.Ingersoll@Sun.COM #endif
832*12720SWyllys.Ingersoll@Sun.COM 
833*12720SWyllys.Ingersoll@Sun.COM #ifdef WIN32
834*12720SWyllys.Ingersoll@Sun.COM # define SOAP_ERANGE ERANGE
835*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EINTR WSAEINTR
836*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EAGAIN WSAEWOULDBLOCK
837*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EWOULDBLOCK WSAEWOULDBLOCK
838*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EINPROGRESS WSAEINPROGRESS
839*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EADDRINUSE WSAEADDRINUSE
840*12720SWyllys.Ingersoll@Sun.COM #else
841*12720SWyllys.Ingersoll@Sun.COM # define SOAP_ERANGE ERANGE
842*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EINTR EINTR
843*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EAGAIN EAGAIN
844*12720SWyllys.Ingersoll@Sun.COM # define SOAP_EADDRINUSE EADDRINUSE
845*12720SWyllys.Ingersoll@Sun.COM # ifdef SYMBIAN
846*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_EWOULDBLOCK 9898
847*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_EINPROGRESS 9899
848*12720SWyllys.Ingersoll@Sun.COM # else
849*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_EWOULDBLOCK EWOULDBLOCK
850*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_EINPROGRESS EINPROGRESS
851*12720SWyllys.Ingersoll@Sun.COM # endif
852*12720SWyllys.Ingersoll@Sun.COM #endif
853*12720SWyllys.Ingersoll@Sun.COM 
854*12720SWyllys.Ingersoll@Sun.COM #ifdef WIN32
855*12720SWyllys.Ingersoll@Sun.COM # ifdef UNDER_CE
856*12720SWyllys.Ingersoll@Sun.COM #  define soap_errno GetLastError()
857*12720SWyllys.Ingersoll@Sun.COM #  define soap_socket_errno(s) GetLastError()
858*12720SWyllys.Ingersoll@Sun.COM #  define soap_reset_errno SetLastError(0)
859*12720SWyllys.Ingersoll@Sun.COM # else
860*12720SWyllys.Ingersoll@Sun.COM #  define soap_errno GetLastError()
861*12720SWyllys.Ingersoll@Sun.COM #  define soap_socket_errno(s) WSAGetLastError()
862*12720SWyllys.Ingersoll@Sun.COM #  define soap_reset_errno SetLastError(0)
863*12720SWyllys.Ingersoll@Sun.COM # endif
864*12720SWyllys.Ingersoll@Sun.COM #else
865*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_NOIO
866*12720SWyllys.Ingersoll@Sun.COM #  define soap_errno errno
867*12720SWyllys.Ingersoll@Sun.COM #  define soap_socket_errno(s) errno
868*12720SWyllys.Ingersoll@Sun.COM #  define soap_reset_errno (errno = 0)
869*12720SWyllys.Ingersoll@Sun.COM # else
870*12720SWyllys.Ingersoll@Sun.COM #  define soap_errno 0
871*12720SWyllys.Ingersoll@Sun.COM #  define soap_socket_errno(s) 0
872*12720SWyllys.Ingersoll@Sun.COM #  define soap_reset_errno
873*12720SWyllys.Ingersoll@Sun.COM # endif
874*12720SWyllys.Ingersoll@Sun.COM #endif
875*12720SWyllys.Ingersoll@Sun.COM 
876*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_BUFLEN
877*12720SWyllys.Ingersoll@Sun.COM # if !defined(WITH_LEAN)
878*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_BUFLEN (65536) /* buffer length for socket packets, also used by gethostbyname_r and UDP messages, so don't make this too small */
879*12720SWyllys.Ingersoll@Sun.COM # else
880*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_BUFLEN  (2048) /* lean size */
881*12720SWyllys.Ingersoll@Sun.COM # endif
882*12720SWyllys.Ingersoll@Sun.COM #endif
883*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_LABLEN
884*12720SWyllys.Ingersoll@Sun.COM # define SOAP_LABLEN     (256) /* initial look-aside buffer length */
885*12720SWyllys.Ingersoll@Sun.COM #endif
886*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_PTRBLK
887*12720SWyllys.Ingersoll@Sun.COM # define SOAP_PTRBLK     (32) /* block allocation for pointer hash table chains */
888*12720SWyllys.Ingersoll@Sun.COM #endif
889*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_PTRHASH
890*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
891*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_PTRHASH (1024) /* size of pointer analysis hash table (must be power of 2) */
892*12720SWyllys.Ingersoll@Sun.COM # else
893*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_PTRHASH   (32)
894*12720SWyllys.Ingersoll@Sun.COM # endif
895*12720SWyllys.Ingersoll@Sun.COM #endif
896*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_IDHASH
897*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
898*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_IDHASH  (1999) /* prime size of hash table for parsed id/ref */
899*12720SWyllys.Ingersoll@Sun.COM # else
900*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_IDHASH    (19) /* 19, 199 */
901*12720SWyllys.Ingersoll@Sun.COM # endif
902*12720SWyllys.Ingersoll@Sun.COM #endif
903*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_BLKLEN
904*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
905*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_BLKLEN   (256) /* size of blocks to collect long strings and XML attributes */
906*12720SWyllys.Ingersoll@Sun.COM # else
907*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_BLKLEN    (32)
908*12720SWyllys.Ingersoll@Sun.COM # endif
909*12720SWyllys.Ingersoll@Sun.COM #endif
910*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_TAGLEN
911*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
912*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_TAGLEN  (1024) /* maximum length of XML element tag/attribute name or host/path name + 1 */
913*12720SWyllys.Ingersoll@Sun.COM # else
914*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_TAGLEN    (64)
915*12720SWyllys.Ingersoll@Sun.COM # endif
916*12720SWyllys.Ingersoll@Sun.COM #endif
917*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_HDRLEN
918*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
919*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_HDRLEN  (8192) /* maximum length of HTTP header line (must be >4096 to read cookies) */
920*12720SWyllys.Ingersoll@Sun.COM # else
921*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_HDRLEN  (1024)
922*12720SWyllys.Ingersoll@Sun.COM # endif
923*12720SWyllys.Ingersoll@Sun.COM #endif
924*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_MAXDIMS
925*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
926*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_MAXDIMS	 (16) /* maximum array dimensions (array nestings) must be less than 64 to protect soap->tmpbuf */
927*12720SWyllys.Ingersoll@Sun.COM # else
928*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_MAXDIMS	  (4)
929*12720SWyllys.Ingersoll@Sun.COM # endif
930*12720SWyllys.Ingersoll@Sun.COM #endif
931*12720SWyllys.Ingersoll@Sun.COM 
932*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_MAXLOGS
933*12720SWyllys.Ingersoll@Sun.COM # define SOAP_MAXLOGS	  (3) /* max number of debug logs per struct soap environment */
934*12720SWyllys.Ingersoll@Sun.COM # define SOAP_INDEX_RECV  (0)
935*12720SWyllys.Ingersoll@Sun.COM # define SOAP_INDEX_SENT  (1)
936*12720SWyllys.Ingersoll@Sun.COM # define SOAP_INDEX_TEST  (2)
937*12720SWyllys.Ingersoll@Sun.COM #endif
938*12720SWyllys.Ingersoll@Sun.COM 
939*12720SWyllys.Ingersoll@Sun.COM /* Max iterations in soap_serve() to keep server connection alive */
940*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_MAXKEEPALIVE
941*12720SWyllys.Ingersoll@Sun.COM # define SOAP_MAXKEEPALIVE (100)
942*12720SWyllys.Ingersoll@Sun.COM #endif
943*12720SWyllys.Ingersoll@Sun.COM 
944*12720SWyllys.Ingersoll@Sun.COM /* Trusted max size of inbound SOAP array for compound array allocation.
945*12720SWyllys.Ingersoll@Sun.COM    Increase if necessary to allow larger arrays.
946*12720SWyllys.Ingersoll@Sun.COM */
947*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_MAXARRAYSIZE
948*12720SWyllys.Ingersoll@Sun.COM # define SOAP_MAXARRAYSIZE (1000000)
949*12720SWyllys.Ingersoll@Sun.COM #endif
950*12720SWyllys.Ingersoll@Sun.COM 
951*12720SWyllys.Ingersoll@Sun.COM #ifdef VXWORKS
952*12720SWyllys.Ingersoll@Sun.COM # ifdef WMW_RPM_IO
953*12720SWyllys.Ingersoll@Sun.COM #  include "httpLib.h"
954*12720SWyllys.Ingersoll@Sun.COM # endif
955*12720SWyllys.Ingersoll@Sun.COM # ifdef __INCmathh
956*12720SWyllys.Ingersoll@Sun.COM #  include <private/mathP.h>
957*12720SWyllys.Ingersoll@Sun.COM #  ifndef HAVE_ISNAN
958*12720SWyllys.Ingersoll@Sun.COM #   define HAVE_ISNAN
959*12720SWyllys.Ingersoll@Sun.COM #  endif
960*12720SWyllys.Ingersoll@Sun.COM #  ifndef soap_isnan
961*12720SWyllys.Ingersoll@Sun.COM #   define soap_isnan(num) isNan(num)
962*12720SWyllys.Ingersoll@Sun.COM #  endif
963*12720SWyllys.Ingersoll@Sun.COM # endif
964*12720SWyllys.Ingersoll@Sun.COM # ifdef WM_SECURE_KEY_STORAGE
965*12720SWyllys.Ingersoll@Sun.COM #  include <ipcom_key_db.h>
966*12720SWyllys.Ingersoll@Sun.COM # endif
967*12720SWyllys.Ingersoll@Sun.COM #endif
968*12720SWyllys.Ingersoll@Sun.COM 
969*12720SWyllys.Ingersoll@Sun.COM #ifdef WIN32
970*12720SWyllys.Ingersoll@Sun.COM # include <float.h>
971*12720SWyllys.Ingersoll@Sun.COM # ifndef HAVE_ISNAN
972*12720SWyllys.Ingersoll@Sun.COM #  define HAVE_ISNAN
973*12720SWyllys.Ingersoll@Sun.COM # endif
974*12720SWyllys.Ingersoll@Sun.COM # define soap_isnan(num) _isnan(num)
975*12720SWyllys.Ingersoll@Sun.COM #endif
976*12720SWyllys.Ingersoll@Sun.COM 
977*12720SWyllys.Ingersoll@Sun.COM #ifdef SUN_OS
978*12720SWyllys.Ingersoll@Sun.COM # define HAVE_ISNAN
979*12720SWyllys.Ingersoll@Sun.COM #endif
980*12720SWyllys.Ingersoll@Sun.COM 
981*12720SWyllys.Ingersoll@Sun.COM #ifdef __APPLE__
982*12720SWyllys.Ingersoll@Sun.COM # ifdef __cplusplus
983*12720SWyllys.Ingersoll@Sun.COM #  ifndef isnan
984*12720SWyllys.Ingersoll@Sun.COM extern "C" int isnan(double);
985*12720SWyllys.Ingersoll@Sun.COM #  endif
986*12720SWyllys.Ingersoll@Sun.COM # endif
987*12720SWyllys.Ingersoll@Sun.COM # define HAVE_ISNAN
988*12720SWyllys.Ingersoll@Sun.COM #endif
989*12720SWyllys.Ingersoll@Sun.COM 
990*12720SWyllys.Ingersoll@Sun.COM #if !defined(HAVE_ISNAN) && (defined(_MATH_H) || defined(_MATH_INCLUDED))
991*12720SWyllys.Ingersoll@Sun.COM # define HAVE_ISNAN
992*12720SWyllys.Ingersoll@Sun.COM #endif
993*12720SWyllys.Ingersoll@Sun.COM 
994*12720SWyllys.Ingersoll@Sun.COM extern const struct soap_double_nan { unsigned int n1, n2; } soap_double_nan;
995*12720SWyllys.Ingersoll@Sun.COM 
996*12720SWyllys.Ingersoll@Sun.COM #ifdef VXWORKS
997*12720SWyllys.Ingersoll@Sun.COM # ifndef FLT_MAX
998*12720SWyllys.Ingersoll@Sun.COM #  define FLT_MAX _ARCH_FLT_MAX
999*12720SWyllys.Ingersoll@Sun.COM # endif
1000*12720SWyllys.Ingersoll@Sun.COM # ifndef DBL_MAX
1001*12720SWyllys.Ingersoll@Sun.COM #  define DBL_MAX _ARCH_DBL_MAX
1002*12720SWyllys.Ingersoll@Sun.COM # endif
1003*12720SWyllys.Ingersoll@Sun.COM #endif
1004*12720SWyllys.Ingersoll@Sun.COM 
1005*12720SWyllys.Ingersoll@Sun.COM #ifndef FLT_NAN
1006*12720SWyllys.Ingersoll@Sun.COM # define FLT_NAN (*(float*)(void*)&soap_double_nan)
1007*12720SWyllys.Ingersoll@Sun.COM #endif
1008*12720SWyllys.Ingersoll@Sun.COM 
1009*12720SWyllys.Ingersoll@Sun.COM #ifndef FLT_PINFTY
1010*12720SWyllys.Ingersoll@Sun.COM # if defined(FLT_MAX)
1011*12720SWyllys.Ingersoll@Sun.COM #  define FLT_PINFTY FLT_MAX
1012*12720SWyllys.Ingersoll@Sun.COM # elif defined(HUGE_VALF)
1013*12720SWyllys.Ingersoll@Sun.COM #  define FLT_PINFTY (float)HUGE_VALF
1014*12720SWyllys.Ingersoll@Sun.COM # elif defined(HUGE_VAL)
1015*12720SWyllys.Ingersoll@Sun.COM #  define FLT_PINFTY (float)HUGE_VAL
1016*12720SWyllys.Ingersoll@Sun.COM # elif defined(FLOAT_MAX)
1017*12720SWyllys.Ingersoll@Sun.COM #  define FLT_PINFTY FLOAT_MAX
1018*12720SWyllys.Ingersoll@Sun.COM # else
1019*12720SWyllys.Ingersoll@Sun.COM #  define FLT_PINFTY (3.40282347e+38F)
1020*12720SWyllys.Ingersoll@Sun.COM # endif
1021*12720SWyllys.Ingersoll@Sun.COM #endif
1022*12720SWyllys.Ingersoll@Sun.COM 
1023*12720SWyllys.Ingersoll@Sun.COM #ifndef FLT_NINFTY
1024*12720SWyllys.Ingersoll@Sun.COM # define FLT_NINFTY (-FLT_PINFTY)
1025*12720SWyllys.Ingersoll@Sun.COM #endif
1026*12720SWyllys.Ingersoll@Sun.COM 
1027*12720SWyllys.Ingersoll@Sun.COM #ifndef DBL_NAN
1028*12720SWyllys.Ingersoll@Sun.COM # define DBL_NAN (*(double*)(void*)&soap_double_nan)
1029*12720SWyllys.Ingersoll@Sun.COM #endif
1030*12720SWyllys.Ingersoll@Sun.COM 
1031*12720SWyllys.Ingersoll@Sun.COM #ifndef DBL_PINFTY
1032*12720SWyllys.Ingersoll@Sun.COM # if defined(DBL_MAX)
1033*12720SWyllys.Ingersoll@Sun.COM #  define DBL_PINFTY DBL_MAX
1034*12720SWyllys.Ingersoll@Sun.COM # elif defined(HUGE_VALF)
1035*12720SWyllys.Ingersoll@Sun.COM #  define DBL_PINFTY (double)HUGE_VALF
1036*12720SWyllys.Ingersoll@Sun.COM # elif defined(HUGE_VAL)
1037*12720SWyllys.Ingersoll@Sun.COM #  define DBL_PINFTY (double)HUGE_VAL
1038*12720SWyllys.Ingersoll@Sun.COM # elif defined(DOUBLE_MAX)
1039*12720SWyllys.Ingersoll@Sun.COM #  define DBL_PINFTY DOUBLE_MAX
1040*12720SWyllys.Ingersoll@Sun.COM # else
1041*12720SWyllys.Ingersoll@Sun.COM #  define DBL_PINFTY (1.7976931348623157e+308)
1042*12720SWyllys.Ingersoll@Sun.COM # endif
1043*12720SWyllys.Ingersoll@Sun.COM #endif
1044*12720SWyllys.Ingersoll@Sun.COM 
1045*12720SWyllys.Ingersoll@Sun.COM #ifndef DBL_NINFTY
1046*12720SWyllys.Ingersoll@Sun.COM # define DBL_NINFTY (-DBL_PINFTY)
1047*12720SWyllys.Ingersoll@Sun.COM #endif
1048*12720SWyllys.Ingersoll@Sun.COM 
1049*12720SWyllys.Ingersoll@Sun.COM #ifndef soap_isnan
1050*12720SWyllys.Ingersoll@Sun.COM # ifdef HAVE_ISNAN
1051*12720SWyllys.Ingersoll@Sun.COM #  define soap_isnan(n) isnan(n)
1052*12720SWyllys.Ingersoll@Sun.COM # else
1053*12720SWyllys.Ingersoll@Sun.COM #  define soap_isnan(n) (0)
1054*12720SWyllys.Ingersoll@Sun.COM # endif
1055*12720SWyllys.Ingersoll@Sun.COM #endif
1056*12720SWyllys.Ingersoll@Sun.COM 
1057*12720SWyllys.Ingersoll@Sun.COM #define soap_ispinfd(n) ((n) >= DBL_PINFTY)
1058*12720SWyllys.Ingersoll@Sun.COM #define soap_ispinff(n) ((n) >= FLT_PINFTY)
1059*12720SWyllys.Ingersoll@Sun.COM #define soap_isninfd(n) ((n) <= DBL_NINFTY)
1060*12720SWyllys.Ingersoll@Sun.COM #define soap_isninff(n) ((n) <= FLT_NINFTY)
1061*12720SWyllys.Ingersoll@Sun.COM 
1062*12720SWyllys.Ingersoll@Sun.COM /* gSOAP error codes */
1063*12720SWyllys.Ingersoll@Sun.COM 
1064*12720SWyllys.Ingersoll@Sun.COM #define SOAP_EOF			EOF
1065*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ERR			EOF
1066*12720SWyllys.Ingersoll@Sun.COM #define SOAP_OK				0
1067*12720SWyllys.Ingersoll@Sun.COM #define SOAP_CLI_FAULT			1
1068*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SVR_FAULT			2
1069*12720SWyllys.Ingersoll@Sun.COM #define SOAP_TAG_MISMATCH		3
1070*12720SWyllys.Ingersoll@Sun.COM #define SOAP_TYPE			4
1071*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SYNTAX_ERROR		5
1072*12720SWyllys.Ingersoll@Sun.COM #define SOAP_NO_TAG			6
1073*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IOB			7
1074*12720SWyllys.Ingersoll@Sun.COM #define SOAP_MUSTUNDERSTAND		8
1075*12720SWyllys.Ingersoll@Sun.COM #define SOAP_NAMESPACE			9
1076*12720SWyllys.Ingersoll@Sun.COM #define SOAP_USER_ERROR			10
1077*12720SWyllys.Ingersoll@Sun.COM #define SOAP_FATAL_ERROR		11
1078*12720SWyllys.Ingersoll@Sun.COM #define SOAP_FAULT			12
1079*12720SWyllys.Ingersoll@Sun.COM #define SOAP_NO_METHOD			13
1080*12720SWyllys.Ingersoll@Sun.COM #define SOAP_NO_DATA			14
1081*12720SWyllys.Ingersoll@Sun.COM #define SOAP_GET_METHOD			15
1082*12720SWyllys.Ingersoll@Sun.COM #define SOAP_PUT_METHOD			16
1083*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DEL_METHOD			17
1084*12720SWyllys.Ingersoll@Sun.COM #define SOAP_HEAD_METHOD		18
1085*12720SWyllys.Ingersoll@Sun.COM #define SOAP_HTTP_METHOD		19
1086*12720SWyllys.Ingersoll@Sun.COM #define SOAP_EOM			20
1087*12720SWyllys.Ingersoll@Sun.COM #define SOAP_MOE			21
1088*12720SWyllys.Ingersoll@Sun.COM #define SOAP_HDR			22
1089*12720SWyllys.Ingersoll@Sun.COM #define SOAP_NULL			23
1090*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DUPLICATE_ID		24
1091*12720SWyllys.Ingersoll@Sun.COM #define SOAP_MISSING_ID			25
1092*12720SWyllys.Ingersoll@Sun.COM #define SOAP_HREF			26
1093*12720SWyllys.Ingersoll@Sun.COM #define SOAP_UDP_ERROR			27
1094*12720SWyllys.Ingersoll@Sun.COM #define SOAP_TCP_ERROR			28
1095*12720SWyllys.Ingersoll@Sun.COM #define SOAP_HTTP_ERROR			29
1096*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_ERROR			30
1097*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ZLIB_ERROR			31
1098*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_ERROR			32
1099*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_HREF			33
1100*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_MISMATCH		34
1101*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_END			35
1102*12720SWyllys.Ingersoll@Sun.COM #define SOAP_MIME_ERROR			36
1103*12720SWyllys.Ingersoll@Sun.COM #define SOAP_MIME_HREF			37
1104*12720SWyllys.Ingersoll@Sun.COM #define SOAP_MIME_END			38
1105*12720SWyllys.Ingersoll@Sun.COM #define SOAP_VERSIONMISMATCH		39
1106*12720SWyllys.Ingersoll@Sun.COM #define SOAP_PLUGIN_ERROR		40
1107*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DATAENCODINGUNKNOWN	41
1108*12720SWyllys.Ingersoll@Sun.COM #define SOAP_REQUIRED			42
1109*12720SWyllys.Ingersoll@Sun.COM #define SOAP_PROHIBITED			43
1110*12720SWyllys.Ingersoll@Sun.COM #define SOAP_OCCURS			44
1111*12720SWyllys.Ingersoll@Sun.COM #define SOAP_LENGTH			45
1112*12720SWyllys.Ingersoll@Sun.COM #define SOAP_FD_EXCEEDED		46
1113*12720SWyllys.Ingersoll@Sun.COM 
1114*12720SWyllys.Ingersoll@Sun.COM #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)
1115*12720SWyllys.Ingersoll@Sun.COM #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)
1116*12720SWyllys.Ingersoll@Sun.COM #define soap_tcp_error_check(e) ((e) == SOAP_EOF || (e) == SOAP_TCP_ERROR)
1117*12720SWyllys.Ingersoll@Sun.COM #define soap_ssl_error_check(e) ((e) == SOAP_SSL_ERROR)
1118*12720SWyllys.Ingersoll@Sun.COM #define soap_zlib_error_check(e) ((e) == SOAP_ZLIB_ERROR)
1119*12720SWyllys.Ingersoll@Sun.COM #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))
1120*12720SWyllys.Ingersoll@Sun.COM 
1121*12720SWyllys.Ingersoll@Sun.COM /* gSOAP HTTP response status codes 100 to 599 are reserved */
1122*12720SWyllys.Ingersoll@Sun.COM 
1123*12720SWyllys.Ingersoll@Sun.COM /* Codes 600 to 999 are user definable */
1124*12720SWyllys.Ingersoll@Sun.COM 
1125*12720SWyllys.Ingersoll@Sun.COM /* Exceptional gSOAP HTTP server response status codes >= 1000 */
1126*12720SWyllys.Ingersoll@Sun.COM 
1127*12720SWyllys.Ingersoll@Sun.COM #define SOAP_STOP		1000	/* No HTTP response */
1128*12720SWyllys.Ingersoll@Sun.COM #define SOAP_FORM		1001	/* Form request/response */
1129*12720SWyllys.Ingersoll@Sun.COM #define SOAP_HTML		1002	/* Custom HTML response */
1130*12720SWyllys.Ingersoll@Sun.COM #define SOAP_FILE		1003	/* Custom file-based response */
1131*12720SWyllys.Ingersoll@Sun.COM 
1132*12720SWyllys.Ingersoll@Sun.COM /* gSOAP HTTP method codes (client) */
1133*12720SWyllys.Ingersoll@Sun.COM 
1134*12720SWyllys.Ingersoll@Sun.COM #define SOAP_POST		2000	/* POST request */
1135*12720SWyllys.Ingersoll@Sun.COM #define SOAP_POST_FILE		2001	/* Custom file-based POST request */
1136*12720SWyllys.Ingersoll@Sun.COM #define SOAP_GET		2002	/* GET request */
1137*12720SWyllys.Ingersoll@Sun.COM 
1138*12720SWyllys.Ingersoll@Sun.COM /* gSOAP DIME */
1139*12720SWyllys.Ingersoll@Sun.COM 
1140*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_CF		0x01
1141*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_ME		0x02
1142*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_MB		0x04
1143*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_VERSION	0x08 /* DIME version 1 */
1144*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_MEDIA		0x10
1145*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DIME_ABSURI	0x20
1146*12720SWyllys.Ingersoll@Sun.COM 
1147*12720SWyllys.Ingersoll@Sun.COM /* gSOAP ZLIB */
1148*12720SWyllys.Ingersoll@Sun.COM 
1149*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ZLIB_NONE		0x00
1150*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ZLIB_DEFLATE	0x01
1151*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ZLIB_INFLATE	0x02
1152*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ZLIB_GZIP		0x02
1153*12720SWyllys.Ingersoll@Sun.COM 
1154*12720SWyllys.Ingersoll@Sun.COM /* gSOAP transport, connection, and content encoding modes */
1155*12720SWyllys.Ingersoll@Sun.COM 
1156*12720SWyllys.Ingersoll@Sun.COM typedef soap_int32 soap_mode;
1157*12720SWyllys.Ingersoll@Sun.COM 
1158*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO			0x00000003	/* IO mask */
1159*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO_FLUSH		0x00000000	/* flush output immediately, no buffering */
1160*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO_BUFFER		0x00000001	/* buffer output in packets of size SOAP_BUFLEN */
1161*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO_STORE		0x00000002	/* store entire output to determine length for transport */
1162*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO_CHUNK		0x00000003	/* use HTTP chunked transfer AND buffer packets */
1163*12720SWyllys.Ingersoll@Sun.COM 
1164*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO_UDP		0x00000004	/* TCP or UDP */
1165*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO_LENGTH		0x00000008	/* calc message length (internal) */
1166*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IO_KEEPALIVE	0x00000010	/* keep connection alive */
1167*12720SWyllys.Ingersoll@Sun.COM 
1168*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC		0x00000FFF	/* IO and ENC mask */
1169*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC_LATIN		0x00000020	/* in: accept iso-8859-1 */
1170*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC_XML		0x00000040	/* out: plain XML encoding, no HTTP header */
1171*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC_DIME		0x00000080
1172*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC_MIME		0x00000100
1173*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC_MTOM		0x00000200
1174*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC_ZLIB		0x00000400
1175*12720SWyllys.Ingersoll@Sun.COM #define SOAP_ENC_SSL		0x00000800
1176*12720SWyllys.Ingersoll@Sun.COM 
1177*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_STRICT		0x00001000	/* in: strict validation */
1178*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_INDENT		0x00002000	/* out: emit indented XML */
1179*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_IGNORENS	0x00004000	/* in: ignore namespaces */
1180*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_DEFAULTNS	0x00008000	/* out: emit xmlns="..." */
1181*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_CANONICAL	0x00010000	/* out: excC14N canonical XML */
1182*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_TREE		0x00020000	/* out: XML tree (no id/ref) */
1183*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_GRAPH		0x00040000	/* see DOM manual */
1184*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_NIL		0x00080000	/* out: NULLs as xsi:nil */
1185*12720SWyllys.Ingersoll@Sun.COM 
1186*12720SWyllys.Ingersoll@Sun.COM #define SOAP_C_NOIOB		0x00100000	/* don't fault on array index out of bounds (just ignore) */
1187*12720SWyllys.Ingersoll@Sun.COM #define SOAP_C_UTFSTRING	0x00200000	/* (de)serialize strings with UTF8 content */
1188*12720SWyllys.Ingersoll@Sun.COM #define SOAP_C_MBSTRING		0x00400000	/* (de)serialize strings with multi-byte content */
1189*12720SWyllys.Ingersoll@Sun.COM #define SOAP_C_NILSTRING	0x00800000	/* serialize empty strings as nil (omitted) */
1190*12720SWyllys.Ingersoll@Sun.COM 
1191*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_DOM		0x01000000
1192*12720SWyllys.Ingersoll@Sun.COM 
1193*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DOM_TREE		0x02000000
1194*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DOM_NODE		0x04000000
1195*12720SWyllys.Ingersoll@Sun.COM #define SOAP_DOM_ASIS		0x08000000
1196*12720SWyllys.Ingersoll@Sun.COM 
1197*12720SWyllys.Ingersoll@Sun.COM #define SOAP_MIME_POSTCHECK	0x10000000	/* MIME flag (internal) */
1198*12720SWyllys.Ingersoll@Sun.COM 
1199*12720SWyllys.Ingersoll@Sun.COM #define SOAP_XML_SEC		0x80000000	/* reserved for WS security */
1200*12720SWyllys.Ingersoll@Sun.COM 
1201*12720SWyllys.Ingersoll@Sun.COM /* WITH_XMLNS backward compatibility: always use XML default namespaces */
1202*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_XMLNS
1203*12720SWyllys.Ingersoll@Sun.COM # define SOAP_IO_DEFAULT		(SOAP_IO_FLUSH | SOAP_XML_DEFAULTNS)
1204*12720SWyllys.Ingersoll@Sun.COM #else
1205*12720SWyllys.Ingersoll@Sun.COM # define SOAP_IO_DEFAULT		SOAP_IO_FLUSH
1206*12720SWyllys.Ingersoll@Sun.COM #endif
1207*12720SWyllys.Ingersoll@Sun.COM 
1208*12720SWyllys.Ingersoll@Sun.COM /* SSL client/server authentication settings */
1209*12720SWyllys.Ingersoll@Sun.COM 
1210*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_NO_AUTHENTICATION		0x00	/* for testing purposes */
1211*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION	0x01	/* client requires server to authenticate */
1212*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION	0x02	/* server requires client to authenticate */
1213*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_SKIP_HOST_CHECK		0x04	/* client does not check the common name of the host in certificate */
1214*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_ALLOW_EXPIRED_CERTIFICATE	0x08	/* client does not check the expiration date of the host certificate */
1215*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_NO_DEFAULT_CA_PATH		0x10	/* don't use default_verify_paths */
1216*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_RSA				0x20	/* use RSA */
1217*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSLv3				0x40	/* SSL v3 only */
1218*12720SWyllys.Ingersoll@Sun.COM #define SOAP_TLSv1				0x80	/* TLS v1 only */
1219*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSLv3_TLSv1			0x00	/* SSL v3 and TLS v1 support by default (no SSL v1/v2) */
1220*12720SWyllys.Ingersoll@Sun.COM 
1221*12720SWyllys.Ingersoll@Sun.COM #define SOAP_SSL_DEFAULT			(SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION | SOAP_SSLv3_TLSv1)
1222*12720SWyllys.Ingersoll@Sun.COM 
1223*12720SWyllys.Ingersoll@Sun.COM /* state */
1224*12720SWyllys.Ingersoll@Sun.COM 
1225*12720SWyllys.Ingersoll@Sun.COM #define SOAP_NONE	0
1226*12720SWyllys.Ingersoll@Sun.COM #define SOAP_INIT	1
1227*12720SWyllys.Ingersoll@Sun.COM #define SOAP_COPY	2
1228*12720SWyllys.Ingersoll@Sun.COM 
1229*12720SWyllys.Ingersoll@Sun.COM #define soap_check_state(soap) (!(soap) || ((soap)->state != SOAP_INIT && (soap)->state != SOAP_COPY))
1230*12720SWyllys.Ingersoll@Sun.COM 
1231*12720SWyllys.Ingersoll@Sun.COM /* part */
1232*12720SWyllys.Ingersoll@Sun.COM 
1233*12720SWyllys.Ingersoll@Sun.COM #define SOAP_BEGIN		0
1234*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IN_ENVELOPE	2
1235*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IN_HEADER		3
1236*12720SWyllys.Ingersoll@Sun.COM #define SOAP_END_HEADER		4
1237*12720SWyllys.Ingersoll@Sun.COM #define SOAP_NO_BODY		5
1238*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IN_BODY		6
1239*12720SWyllys.Ingersoll@Sun.COM #define SOAP_END_BODY		7
1240*12720SWyllys.Ingersoll@Sun.COM #define SOAP_END_ENVELOPE	8
1241*12720SWyllys.Ingersoll@Sun.COM #define SOAP_END		9
1242*12720SWyllys.Ingersoll@Sun.COM #define SOAP_BEGIN_SECURITY	10
1243*12720SWyllys.Ingersoll@Sun.COM #define SOAP_IN_SECURITY	11
1244*12720SWyllys.Ingersoll@Sun.COM #define SOAP_END_SECURITY	12
1245*12720SWyllys.Ingersoll@Sun.COM 
1246*12720SWyllys.Ingersoll@Sun.COM /* DEBUG macros */
1247*12720SWyllys.Ingersoll@Sun.COM 
1248*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
1249*12720SWyllys.Ingersoll@Sun.COM # ifdef DEBUG
1250*12720SWyllys.Ingersoll@Sun.COM #  ifndef SOAP_DEBUG
1251*12720SWyllys.Ingersoll@Sun.COM #   define SOAP_DEBUG
1252*12720SWyllys.Ingersoll@Sun.COM #  endif
1253*12720SWyllys.Ingersoll@Sun.COM #  ifndef SOAP_MEM_DEBUG
1254*12720SWyllys.Ingersoll@Sun.COM #   define SOAP_MEM_DEBUG
1255*12720SWyllys.Ingersoll@Sun.COM #  endif
1256*12720SWyllys.Ingersoll@Sun.COM # endif
1257*12720SWyllys.Ingersoll@Sun.COM #endif
1258*12720SWyllys.Ingersoll@Sun.COM 
1259*12720SWyllys.Ingersoll@Sun.COM #ifdef SOAP_MEM_DEBUG
1260*12720SWyllys.Ingersoll@Sun.COM # ifndef SOAP_MALLOC
1261*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_MALLOC(soap, size) soap_track_malloc(soap, __FILE__, __LINE__, size)
1262*12720SWyllys.Ingersoll@Sun.COM # endif
1263*12720SWyllys.Ingersoll@Sun.COM # ifndef SOAP_FREE
1264*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_FREE(soap, ptr) soap_track_free(soap, __FILE__, __LINE__, ptr)
1265*12720SWyllys.Ingersoll@Sun.COM # endif
1266*12720SWyllys.Ingersoll@Sun.COM #endif
1267*12720SWyllys.Ingersoll@Sun.COM 
1268*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_MALLOC			/* use libc malloc */
1269*12720SWyllys.Ingersoll@Sun.COM # define SOAP_MALLOC(soap, size) malloc(size)
1270*12720SWyllys.Ingersoll@Sun.COM #endif
1271*12720SWyllys.Ingersoll@Sun.COM 
1272*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_FREE			/* use libc free */
1273*12720SWyllys.Ingersoll@Sun.COM # define SOAP_FREE(soap, ptr) free(ptr)
1274*12720SWyllys.Ingersoll@Sun.COM #endif
1275*12720SWyllys.Ingersoll@Sun.COM 
1276*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_NEW			/* use C++ new operator */
1277*12720SWyllys.Ingersoll@Sun.COM # if __GNUC__ < 2
1278*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_NEW(type) new type	/* old form w/o parenthesis */
1279*12720SWyllys.Ingersoll@Sun.COM # else
1280*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_NEW(type) new (type)	/* with parenthesis */
1281*12720SWyllys.Ingersoll@Sun.COM # endif
1282*12720SWyllys.Ingersoll@Sun.COM #endif
1283*12720SWyllys.Ingersoll@Sun.COM 
1284*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_NEW_COPY			/* use C++ new operator for ::copy() */
1285*12720SWyllys.Ingersoll@Sun.COM # define SOAP_NEW_COPY(clas) new clas
1286*12720SWyllys.Ingersoll@Sun.COM #endif
1287*12720SWyllys.Ingersoll@Sun.COM 
1288*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_DELETE			/* use C++ delete operator */
1289*12720SWyllys.Ingersoll@Sun.COM # define SOAP_DELETE(obj) delete obj
1290*12720SWyllys.Ingersoll@Sun.COM #endif
1291*12720SWyllys.Ingersoll@Sun.COM 
1292*12720SWyllys.Ingersoll@Sun.COM #ifndef SOAP_DELETE_ARRAY		/* use C++ delete[] operator */
1293*12720SWyllys.Ingersoll@Sun.COM # define SOAP_DELETE_ARRAY(obj) delete[] obj
1294*12720SWyllys.Ingersoll@Sun.COM #endif
1295*12720SWyllys.Ingersoll@Sun.COM 
1296*12720SWyllys.Ingersoll@Sun.COM #ifdef SOAP_DEBUG
1297*12720SWyllys.Ingersoll@Sun.COM # ifndef SOAP_MESSAGE
1298*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_MESSAGE fprintf
1299*12720SWyllys.Ingersoll@Sun.COM # endif
1300*12720SWyllys.Ingersoll@Sun.COM # ifndef DBGLOG
1301*12720SWyllys.Ingersoll@Sun.COM #  define DBGLOG(DBGFILE, CMD) \
1302*12720SWyllys.Ingersoll@Sun.COM { if (soap)\
1303*12720SWyllys.Ingersoll@Sun.COM   { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
1304*12720SWyllys.Ingersoll@Sun.COM       soap_open_logfile((struct soap*)soap, SOAP_INDEX_##DBGFILE);\
1305*12720SWyllys.Ingersoll@Sun.COM     if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
1306*12720SWyllys.Ingersoll@Sun.COM     { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\
1307*12720SWyllys.Ingersoll@Sun.COM       CMD;\
1308*12720SWyllys.Ingersoll@Sun.COM       fflush(fdebug);\
1309*12720SWyllys.Ingersoll@Sun.COM     }\
1310*12720SWyllys.Ingersoll@Sun.COM   }\
1311*12720SWyllys.Ingersoll@Sun.COM }
1312*12720SWyllys.Ingersoll@Sun.COM # endif
1313*12720SWyllys.Ingersoll@Sun.COM # ifndef DBGMSG
1314*12720SWyllys.Ingersoll@Sun.COM #  define DBGMSG(DBGFILE, MSG, LEN) \
1315*12720SWyllys.Ingersoll@Sun.COM { if (soap)\
1316*12720SWyllys.Ingersoll@Sun.COM   { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
1317*12720SWyllys.Ingersoll@Sun.COM       soap_open_logfile((struct soap*)soap, SOAP_INDEX_##DBGFILE);\
1318*12720SWyllys.Ingersoll@Sun.COM     if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
1319*12720SWyllys.Ingersoll@Sun.COM     { fwrite((MSG), 1, (LEN), soap->fdebug[SOAP_INDEX_##DBGFILE]);\
1320*12720SWyllys.Ingersoll@Sun.COM       fflush(soap->fdebug[SOAP_INDEX_##DBGFILE]);\
1321*12720SWyllys.Ingersoll@Sun.COM     }\
1322*12720SWyllys.Ingersoll@Sun.COM   }\
1323*12720SWyllys.Ingersoll@Sun.COM }
1324*12720SWyllys.Ingersoll@Sun.COM # endif
1325*12720SWyllys.Ingersoll@Sun.COM # ifndef DBGFUN
1326*12720SWyllys.Ingersoll@Sun.COM #  define DBGFUN(FNAME) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s()\n", __FILE__, __LINE__, FNAME))
1327*12720SWyllys.Ingersoll@Sun.COM #  define DBGFUN1(FNAME, FMT, ARG) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT")\n", __FILE__, __LINE__, FNAME, (ARG)))
1328*12720SWyllys.Ingersoll@Sun.COM #  define DBGFUN2(FNAME, FMT1, ARG1, FMT2, ARG2) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT1", "FMT2")\n", __FILE__, __LINE__, FNAME, (ARG1), (ARG2)))
1329*12720SWyllys.Ingersoll@Sun.COM #  define DBGFUN3(FNAME, FMT1, ARG1, FMT2, ARG2, FMT3, ARG3) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT1", "FMT2", "FMT3")\n", __FILE__, __LINE__, FNAME, (ARG1), (ARG2), (ARG3)))
1330*12720SWyllys.Ingersoll@Sun.COM # endif
1331*12720SWyllys.Ingersoll@Sun.COM # ifndef DBGHEX
1332*12720SWyllys.Ingersoll@Sun.COM #  define DBGHEX(DBGFILE, MSG, LEN) \
1333*12720SWyllys.Ingersoll@Sun.COM { if (soap)\
1334*12720SWyllys.Ingersoll@Sun.COM   { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
1335*12720SWyllys.Ingersoll@Sun.COM       soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\
1336*12720SWyllys.Ingersoll@Sun.COM     if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
1337*12720SWyllys.Ingersoll@Sun.COM     { int i; char *s;\
1338*12720SWyllys.Ingersoll@Sun.COM       for (s = (char*)(MSG), i = (LEN); i; i--)\
1339*12720SWyllys.Ingersoll@Sun.COM         fprintf(soap->fdebug[SOAP_INDEX_##DBGFILE], "%2.2X  ", (int)*s++&0xFF);\
1340*12720SWyllys.Ingersoll@Sun.COM       fflush(soap->fdebug[SOAP_INDEX_##DBGFILE]);\
1341*12720SWyllys.Ingersoll@Sun.COM     }\
1342*12720SWyllys.Ingersoll@Sun.COM   }\
1343*12720SWyllys.Ingersoll@Sun.COM }
1344*12720SWyllys.Ingersoll@Sun.COM # endif
1345*12720SWyllys.Ingersoll@Sun.COM #else
1346*12720SWyllys.Ingersoll@Sun.COM # define DBGLOG(DBGFILE, CMD)
1347*12720SWyllys.Ingersoll@Sun.COM # define DBGMSG(DBGFILE, MSG, LEN)
1348*12720SWyllys.Ingersoll@Sun.COM # define DBGFUN(FNAME)
1349*12720SWyllys.Ingersoll@Sun.COM # define DBGFUN1(FNAME, FMT, ARG)
1350*12720SWyllys.Ingersoll@Sun.COM # define DBGFUN2(FNAME, FMT1, ARG1, FMT2, ARG2)
1351*12720SWyllys.Ingersoll@Sun.COM # define DBGFUN3(FNAME, FMT1, ARG1, FMT2, ARG2, FMT3, ARG3)
1352*12720SWyllys.Ingersoll@Sun.COM # define DBGHEX(DBGFILE, MSG, LEN)
1353*12720SWyllys.Ingersoll@Sun.COM #endif
1354*12720SWyllys.Ingersoll@Sun.COM 
1355*12720SWyllys.Ingersoll@Sun.COM /* UCS-4 requires 32 bits (0-7FFFFFFF, the sign bit is used by gSOAP to distinguish XML entities) */
1356*12720SWyllys.Ingersoll@Sun.COM typedef soap_int32 soap_wchar;
1357*12720SWyllys.Ingersoll@Sun.COM 
1358*12720SWyllys.Ingersoll@Sun.COM /* namespace table row */
1359*12720SWyllys.Ingersoll@Sun.COM struct Namespace
1360*12720SWyllys.Ingersoll@Sun.COM { const char *id;
1361*12720SWyllys.Ingersoll@Sun.COM   const char *ns;
1362*12720SWyllys.Ingersoll@Sun.COM   const char *in;
1363*12720SWyllys.Ingersoll@Sun.COM   char *out;
1364*12720SWyllys.Ingersoll@Sun.COM };
1365*12720SWyllys.Ingersoll@Sun.COM 
1366*12720SWyllys.Ingersoll@Sun.COM /* namespace stack */
1367*12720SWyllys.Ingersoll@Sun.COM struct soap_nlist
1368*12720SWyllys.Ingersoll@Sun.COM { struct soap_nlist *next;
1369*12720SWyllys.Ingersoll@Sun.COM   unsigned int level; /* nesting depth level */
1370*12720SWyllys.Ingersoll@Sun.COM   short index; /* corresponding entry in ns mapping table */
1371*12720SWyllys.Ingersoll@Sun.COM   const char *ns; /* only set when parsed ns URI is not in the ns mapping table */
1372*12720SWyllys.Ingersoll@Sun.COM   char id[1]; /* the actual string value flows into the allocated region below this struct */
1373*12720SWyllys.Ingersoll@Sun.COM };
1374*12720SWyllys.Ingersoll@Sun.COM 
1375*12720SWyllys.Ingersoll@Sun.COM /* block stack for nested block allocations */
1376*12720SWyllys.Ingersoll@Sun.COM struct soap_blist
1377*12720SWyllys.Ingersoll@Sun.COM { struct soap_blist *next;
1378*12720SWyllys.Ingersoll@Sun.COM   char *ptr;
1379*12720SWyllys.Ingersoll@Sun.COM   size_t size;
1380*12720SWyllys.Ingersoll@Sun.COM };
1381*12720SWyllys.Ingersoll@Sun.COM 
1382*12720SWyllys.Ingersoll@Sun.COM /* array layout */
1383*12720SWyllys.Ingersoll@Sun.COM struct soap_array
1384*12720SWyllys.Ingersoll@Sun.COM { void *__ptr;
1385*12720SWyllys.Ingersoll@Sun.COM   int __size;
1386*12720SWyllys.Ingersoll@Sun.COM };
1387*12720SWyllys.Ingersoll@Sun.COM 
1388*12720SWyllys.Ingersoll@Sun.COM /* pointer serialization management */
1389*12720SWyllys.Ingersoll@Sun.COM struct soap_plist
1390*12720SWyllys.Ingersoll@Sun.COM { struct soap_plist *next;
1391*12720SWyllys.Ingersoll@Sun.COM   const void *ptr;
1392*12720SWyllys.Ingersoll@Sun.COM   const struct soap_array *array;
1393*12720SWyllys.Ingersoll@Sun.COM   int type;
1394*12720SWyllys.Ingersoll@Sun.COM   int id;
1395*12720SWyllys.Ingersoll@Sun.COM   char mark1;
1396*12720SWyllys.Ingersoll@Sun.COM   char mark2;
1397*12720SWyllys.Ingersoll@Sun.COM };
1398*12720SWyllys.Ingersoll@Sun.COM 
1399*12720SWyllys.Ingersoll@Sun.COM /* block allocation for pointer serialization management */
1400*12720SWyllys.Ingersoll@Sun.COM struct soap_pblk
1401*12720SWyllys.Ingersoll@Sun.COM { struct soap_pblk *next;
1402*12720SWyllys.Ingersoll@Sun.COM   struct soap_plist plist[SOAP_PTRBLK];
1403*12720SWyllys.Ingersoll@Sun.COM };
1404*12720SWyllys.Ingersoll@Sun.COM 
1405*12720SWyllys.Ingersoll@Sun.COM #ifdef SOAP_MEM_DEBUG
1406*12720SWyllys.Ingersoll@Sun.COM /* malloc/free tracking for debugging */
1407*12720SWyllys.Ingersoll@Sun.COM struct soap_mlist
1408*12720SWyllys.Ingersoll@Sun.COM { struct soap_mlist *next;
1409*12720SWyllys.Ingersoll@Sun.COM   const void *ptr;
1410*12720SWyllys.Ingersoll@Sun.COM   const char *file;
1411*12720SWyllys.Ingersoll@Sun.COM   int line;
1412*12720SWyllys.Ingersoll@Sun.COM   short live;
1413*12720SWyllys.Ingersoll@Sun.COM };
1414*12720SWyllys.Ingersoll@Sun.COM #endif
1415*12720SWyllys.Ingersoll@Sun.COM 
1416*12720SWyllys.Ingersoll@Sun.COM /* class allocation list */
1417*12720SWyllys.Ingersoll@Sun.COM struct soap_clist
1418*12720SWyllys.Ingersoll@Sun.COM { struct soap_clist *next;
1419*12720SWyllys.Ingersoll@Sun.COM   void *ptr;
1420*12720SWyllys.Ingersoll@Sun.COM   int type;
1421*12720SWyllys.Ingersoll@Sun.COM   int size;
1422*12720SWyllys.Ingersoll@Sun.COM   int (*fdelete)(struct soap_clist*);
1423*12720SWyllys.Ingersoll@Sun.COM };
1424*12720SWyllys.Ingersoll@Sun.COM 
1425*12720SWyllys.Ingersoll@Sun.COM /* attributes */
1426*12720SWyllys.Ingersoll@Sun.COM struct soap_attribute
1427*12720SWyllys.Ingersoll@Sun.COM { struct soap_attribute *next;
1428*12720SWyllys.Ingersoll@Sun.COM   short flag;	/* soap_set_attr: 1 = normal, 2 = utf content */
1429*12720SWyllys.Ingersoll@Sun.COM   char *value;
1430*12720SWyllys.Ingersoll@Sun.COM   size_t size;
1431*12720SWyllys.Ingersoll@Sun.COM   char *ns;
1432*12720SWyllys.Ingersoll@Sun.COM   short visible;
1433*12720SWyllys.Ingersoll@Sun.COM   char name[1]; /* the actual name string flows into the allocated region below this struct */
1434*12720SWyllys.Ingersoll@Sun.COM };
1435*12720SWyllys.Ingersoll@Sun.COM 
1436*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
1437*12720SWyllys.Ingersoll@Sun.COM struct soap_cookie
1438*12720SWyllys.Ingersoll@Sun.COM { struct soap_cookie *next;
1439*12720SWyllys.Ingersoll@Sun.COM   char *name;
1440*12720SWyllys.Ingersoll@Sun.COM   char *value;
1441*12720SWyllys.Ingersoll@Sun.COM   char *domain;
1442*12720SWyllys.Ingersoll@Sun.COM   char *path;
1443*12720SWyllys.Ingersoll@Sun.COM   time_t expire;	/* client-side: local time to expire */
1444*12720SWyllys.Ingersoll@Sun.COM   long maxage;		/* server-side: seconds to expire */
1445*12720SWyllys.Ingersoll@Sun.COM   unsigned int version;
1446*12720SWyllys.Ingersoll@Sun.COM   short secure;
1447*12720SWyllys.Ingersoll@Sun.COM   short session;	/* server-side */
1448*12720SWyllys.Ingersoll@Sun.COM   short env;		/* server-side: got cookie from client and should not be (re)send */
1449*12720SWyllys.Ingersoll@Sun.COM   short modified;	/* server-side: client cookie was modified and should be send */
1450*12720SWyllys.Ingersoll@Sun.COM };
1451*12720SWyllys.Ingersoll@Sun.COM #endif
1452*12720SWyllys.Ingersoll@Sun.COM 
1453*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_multipart* SOAP_FMAC2 soap_next_multipart(struct soap_multipart*);
1454*12720SWyllys.Ingersoll@Sun.COM 
1455*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1456*12720SWyllys.Ingersoll@Sun.COM 
1457*12720SWyllys.Ingersoll@Sun.COM class soap_multipart_iterator
1458*12720SWyllys.Ingersoll@Sun.COM { public:
1459*12720SWyllys.Ingersoll@Sun.COM   struct soap_multipart *content;
1460*12720SWyllys.Ingersoll@Sun.COM   bool operator==(const soap_multipart_iterator& iter) const
1461*12720SWyllys.Ingersoll@Sun.COM     { return (bool)(content == iter.content); }
1462*12720SWyllys.Ingersoll@Sun.COM   bool operator!=(const soap_multipart_iterator& iter) const
1463*12720SWyllys.Ingersoll@Sun.COM     { return (bool)(content != iter.content); }
1464*12720SWyllys.Ingersoll@Sun.COM   struct soap_multipart &operator*() const
1465*12720SWyllys.Ingersoll@Sun.COM     { return *content; }
1466*12720SWyllys.Ingersoll@Sun.COM   soap_multipart_iterator &operator++()
1467*12720SWyllys.Ingersoll@Sun.COM     { content = soap_next_multipart(content); return *this; }
1468*12720SWyllys.Ingersoll@Sun.COM   soap_multipart_iterator() : content(NULL)
1469*12720SWyllys.Ingersoll@Sun.COM     { }
1470*12720SWyllys.Ingersoll@Sun.COM   soap_multipart_iterator(struct soap_multipart *p) : content(p)
1471*12720SWyllys.Ingersoll@Sun.COM     { }
1472*12720SWyllys.Ingersoll@Sun.COM };
1473*12720SWyllys.Ingersoll@Sun.COM #endif
1474*12720SWyllys.Ingersoll@Sun.COM 
1475*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1476*12720SWyllys.Ingersoll@Sun.COM struct soap_dime
1477*12720SWyllys.Ingersoll@Sun.COM { size_t count;
1478*12720SWyllys.Ingersoll@Sun.COM   size_t size;
1479*12720SWyllys.Ingersoll@Sun.COM   size_t chunksize;
1480*12720SWyllys.Ingersoll@Sun.COM   size_t buflen;
1481*12720SWyllys.Ingersoll@Sun.COM   char flags;
1482*12720SWyllys.Ingersoll@Sun.COM   char *ptr;
1483*12720SWyllys.Ingersoll@Sun.COM   const char *id;
1484*12720SWyllys.Ingersoll@Sun.COM   const char *type;
1485*12720SWyllys.Ingersoll@Sun.COM   const char *options;
1486*12720SWyllys.Ingersoll@Sun.COM   struct soap_multipart *list;		/* list of DIME attachments received */
1487*12720SWyllys.Ingersoll@Sun.COM   struct soap_multipart *first, *last;	/* temporary in/out queue */
1488*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1489*12720SWyllys.Ingersoll@Sun.COM   soap_multipart_iterator begin()
1490*12720SWyllys.Ingersoll@Sun.COM     { soap_multipart_iterator iter(list); return iter; };
1491*12720SWyllys.Ingersoll@Sun.COM   soap_multipart_iterator end()
1492*12720SWyllys.Ingersoll@Sun.COM     { soap_multipart_iterator iter(NULL); return iter; };
1493*12720SWyllys.Ingersoll@Sun.COM #endif
1494*12720SWyllys.Ingersoll@Sun.COM };
1495*12720SWyllys.Ingersoll@Sun.COM #endif
1496*12720SWyllys.Ingersoll@Sun.COM 
1497*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1498*12720SWyllys.Ingersoll@Sun.COM struct soap_mime
1499*12720SWyllys.Ingersoll@Sun.COM { char *boundary;			/* MIME boundary */
1500*12720SWyllys.Ingersoll@Sun.COM   const char *start;			/* MIME start ID */
1501*12720SWyllys.Ingersoll@Sun.COM   struct soap_multipart *list;		/* list of MIME attachments received */
1502*12720SWyllys.Ingersoll@Sun.COM   struct soap_multipart *first, *last;	/* temporary in/out queue */
1503*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1504*12720SWyllys.Ingersoll@Sun.COM   soap_multipart_iterator begin()
1505*12720SWyllys.Ingersoll@Sun.COM     { soap_multipart_iterator iter(list); return iter; };
1506*12720SWyllys.Ingersoll@Sun.COM   soap_multipart_iterator end()
1507*12720SWyllys.Ingersoll@Sun.COM     { soap_multipart_iterator iter(NULL); return iter; };
1508*12720SWyllys.Ingersoll@Sun.COM #endif
1509*12720SWyllys.Ingersoll@Sun.COM };
1510*12720SWyllys.Ingersoll@Sun.COM #endif
1511*12720SWyllys.Ingersoll@Sun.COM 
1512*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1513*12720SWyllys.Ingersoll@Sun.COM /* RFC2045 MIME content transfer encodings */
1514*12720SWyllys.Ingersoll@Sun.COM enum soap_mime_encoding
1515*12720SWyllys.Ingersoll@Sun.COM { SOAP_MIME_NONE,
1516*12720SWyllys.Ingersoll@Sun.COM   SOAP_MIME_7BIT,
1517*12720SWyllys.Ingersoll@Sun.COM   SOAP_MIME_8BIT,
1518*12720SWyllys.Ingersoll@Sun.COM   SOAP_MIME_BINARY,
1519*12720SWyllys.Ingersoll@Sun.COM   SOAP_MIME_QUOTED_PRINTABLE,
1520*12720SWyllys.Ingersoll@Sun.COM   SOAP_MIME_BASE64,
1521*12720SWyllys.Ingersoll@Sun.COM   SOAP_MIME_IETF_TOKEN,
1522*12720SWyllys.Ingersoll@Sun.COM   SOAP_MIME_X_TOKEN
1523*12720SWyllys.Ingersoll@Sun.COM };
1524*12720SWyllys.Ingersoll@Sun.COM #endif
1525*12720SWyllys.Ingersoll@Sun.COM 
1526*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1527*12720SWyllys.Ingersoll@Sun.COM /* DIME/MIME multipart list */
1528*12720SWyllys.Ingersoll@Sun.COM struct soap_multipart
1529*12720SWyllys.Ingersoll@Sun.COM { struct soap_multipart *next;
1530*12720SWyllys.Ingersoll@Sun.COM   char *ptr;				/* points to raw data content */
1531*12720SWyllys.Ingersoll@Sun.COM   size_t size;				/* size of data content */
1532*12720SWyllys.Ingersoll@Sun.COM   const char *id;			/* DIME/MIME content ID or form data name */
1533*12720SWyllys.Ingersoll@Sun.COM   const char *type;			/* DIME/MIME type (MIME type format) */
1534*12720SWyllys.Ingersoll@Sun.COM   const char *options;			/* DIME options */
1535*12720SWyllys.Ingersoll@Sun.COM   enum soap_mime_encoding encoding;	/* MIME Content-Transfer-Encoding */
1536*12720SWyllys.Ingersoll@Sun.COM   const char *location;			/* MIME Content-Location (optional) */
1537*12720SWyllys.Ingersoll@Sun.COM   const char *description;		/* MIME Content-Description (optional) */
1538*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1539*12720SWyllys.Ingersoll@Sun.COM   typedef soap_multipart_iterator iterator;
1540*12720SWyllys.Ingersoll@Sun.COM #endif
1541*12720SWyllys.Ingersoll@Sun.COM };
1542*12720SWyllys.Ingersoll@Sun.COM #endif
1543*12720SWyllys.Ingersoll@Sun.COM 
1544*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1545*12720SWyllys.Ingersoll@Sun.COM /* attachment DIME and MTOM XOP forwarding */
1546*12720SWyllys.Ingersoll@Sun.COM struct soap_xlist
1547*12720SWyllys.Ingersoll@Sun.COM { struct soap_xlist *next;
1548*12720SWyllys.Ingersoll@Sun.COM   unsigned char **ptr;
1549*12720SWyllys.Ingersoll@Sun.COM   int *size;
1550*12720SWyllys.Ingersoll@Sun.COM   char *id;
1551*12720SWyllys.Ingersoll@Sun.COM   char **type;
1552*12720SWyllys.Ingersoll@Sun.COM   char **options;
1553*12720SWyllys.Ingersoll@Sun.COM };
1554*12720SWyllys.Ingersoll@Sun.COM #endif
1555*12720SWyllys.Ingersoll@Sun.COM 
1556*12720SWyllys.Ingersoll@Sun.COM /******************************************************************************/
1557*12720SWyllys.Ingersoll@Sun.COM 
1558*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1559*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1560*12720SWyllys.Ingersoll@Sun.COM class soap_dom_attribute_iterator
1561*12720SWyllys.Ingersoll@Sun.COM { public:
1562*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_attribute *att;
1563*12720SWyllys.Ingersoll@Sun.COM   const char *nstr;
1564*12720SWyllys.Ingersoll@Sun.COM   const char *name;
1565*12720SWyllys.Ingersoll@Sun.COM   bool operator==(const soap_dom_attribute_iterator&) const;
1566*12720SWyllys.Ingersoll@Sun.COM   bool operator!=(const soap_dom_attribute_iterator&) const;
1567*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_attribute &operator*() const;
1568*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute_iterator &operator++();
1569*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute_iterator();
1570*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute_iterator(struct soap_dom_attribute*);
1571*12720SWyllys.Ingersoll@Sun.COM   ~soap_dom_attribute_iterator();
1572*12720SWyllys.Ingersoll@Sun.COM };
1573*12720SWyllys.Ingersoll@Sun.COM #endif
1574*12720SWyllys.Ingersoll@Sun.COM #endif
1575*12720SWyllys.Ingersoll@Sun.COM 
1576*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1577*12720SWyllys.Ingersoll@Sun.COM struct soap_dom_attribute
1578*12720SWyllys.Ingersoll@Sun.COM { struct soap_dom_attribute *next;
1579*12720SWyllys.Ingersoll@Sun.COM   const char *nstr;
1580*12720SWyllys.Ingersoll@Sun.COM   char *name;
1581*12720SWyllys.Ingersoll@Sun.COM   char *data;
1582*12720SWyllys.Ingersoll@Sun.COM   wchar_t *wide;
1583*12720SWyllys.Ingersoll@Sun.COM   struct soap *soap;
1584*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1585*12720SWyllys.Ingersoll@Sun.COM   typedef soap_dom_attribute_iterator iterator;
1586*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_attribute &set(const char *nstr, const char *name);	/* set namespace and name */
1587*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_attribute &set(const char *data);		/* set data */
1588*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute_iterator begin();
1589*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute_iterator end();
1590*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute_iterator find(const char *nstr, const char *name);
1591*12720SWyllys.Ingersoll@Sun.COM   void unlink();
1592*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute();
1593*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute(struct soap *soap);
1594*12720SWyllys.Ingersoll@Sun.COM   soap_dom_attribute(struct soap *soap, const char *nstr, const char *name, const char *data);
1595*12720SWyllys.Ingersoll@Sun.COM   ~soap_dom_attribute();
1596*12720SWyllys.Ingersoll@Sun.COM #endif
1597*12720SWyllys.Ingersoll@Sun.COM };
1598*12720SWyllys.Ingersoll@Sun.COM #endif
1599*12720SWyllys.Ingersoll@Sun.COM 
1600*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1601*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1602*12720SWyllys.Ingersoll@Sun.COM class soap_dom_element_iterator
1603*12720SWyllys.Ingersoll@Sun.COM { public:
1604*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element *elt;
1605*12720SWyllys.Ingersoll@Sun.COM   const char *nstr;
1606*12720SWyllys.Ingersoll@Sun.COM   const char *name;
1607*12720SWyllys.Ingersoll@Sun.COM   int type;
1608*12720SWyllys.Ingersoll@Sun.COM   bool operator==(const soap_dom_element_iterator&) const;
1609*12720SWyllys.Ingersoll@Sun.COM   bool operator!=(const soap_dom_element_iterator&) const;
1610*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &operator*() const;
1611*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element_iterator &operator++();
1612*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element_iterator();
1613*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element_iterator(struct soap_dom_element*);
1614*12720SWyllys.Ingersoll@Sun.COM   ~soap_dom_element_iterator();
1615*12720SWyllys.Ingersoll@Sun.COM };
1616*12720SWyllys.Ingersoll@Sun.COM #endif
1617*12720SWyllys.Ingersoll@Sun.COM #endif
1618*12720SWyllys.Ingersoll@Sun.COM 
1619*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1620*12720SWyllys.Ingersoll@Sun.COM struct soap_dom_element
1621*12720SWyllys.Ingersoll@Sun.COM { struct soap_dom_element *next;	/* next sibling */
1622*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element *prnt;	/* parent */
1623*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element *elts;	/* list of child elements */
1624*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_attribute *atts;	/* list of attributes */
1625*12720SWyllys.Ingersoll@Sun.COM   const char *nstr;			/* namespace string */
1626*12720SWyllys.Ingersoll@Sun.COM   char *name;				/* element tag name */
1627*12720SWyllys.Ingersoll@Sun.COM   char *data;				/* element content data (with SOAP_C_UTFSTRING flag set) */
1628*12720SWyllys.Ingersoll@Sun.COM   wchar_t *wide;			/* element content data */
1629*12720SWyllys.Ingersoll@Sun.COM   int type;				/* optional: serialized C/C++ data type */
1630*12720SWyllys.Ingersoll@Sun.COM   void *node;				/* optional: pointer to serialized C/C++ data */
1631*12720SWyllys.Ingersoll@Sun.COM   char *head;				/* leading content before start tag */
1632*12720SWyllys.Ingersoll@Sun.COM   char *tail;				/* leading content before end tag */
1633*12720SWyllys.Ingersoll@Sun.COM   struct soap *soap;			/* soap context that manages this node */
1634*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1635*12720SWyllys.Ingersoll@Sun.COM   typedef soap_dom_element_iterator iterator;
1636*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &set(const char *nstr, const char *name);
1637*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &set(const char *data);
1638*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &set(void *node, int type);
1639*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &add(struct soap_dom_element*);
1640*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &add(struct soap_dom_element&);
1641*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &add(struct soap_dom_attribute*);
1642*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element &add(struct soap_dom_attribute&);
1643*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element_iterator begin();
1644*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element_iterator end();
1645*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element_iterator find(const char *nstr, const char *name);
1646*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element_iterator find(int type);
1647*12720SWyllys.Ingersoll@Sun.COM   void unlink();
1648*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element();
1649*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element(struct soap *soap);
1650*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element(struct soap *soap, const char *nstr, const char *name);
1651*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element(struct soap *soap, const char *nstr, const char *name, const char *data);
1652*12720SWyllys.Ingersoll@Sun.COM   soap_dom_element(struct soap *soap, const char *nstr, const char *name, void *node, int type);
1653*12720SWyllys.Ingersoll@Sun.COM   ~soap_dom_element();
1654*12720SWyllys.Ingersoll@Sun.COM #endif
1655*12720SWyllys.Ingersoll@Sun.COM };
1656*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_dom_element * SOAP_FMAC2 soap_dom_next_element(struct soap_dom_element *elt);
1657*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_dom_attribute * SOAP_FMAC2 soap_dom_next_attribute(struct soap_dom_attribute *att);
1658*12720SWyllys.Ingersoll@Sun.COM #endif
1659*12720SWyllys.Ingersoll@Sun.COM 
1660*12720SWyllys.Ingersoll@Sun.COM #if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
1661*12720SWyllys.Ingersoll@Sun.COM }
1662*12720SWyllys.Ingersoll@Sun.COM extern std::ostream &operator<<(std::ostream&, const struct soap_dom_element&);
1663*12720SWyllys.Ingersoll@Sun.COM extern std::istream &operator>>(std::istream&, struct soap_dom_element&);
1664*12720SWyllys.Ingersoll@Sun.COM extern "C" {
1665*12720SWyllys.Ingersoll@Sun.COM #endif
1666*12720SWyllys.Ingersoll@Sun.COM 
1667*12720SWyllys.Ingersoll@Sun.COM /******************************************************************************/
1668*12720SWyllys.Ingersoll@Sun.COM 
1669*12720SWyllys.Ingersoll@Sun.COM #ifdef WIN32
1670*12720SWyllys.Ingersoll@Sun.COM # ifdef SOAP_STD_EXPORTS
1671*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_STD_API __declspec(dllexport)
1672*12720SWyllys.Ingersoll@Sun.COM # else
1673*12720SWyllys.Ingersoll@Sun.COM #  define SOAP_STD_API
1674*12720SWyllys.Ingersoll@Sun.COM # endif
1675*12720SWyllys.Ingersoll@Sun.COM #else
1676*12720SWyllys.Ingersoll@Sun.COM # define SOAP_STD_API
1677*12720SWyllys.Ingersoll@Sun.COM #endif
1678*12720SWyllys.Ingersoll@Sun.COM 
1679*12720SWyllys.Ingersoll@Sun.COM struct SOAP_STD_API soap
1680*12720SWyllys.Ingersoll@Sun.COM { short state;			/* 0 = uninitialized, 1 = initialized, 2 = copy of another soap struct */
1681*12720SWyllys.Ingersoll@Sun.COM   short version;		/* 1 = SOAP1.1 and 2 = SOAP1.2 (set automatically from namespace URI in nsmap table) */
1682*12720SWyllys.Ingersoll@Sun.COM   soap_mode mode;
1683*12720SWyllys.Ingersoll@Sun.COM   soap_mode imode;
1684*12720SWyllys.Ingersoll@Sun.COM   soap_mode omode;
1685*12720SWyllys.Ingersoll@Sun.COM   const char *float_format;	/* user-definable format string for floats (<1024 chars) */
1686*12720SWyllys.Ingersoll@Sun.COM   const char *double_format;	/* user-definable format string for doubles (<1024 chars) */
1687*12720SWyllys.Ingersoll@Sun.COM   const char *dime_id_format;	/* user-definable format string for integer DIME id (<SOAP_TAGLEN chars) */
1688*12720SWyllys.Ingersoll@Sun.COM   const char *http_version;	/* HTTP version used "1.0" or "1.1" */
1689*12720SWyllys.Ingersoll@Sun.COM   const char *http_content;	/* optional custom response content type (with SOAP_FILE) */
1690*12720SWyllys.Ingersoll@Sun.COM   const char *encodingStyle;	/* default = NULL which means that SOAP encoding is used */
1691*12720SWyllys.Ingersoll@Sun.COM   const char *actor;		/* SOAP-ENV:actor or role attribute value */
1692*12720SWyllys.Ingersoll@Sun.COM   const char *lang;		/* xml:lang attribute value of SOAP-ENV:Text */
1693*12720SWyllys.Ingersoll@Sun.COM   int recv_timeout;		/* when > 0, gives socket recv timeout in seconds, < 0 in usec */
1694*12720SWyllys.Ingersoll@Sun.COM   int send_timeout;		/* when > 0, gives socket send timeout in seconds, < 0 in usec */
1695*12720SWyllys.Ingersoll@Sun.COM   int connect_timeout;		/* when > 0, gives socket connect() timeout in seconds, < 0 in usec */
1696*12720SWyllys.Ingersoll@Sun.COM   int accept_timeout;		/* when > 0, gives socket accept() timeout in seconds, < 0 in usec */
1697*12720SWyllys.Ingersoll@Sun.COM #if defined(WITH_OPENSSL) && defined(KMS_SERVER)
1698*12720SWyllys.Ingersoll@Sun.COM   /* Sun customization for Ultra 2 KMS Server */
1699*12720SWyllys.Ingersoll@Sun.COM   int ssl_accept_timeout;  /* default 10s unless overridden by this field, specified in seconds, time in SSL_Accept()  */
1700*12720SWyllys.Ingersoll@Sun.COM #endif
1701*12720SWyllys.Ingersoll@Sun.COM   int socket_flags;		/* socket recv() and send() flags, e.g. set to MSG_NOSIGNAL to disable sigpipe */
1702*12720SWyllys.Ingersoll@Sun.COM   int connect_flags;		/* connect() SOL_SOCKET sockopt flags, e.g. set to SO_DEBUG to debug socket */
1703*12720SWyllys.Ingersoll@Sun.COM   int bind_flags;		/* bind() SOL_SOCKET sockopt flags, e.g. set to SO_REUSEADDR to enable reuse */
1704*12720SWyllys.Ingersoll@Sun.COM   int accept_flags;		/* accept() SOL_SOCKET sockopt flags */
1705*12720SWyllys.Ingersoll@Sun.COM   unsigned short linger_time;	/* linger time for SO_LINGER option */
1706*12720SWyllys.Ingersoll@Sun.COM   const struct Namespace *namespaces;	/* Pointer to global namespace mapping table */
1707*12720SWyllys.Ingersoll@Sun.COM   struct Namespace *local_namespaces;	/* Local namespace mapping table */
1708*12720SWyllys.Ingersoll@Sun.COM   struct soap_nlist *nlist;	/* namespace stack */
1709*12720SWyllys.Ingersoll@Sun.COM   struct soap_blist *blist;	/* block allocation stack */
1710*12720SWyllys.Ingersoll@Sun.COM   struct soap_clist *clist;	/* class instance allocation list */
1711*12720SWyllys.Ingersoll@Sun.COM   void *alist;			/* memory allocation (malloc) list */
1712*12720SWyllys.Ingersoll@Sun.COM   struct soap_ilist *iht[SOAP_IDHASH];
1713*12720SWyllys.Ingersoll@Sun.COM   struct soap_plist *pht[SOAP_PTRHASH];
1714*12720SWyllys.Ingersoll@Sun.COM   struct soap_pblk *pblk;	/* plist block allocation */
1715*12720SWyllys.Ingersoll@Sun.COM   short pidx;			/* plist block allocation */
1716*12720SWyllys.Ingersoll@Sun.COM   struct SOAP_ENV__Header *header;
1717*12720SWyllys.Ingersoll@Sun.COM   struct SOAP_ENV__Fault *fault;
1718*12720SWyllys.Ingersoll@Sun.COM   int idnum;
1719*12720SWyllys.Ingersoll@Sun.COM   void *user;			/* to pass user-defined data */
1720*12720SWyllys.Ingersoll@Sun.COM   struct soap_plugin *plugins;	/* linked list of plug-in data */
1721*12720SWyllys.Ingersoll@Sun.COM   const char *userid;		/* HTTP Basic authorization userid */
1722*12720SWyllys.Ingersoll@Sun.COM   const char *passwd;		/* HTTP Basic authorization passwd */
1723*12720SWyllys.Ingersoll@Sun.COM   int (*fpost)(struct soap*, const char*, const char*, int, const char*, const char*, size_t);
1724*12720SWyllys.Ingersoll@Sun.COM   int (*fget)(struct soap*);
1725*12720SWyllys.Ingersoll@Sun.COM   int (*fput)(struct soap*);
1726*12720SWyllys.Ingersoll@Sun.COM   int (*fdel)(struct soap*);
1727*12720SWyllys.Ingersoll@Sun.COM   int (*fhead)(struct soap*);
1728*12720SWyllys.Ingersoll@Sun.COM   int (*fform)(struct soap*);
1729*12720SWyllys.Ingersoll@Sun.COM   int (*fposthdr)(struct soap*, const char*, const char*);
1730*12720SWyllys.Ingersoll@Sun.COM   int (*fresponse)(struct soap*, int, size_t);
1731*12720SWyllys.Ingersoll@Sun.COM   int (*fparse)(struct soap*);
1732*12720SWyllys.Ingersoll@Sun.COM   int (*fparsehdr)(struct soap*, const char*, const char*);
1733*12720SWyllys.Ingersoll@Sun.COM   int (*fheader)(struct soap*);
1734*12720SWyllys.Ingersoll@Sun.COM   int (*fresolve)(struct soap*, const char*, struct in_addr* inaddr);
1735*12720SWyllys.Ingersoll@Sun.COM   int (*fconnect)(struct soap*, const char*, const char*, int);
1736*12720SWyllys.Ingersoll@Sun.COM   int (*fdisconnect)(struct soap*);
1737*12720SWyllys.Ingersoll@Sun.COM   int (*fclosesocket)(struct soap*, SOAP_SOCKET);
1738*12720SWyllys.Ingersoll@Sun.COM   int (*fshutdownsocket)(struct soap*, SOAP_SOCKET, int);
1739*12720SWyllys.Ingersoll@Sun.COM   SOAP_SOCKET (*fopen)(struct soap*, const char*, const char*, int);
1740*12720SWyllys.Ingersoll@Sun.COM   SOAP_SOCKET (*faccept)(struct soap*, SOAP_SOCKET, struct sockaddr*, int *n);
1741*12720SWyllys.Ingersoll@Sun.COM   int (*fclose)(struct soap*);
1742*12720SWyllys.Ingersoll@Sun.COM   int (*fsend)(struct soap*, const char*, size_t);
1743*12720SWyllys.Ingersoll@Sun.COM   size_t (*frecv)(struct soap*, char*, size_t);
1744*12720SWyllys.Ingersoll@Sun.COM   int (*fpoll)(struct soap*);
1745*12720SWyllys.Ingersoll@Sun.COM   void (*fseterror)(struct soap*, const char **c, const char **s);
1746*12720SWyllys.Ingersoll@Sun.COM   int (*fignore)(struct soap*, const char*);
1747*12720SWyllys.Ingersoll@Sun.COM   int (*fserveloop)(struct soap*);
1748*12720SWyllys.Ingersoll@Sun.COM   void *(*fplugin)(struct soap*, const char*);
1749*12720SWyllys.Ingersoll@Sun.COM   void *(*fmalloc)(struct soap*, size_t);
1750*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1751*12720SWyllys.Ingersoll@Sun.COM   int (*fprepareinitsend)(struct soap*);
1752*12720SWyllys.Ingersoll@Sun.COM   int (*fprepareinitrecv)(struct soap*);
1753*12720SWyllys.Ingersoll@Sun.COM   int (*fpreparesend)(struct soap*, const char*, size_t);
1754*12720SWyllys.Ingersoll@Sun.COM   int (*fpreparerecv)(struct soap*, const char*, size_t);
1755*12720SWyllys.Ingersoll@Sun.COM   int (*fpreparefinalsend)(struct soap*);
1756*12720SWyllys.Ingersoll@Sun.COM   int (*fpreparefinalrecv)(struct soap*);
1757*12720SWyllys.Ingersoll@Sun.COM   void *(*fdimereadopen)(struct soap*, void*, const char*, const char*, const char*);
1758*12720SWyllys.Ingersoll@Sun.COM   void *(*fdimewriteopen)(struct soap*, const char*, const char*, const char*);
1759*12720SWyllys.Ingersoll@Sun.COM   void (*fdimereadclose)(struct soap*, void*);
1760*12720SWyllys.Ingersoll@Sun.COM   void (*fdimewriteclose)(struct soap*, void*);
1761*12720SWyllys.Ingersoll@Sun.COM   size_t (*fdimeread)(struct soap*, void*, char*, size_t);
1762*12720SWyllys.Ingersoll@Sun.COM   int (*fdimewrite)(struct soap*, void*, const char*, size_t);
1763*12720SWyllys.Ingersoll@Sun.COM   void *(*fmimereadopen)(struct soap*, void*, const char*, const char*, const char*);
1764*12720SWyllys.Ingersoll@Sun.COM   void *(*fmimewriteopen)(struct soap*, void*, const char*, const char*, const char*, enum soap_mime_encoding);
1765*12720SWyllys.Ingersoll@Sun.COM   void (*fmimereadclose)(struct soap*, void*);
1766*12720SWyllys.Ingersoll@Sun.COM   void (*fmimewriteclose)(struct soap*, void*);
1767*12720SWyllys.Ingersoll@Sun.COM   size_t (*fmimeread)(struct soap*, void*, char*, size_t);
1768*12720SWyllys.Ingersoll@Sun.COM   int (*fmimewrite)(struct soap*, void*, const char*, size_t);
1769*12720SWyllys.Ingersoll@Sun.COM #endif
1770*12720SWyllys.Ingersoll@Sun.COM   SOAP_SOCKET master;
1771*12720SWyllys.Ingersoll@Sun.COM   SOAP_SOCKET socket;
1772*12720SWyllys.Ingersoll@Sun.COM #if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
1773*12720SWyllys.Ingersoll@Sun.COM   std::ostream *os;
1774*12720SWyllys.Ingersoll@Sun.COM   std::istream *is;
1775*12720SWyllys.Ingersoll@Sun.COM #else
1776*12720SWyllys.Ingersoll@Sun.COM   void *os;		/* preserve struct size */
1777*12720SWyllys.Ingersoll@Sun.COM   void *is;		/* preserve struct size */
1778*12720SWyllys.Ingersoll@Sun.COM #endif
1779*12720SWyllys.Ingersoll@Sun.COM #ifndef UNDER_CE
1780*12720SWyllys.Ingersoll@Sun.COM   int sendfd;
1781*12720SWyllys.Ingersoll@Sun.COM   int recvfd;
1782*12720SWyllys.Ingersoll@Sun.COM #else
1783*12720SWyllys.Ingersoll@Sun.COM   FILE *sendfd;
1784*12720SWyllys.Ingersoll@Sun.COM   FILE *recvfd;
1785*12720SWyllys.Ingersoll@Sun.COM #endif
1786*12720SWyllys.Ingersoll@Sun.COM   size_t bufidx;	/* index in soap.buf[] */
1787*12720SWyllys.Ingersoll@Sun.COM   size_t buflen;	/* length of soap.buf[] content */
1788*12720SWyllys.Ingersoll@Sun.COM   soap_wchar ahead;	/* parser lookahead */
1789*12720SWyllys.Ingersoll@Sun.COM   short cdata;		/* CDATA parser state */
1790*12720SWyllys.Ingersoll@Sun.COM   short body;		/* parsed XML element has a body or not */
1791*12720SWyllys.Ingersoll@Sun.COM   unsigned int level;	/* XML nesting level */
1792*12720SWyllys.Ingersoll@Sun.COM   size_t count;		/* message length counter */
1793*12720SWyllys.Ingersoll@Sun.COM   size_t length;	/* message length as set by HTTP header */
1794*12720SWyllys.Ingersoll@Sun.COM   char *labbuf;		/* look-aside buffer */
1795*12720SWyllys.Ingersoll@Sun.COM   size_t lablen;	/* look-aside buffer allocated length */
1796*12720SWyllys.Ingersoll@Sun.COM   size_t labidx;	/* look-aside buffer index to available part */
1797*12720SWyllys.Ingersoll@Sun.COM   char buf[SOAP_BUFLEN];/* send and receive buffer */
1798*12720SWyllys.Ingersoll@Sun.COM   char msgbuf[1024];	/* in/out buffer for HTTP/MIME headers >=1024 bytes */
1799*12720SWyllys.Ingersoll@Sun.COM   char tmpbuf[1024];	/* in/out buffer for HTTP/MIME headers, simpleType values, element and attribute tag names, and DIME must be >=1024 bytes */
1800*12720SWyllys.Ingersoll@Sun.COM   char tag[SOAP_TAGLEN];
1801*12720SWyllys.Ingersoll@Sun.COM   char id[SOAP_TAGLEN];
1802*12720SWyllys.Ingersoll@Sun.COM   char href[SOAP_TAGLEN];
1803*12720SWyllys.Ingersoll@Sun.COM   char type[SOAP_TAGLEN];
1804*12720SWyllys.Ingersoll@Sun.COM   char arrayType[SOAP_TAGLEN];
1805*12720SWyllys.Ingersoll@Sun.COM   char arraySize[SOAP_TAGLEN];
1806*12720SWyllys.Ingersoll@Sun.COM   char arrayOffset[SOAP_TAGLEN];
1807*12720SWyllys.Ingersoll@Sun.COM   short other;
1808*12720SWyllys.Ingersoll@Sun.COM   short position;
1809*12720SWyllys.Ingersoll@Sun.COM   int positions[SOAP_MAXDIMS];
1810*12720SWyllys.Ingersoll@Sun.COM   short root;
1811*12720SWyllys.Ingersoll@Sun.COM   struct soap_attribute *attributes;	/* attribute list */
1812*12720SWyllys.Ingersoll@Sun.COM   short encoding;	/* when set, output encodingStyle */
1813*12720SWyllys.Ingersoll@Sun.COM   short mustUnderstand;	/* a mustUnderstand element was parsed or is output */
1814*12720SWyllys.Ingersoll@Sun.COM   short null;		/* parsed XML is xsi:nil */
1815*12720SWyllys.Ingersoll@Sun.COM   short ns;		/* when not set, output full xmlns bindings */
1816*12720SWyllys.Ingersoll@Sun.COM   short part;		/* parsing state */
1817*12720SWyllys.Ingersoll@Sun.COM   short alloced;
1818*12720SWyllys.Ingersoll@Sun.COM   short peeked;
1819*12720SWyllys.Ingersoll@Sun.COM   size_t chunksize;
1820*12720SWyllys.Ingersoll@Sun.COM   size_t chunkbuflen;
1821*12720SWyllys.Ingersoll@Sun.COM   char endpoint[SOAP_TAGLEN];
1822*12720SWyllys.Ingersoll@Sun.COM   char path[SOAP_TAGLEN];
1823*12720SWyllys.Ingersoll@Sun.COM   char host[SOAP_TAGLEN];
1824*12720SWyllys.Ingersoll@Sun.COM   char *action;
1825*12720SWyllys.Ingersoll@Sun.COM   char *authrealm;		/* HTTP authentication realm */
1826*12720SWyllys.Ingersoll@Sun.COM   char *prolog;			/* XML declaration prolog */
1827*12720SWyllys.Ingersoll@Sun.COM   unsigned long ip;		/* IP number */
1828*12720SWyllys.Ingersoll@Sun.COM   int port;			/* port number */
1829*12720SWyllys.Ingersoll@Sun.COM   short keep_alive;		/* connection should be kept open */
1830*12720SWyllys.Ingersoll@Sun.COM   short tcp_keep_alive;		/* enable SO_KEEPALIVE */
1831*12720SWyllys.Ingersoll@Sun.COM   unsigned int tcp_keep_idle; 	/* set TCP_KEEPIDLE */
1832*12720SWyllys.Ingersoll@Sun.COM   unsigned int tcp_keep_intvl; 	/* set TCP_KEEPINTVL */
1833*12720SWyllys.Ingersoll@Sun.COM   unsigned int tcp_keep_cnt; 	/* set TCP_KEEPCNT */
1834*12720SWyllys.Ingersoll@Sun.COM   unsigned int max_keep_alive;  /* maximum keep-alive session (default=100) */
1835*12720SWyllys.Ingersoll@Sun.COM   const char *proxy_http_version;/* HTTP version of proxy "1.0" or "1.1" */
1836*12720SWyllys.Ingersoll@Sun.COM   const char *proxy_host;	/* Proxy Server host name */
1837*12720SWyllys.Ingersoll@Sun.COM   int proxy_port;		/* Proxy Server port (default = 8080) */
1838*12720SWyllys.Ingersoll@Sun.COM   const char *proxy_userid;	/* Proxy Authorization user name */
1839*12720SWyllys.Ingersoll@Sun.COM   const char *proxy_passwd;	/* Proxy Authorization password */
1840*12720SWyllys.Ingersoll@Sun.COM   const char *proxy_from;	/* X-Forwarding-For header returned by proxy */
1841*12720SWyllys.Ingersoll@Sun.COM   int status;			/* -1 when request, else error code to be returned by server */
1842*12720SWyllys.Ingersoll@Sun.COM   int error;
1843*12720SWyllys.Ingersoll@Sun.COM   int errmode;
1844*12720SWyllys.Ingersoll@Sun.COM   int errnum;
1845*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
1846*12720SWyllys.Ingersoll@Sun.COM   struct soap_dom_element *dom;
1847*12720SWyllys.Ingersoll@Sun.COM   struct soap_dime dime;
1848*12720SWyllys.Ingersoll@Sun.COM   struct soap_mime mime;
1849*12720SWyllys.Ingersoll@Sun.COM   struct soap_xlist *xlist;
1850*12720SWyllys.Ingersoll@Sun.COM #endif
1851*12720SWyllys.Ingersoll@Sun.COM #if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
1852*12720SWyllys.Ingersoll@Sun.COM   const char *logfile[SOAP_MAXLOGS];
1853*12720SWyllys.Ingersoll@Sun.COM   FILE *fdebug[SOAP_MAXLOGS];
1854*12720SWyllys.Ingersoll@Sun.COM   struct soap_mlist *mht[SOAP_PTRHASH];
1855*12720SWyllys.Ingersoll@Sun.COM #endif
1856*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
1857*12720SWyllys.Ingersoll@Sun.COM   const char *wsuid;		/* space-separated string of element tags */
1858*12720SWyllys.Ingersoll@Sun.COM   const char *c14nexclude;	/* space-separated string of prefixes */
1859*12720SWyllys.Ingersoll@Sun.COM   struct soap_cookie *cookies;
1860*12720SWyllys.Ingersoll@Sun.COM   const char *cookie_domain;
1861*12720SWyllys.Ingersoll@Sun.COM   const char *cookie_path;
1862*12720SWyllys.Ingersoll@Sun.COM   int cookie_max;
1863*12720SWyllys.Ingersoll@Sun.COM #endif
1864*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NOIO
1865*12720SWyllys.Ingersoll@Sun.COM   int ipv6_multicast_if; /* always include this to keep the soap struct size the same in v4 and v6 */
1866*12720SWyllys.Ingersoll@Sun.COM   char* ipv4_multicast_if; /* always include this to keep the soap struct size the same in v4 and v6 */
1867*12720SWyllys.Ingersoll@Sun.COM   int ipv4_multicast_ttl; /* multicast scope */
1868*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_IPV6
1869*12720SWyllys.Ingersoll@Sun.COM   struct sockaddr_storage peer;	/* IPv6: set by soap_accept and by UDP recv */
1870*12720SWyllys.Ingersoll@Sun.COM #else
1871*12720SWyllys.Ingersoll@Sun.COM   struct sockaddr_in peer;	/* IPv4: set by soap_connect/soap_accept and by UDP recv */
1872*12720SWyllys.Ingersoll@Sun.COM #endif
1873*12720SWyllys.Ingersoll@Sun.COM #endif
1874*12720SWyllys.Ingersoll@Sun.COM   size_t peerlen;
1875*12720SWyllys.Ingersoll@Sun.COM #if defined(WITH_OPENSSL)	/* OpenSSL */
1876*12720SWyllys.Ingersoll@Sun.COM   int (*fsslauth)(struct soap*);
1877*12720SWyllys.Ingersoll@Sun.COM   int (*fsslverify)(int, X509_STORE_CTX*);
1878*12720SWyllys.Ingersoll@Sun.COM   BIO *bio;
1879*12720SWyllys.Ingersoll@Sun.COM   SSL *ssl;
1880*12720SWyllys.Ingersoll@Sun.COM   SSL_CTX *ctx;
1881*12720SWyllys.Ingersoll@Sun.COM   SSL_SESSION *session;
1882*12720SWyllys.Ingersoll@Sun.COM #else				/* No SSL/TLS */
1883*12720SWyllys.Ingersoll@Sun.COM   void *fsslauth;		/* dummy members, to preserve struct size */
1884*12720SWyllys.Ingersoll@Sun.COM   void *fsslverify;
1885*12720SWyllys.Ingersoll@Sun.COM   void *bio;
1886*12720SWyllys.Ingersoll@Sun.COM   void *ssl;
1887*12720SWyllys.Ingersoll@Sun.COM   void *ctx;
1888*12720SWyllys.Ingersoll@Sun.COM   void *session;
1889*12720SWyllys.Ingersoll@Sun.COM #endif
1890*12720SWyllys.Ingersoll@Sun.COM   unsigned short ssl_flags;
1891*12720SWyllys.Ingersoll@Sun.COM   const char *keyfile;
1892*12720SWyllys.Ingersoll@Sun.COM   const char *password;
1893*12720SWyllys.Ingersoll@Sun.COM   const char *dhfile;
1894*12720SWyllys.Ingersoll@Sun.COM   const char *cafile;
1895*12720SWyllys.Ingersoll@Sun.COM   const char *capath;
1896*12720SWyllys.Ingersoll@Sun.COM   const char *crlfile;
1897*12720SWyllys.Ingersoll@Sun.COM   const char *randfile;
1898*12720SWyllys.Ingersoll@Sun.COM   char session_host[SOAP_TAGLEN];
1899*12720SWyllys.Ingersoll@Sun.COM   int session_port;
1900*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_C_LOCALE
1901*12720SWyllys.Ingersoll@Sun.COM   locale_t c_locale;		/* set to C locale by default */
1902*12720SWyllys.Ingersoll@Sun.COM #else
1903*12720SWyllys.Ingersoll@Sun.COM   void *c_locale;
1904*12720SWyllys.Ingersoll@Sun.COM #endif
1905*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_ZLIB
1906*12720SWyllys.Ingersoll@Sun.COM   z_stream *d_stream;		/* decompression stream */
1907*12720SWyllys.Ingersoll@Sun.COM   uLong z_crc;			/* internal gzip crc */
1908*12720SWyllys.Ingersoll@Sun.COM #else
1909*12720SWyllys.Ingersoll@Sun.COM   void *d_stream;		/* dummy members, to preserve struct size */
1910*12720SWyllys.Ingersoll@Sun.COM   soap_int32 z_crc;
1911*12720SWyllys.Ingersoll@Sun.COM #endif
1912*12720SWyllys.Ingersoll@Sun.COM   const char *z_dict;		/* support for zlib static dictionaries */
1913*12720SWyllys.Ingersoll@Sun.COM   unsigned int z_dict_len;
1914*12720SWyllys.Ingersoll@Sun.COM   short zlib_state;		/* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_INFLATE */
1915*12720SWyllys.Ingersoll@Sun.COM   short zlib_in;		/* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_GZIP */
1916*12720SWyllys.Ingersoll@Sun.COM   short zlib_out;		/* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_GZIP */
1917*12720SWyllys.Ingersoll@Sun.COM   char *z_buf;			/* buffer */
1918*12720SWyllys.Ingersoll@Sun.COM   size_t z_buflen;
1919*12720SWyllys.Ingersoll@Sun.COM   unsigned short z_level;	/* compression level to be used (0=none, 1=fast to 9=best) */
1920*12720SWyllys.Ingersoll@Sun.COM   float z_ratio_in;		/* detected compression ratio compressed_length/length of inbound message */
1921*12720SWyllys.Ingersoll@Sun.COM   float z_ratio_out;		/* detected compression ratio compressed_length/length of outbound message */
1922*12720SWyllys.Ingersoll@Sun.COM #ifdef WMW_RPM_IO		/* VxWorks */
1923*12720SWyllys.Ingersoll@Sun.COM   void *rpmreqid;
1924*12720SWyllys.Ingersoll@Sun.COM #endif
1925*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
1926*12720SWyllys.Ingersoll@Sun.COM   soap();
1927*12720SWyllys.Ingersoll@Sun.COM   soap(soap_mode);
1928*12720SWyllys.Ingersoll@Sun.COM   soap(soap_mode, soap_mode);
1929*12720SWyllys.Ingersoll@Sun.COM   soap(const struct soap&);
1930*12720SWyllys.Ingersoll@Sun.COM   virtual ~soap();
1931*12720SWyllys.Ingersoll@Sun.COM #else
1932*12720SWyllys.Ingersoll@Sun.COM   void (*dummy)();
1933*12720SWyllys.Ingersoll@Sun.COM #endif
1934*12720SWyllys.Ingersoll@Sun.COM };
1935*12720SWyllys.Ingersoll@Sun.COM 
1936*12720SWyllys.Ingersoll@Sun.COM struct soap_code_map
1937*12720SWyllys.Ingersoll@Sun.COM { long code;
1938*12720SWyllys.Ingersoll@Sun.COM   const char *string;
1939*12720SWyllys.Ingersoll@Sun.COM };
1940*12720SWyllys.Ingersoll@Sun.COM 
1941*12720SWyllys.Ingersoll@Sun.COM /* forwarding list */
1942*12720SWyllys.Ingersoll@Sun.COM struct soap_flist
1943*12720SWyllys.Ingersoll@Sun.COM { struct soap_flist *next;
1944*12720SWyllys.Ingersoll@Sun.COM   int type;
1945*12720SWyllys.Ingersoll@Sun.COM   void *ptr;
1946*12720SWyllys.Ingersoll@Sun.COM   unsigned int level;
1947*12720SWyllys.Ingersoll@Sun.COM   size_t len;
1948*12720SWyllys.Ingersoll@Sun.COM   void (*fcopy)(struct soap*, int, int, void*, size_t, const void*, size_t);
1949*12720SWyllys.Ingersoll@Sun.COM };
1950*12720SWyllys.Ingersoll@Sun.COM 
1951*12720SWyllys.Ingersoll@Sun.COM /* id-ref forwarding list */
1952*12720SWyllys.Ingersoll@Sun.COM struct soap_ilist
1953*12720SWyllys.Ingersoll@Sun.COM { struct soap_ilist *next;
1954*12720SWyllys.Ingersoll@Sun.COM   int type;
1955*12720SWyllys.Ingersoll@Sun.COM   size_t size;
1956*12720SWyllys.Ingersoll@Sun.COM   void *link;
1957*12720SWyllys.Ingersoll@Sun.COM   void *copy;
1958*12720SWyllys.Ingersoll@Sun.COM   struct soap_flist *flist;
1959*12720SWyllys.Ingersoll@Sun.COM   void *ptr;
1960*12720SWyllys.Ingersoll@Sun.COM   unsigned int level;
1961*12720SWyllys.Ingersoll@Sun.COM   char id[1]; /* the actual id string value flows into the allocated region below this struct */
1962*12720SWyllys.Ingersoll@Sun.COM };
1963*12720SWyllys.Ingersoll@Sun.COM 
1964*12720SWyllys.Ingersoll@Sun.COM struct soap_plugin
1965*12720SWyllys.Ingersoll@Sun.COM { struct soap_plugin *next;
1966*12720SWyllys.Ingersoll@Sun.COM   const char *id;
1967*12720SWyllys.Ingersoll@Sun.COM   void *data;
1968*12720SWyllys.Ingersoll@Sun.COM   int (*fcopy)(struct soap *soap, struct soap_plugin *dst, struct soap_plugin *src);
1969*12720SWyllys.Ingersoll@Sun.COM   void (*fdelete)(struct soap *soap, struct soap_plugin *p); /* should delete fields of plugin only and not free(p) */
1970*12720SWyllys.Ingersoll@Sun.COM };
1971*12720SWyllys.Ingersoll@Sun.COM 
1972*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NONAMESPACES
1973*12720SWyllys.Ingersoll@Sun.COM extern SOAP_NMAC struct Namespace namespaces[];
1974*12720SWyllys.Ingersoll@Sun.COM #endif
1975*12720SWyllys.Ingersoll@Sun.COM 
1976*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
1977*12720SWyllys.Ingersoll@Sun.COM # define soap_get0(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx])
1978*12720SWyllys.Ingersoll@Sun.COM # define soap_get1(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++])
1979*12720SWyllys.Ingersoll@Sun.COM #else
1980*12720SWyllys.Ingersoll@Sun.COM soap_wchar soap_get0(struct soap*);
1981*12720SWyllys.Ingersoll@Sun.COM soap_wchar soap_get1(struct soap*);
1982*12720SWyllys.Ingersoll@Sun.COM #endif
1983*12720SWyllys.Ingersoll@Sun.COM 
1984*12720SWyllys.Ingersoll@Sun.COM #define soap_revget1(soap) ((soap)->bufidx--)
1985*12720SWyllys.Ingersoll@Sun.COM #define soap_unget(soap, c) ((soap)->ahead = c)
1986*12720SWyllys.Ingersoll@Sun.COM #define soap_register_plugin(soap, plugin) soap_register_plugin_arg(soap, plugin, NULL)
1987*12720SWyllys.Ingersoll@Sun.COM #define soap_imode(soap, n) ((soap)->mode = (soap)->imode = (n))
1988*12720SWyllys.Ingersoll@Sun.COM #define soap_set_imode(soap, n) ((soap)->imode |= (n))
1989*12720SWyllys.Ingersoll@Sun.COM #define soap_clr_imode(soap, n) ((soap)->imode &= ~(n))
1990*12720SWyllys.Ingersoll@Sun.COM #define soap_omode(soap, n) ((soap)->mode = (soap)->omode = (n))
1991*12720SWyllys.Ingersoll@Sun.COM #define soap_set_omode(soap, n) ((soap)->omode |= (n))
1992*12720SWyllys.Ingersoll@Sun.COM #define soap_clr_omode(soap, n) ((soap)->omode &= ~(n))
1993*12720SWyllys.Ingersoll@Sun.COM #define soap_set_mode(soap, n) ((soap)->imode |= (n), (soap)->omode |= (n))
1994*12720SWyllys.Ingersoll@Sun.COM #define soap_clr_mode(soap, n) ((soap)->imode &= ~(n), (soap)->omode &= ~(n))
1995*12720SWyllys.Ingersoll@Sun.COM #define soap_destroy(soap) soap_delete((soap), NULL)
1996*12720SWyllys.Ingersoll@Sun.COM 
1997*12720SWyllys.Ingersoll@Sun.COM #ifdef HAVE_STRRCHR
1998*12720SWyllys.Ingersoll@Sun.COM # define soap_strrchr(s, t) strrchr(s, t)
1999*12720SWyllys.Ingersoll@Sun.COM #else
2000*12720SWyllys.Ingersoll@Sun.COM  SOAP_FMAC1 char* SOAP_FMAC2 soap_strrchr(const char *s, int t);
2001*12720SWyllys.Ingersoll@Sun.COM #endif
2002*12720SWyllys.Ingersoll@Sun.COM 
2003*12720SWyllys.Ingersoll@Sun.COM #ifdef HAVE_STRTOL
2004*12720SWyllys.Ingersoll@Sun.COM # define soap_strtol(s, t, b) strtol(s, t, b)
2005*12720SWyllys.Ingersoll@Sun.COM #else
2006*12720SWyllys.Ingersoll@Sun.COM  SOAP_FMAC1 long SOAP_FMAC2 soap_strtol(const char *s, char **t, int b);
2007*12720SWyllys.Ingersoll@Sun.COM #endif
2008*12720SWyllys.Ingersoll@Sun.COM 
2009*12720SWyllys.Ingersoll@Sun.COM #ifdef HAVE_STRTOUL
2010*12720SWyllys.Ingersoll@Sun.COM # define soap_strtoul(s, t, b) strtoul(s, t, b)
2011*12720SWyllys.Ingersoll@Sun.COM #else
2012*12720SWyllys.Ingersoll@Sun.COM  SOAP_FMAC1 unsigned long SOAP_FMAC2 soap_strtoul(const char *s, char **t, int b);
2013*12720SWyllys.Ingersoll@Sun.COM #endif
2014*12720SWyllys.Ingersoll@Sun.COM 
2015*12720SWyllys.Ingersoll@Sun.COM #if defined(WITH_OPENSSL)
2016*12720SWyllys.Ingersoll@Sun.COM # define soap_random soap_rand()
2017*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_rand(void);
2018*12720SWyllys.Ingersoll@Sun.COM #elif defined(HAVE_RANDOM)
2019*12720SWyllys.Ingersoll@Sun.COM # define soap_random (int)random()
2020*12720SWyllys.Ingersoll@Sun.COM #else
2021*12720SWyllys.Ingersoll@Sun.COM # define soap_random rand()
2022*12720SWyllys.Ingersoll@Sun.COM #endif
2023*12720SWyllys.Ingersoll@Sun.COM 
2024*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_NOIDREF
2025*12720SWyllys.Ingersoll@Sun.COM # define soap_embedded(s, p, t) (0)
2026*12720SWyllys.Ingersoll@Sun.COM # define soap_id_lookup(s, i, p, t, n, k) (p)
2027*12720SWyllys.Ingersoll@Sun.COM # define soap_id_forward(s, h, p, len, st, tt, n, k, fc) (p)
2028*12720SWyllys.Ingersoll@Sun.COM # define soap_reference(s, a, t) (1)
2029*12720SWyllys.Ingersoll@Sun.COM # define soap_array_reference(s, p, a, n, t) (1)
2030*12720SWyllys.Ingersoll@Sun.COM # define soap_embed(s, p, a, n, t, pp) (0)
2031*12720SWyllys.Ingersoll@Sun.COM # define soap_embedded_id(s, i, p, t) (i)
2032*12720SWyllys.Ingersoll@Sun.COM # define soap_is_embedded(s, p) (0)
2033*12720SWyllys.Ingersoll@Sun.COM # define soap_is_single(s, p) (1)
2034*12720SWyllys.Ingersoll@Sun.COM # define soap_lookup_type(s, i) (0)
2035*12720SWyllys.Ingersoll@Sun.COM # define soap_getindependent(s) (0)
2036*12720SWyllys.Ingersoll@Sun.COM # define soap_putindependent(s) (0)
2037*12720SWyllys.Ingersoll@Sun.COM # define soap_getelement(s, n) (n)
2038*12720SWyllys.Ingersoll@Sun.COM # define soap_putelement(s, p, t, i, n) (0)
2039*12720SWyllys.Ingersoll@Sun.COM # define soap_markelement(s, p, n) (0)
2040*12720SWyllys.Ingersoll@Sun.COM #endif
2041*12720SWyllys.Ingersoll@Sun.COM 
2042*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_header(struct soap*);
2043*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_fault(struct soap*);
2044*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultcode(struct soap*);
2045*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultsubcode(struct soap*);
2046*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultstring(struct soap*);
2047*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultdetail(struct soap*);
2048*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader(struct soap*);
2049*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putheader(struct soap*);
2050*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getheader(struct soap*);
2051*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_serializefault(struct soap*);
2052*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putfault(struct soap*);
2053*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getfault(struct soap*);
2054*12720SWyllys.Ingersoll@Sun.COM 
2055*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_ssl_init();
2056*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_poll(struct soap*);
2057*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_connect_command(struct soap*, int, const char*, const char*);
2058*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_connect(struct soap*, const char*, const char*);
2059*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_bind(struct soap*, const char*, int, int);
2060*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_accept(struct soap*);
2061*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_accept(struct soap*);
2062*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char * SOAP_FMAC2 soap_ssl_error(struct soap*, int);
2063*12720SWyllys.Ingersoll@Sun.COM 
2064*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_server_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*, const char*, const char*);
2065*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_client_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*);
2066*12720SWyllys.Ingersoll@Sun.COM 
2067*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_puthttphdr(struct soap*, int status, size_t count);
2068*12720SWyllys.Ingersoll@Sun.COM 
2069*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_get_header_attribute(struct soap*, const char*, const char*);
2070*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_decode_key(char*, size_t, const char*);
2071*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_decode_val(char*, size_t, const char*);
2072*12720SWyllys.Ingersoll@Sun.COM 
2073*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 size_t SOAP_FMAC2 soap_hash(const char*);
2074*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_endpoint(struct soap*, const char*);
2075*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_flush_raw(struct soap*, const char*, size_t);
2076*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_flush(struct soap*);
2077*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_get(struct soap*);
2078*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getchar(struct soap*);
2079*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_tag_cmp(const char*, const char*);
2080*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_fault(struct soap*);
2081*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault(struct soap*, const char*, const char*);
2082*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault_subcode(struct soap*, const char*, const char*, const char*);
2083*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault(struct soap*, const char*, const char*);
2084*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault_subcode(struct soap*, const char*, const char*, const char*);
2085*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_set_sender_error(struct soap*, const char*, const char*, int);
2086*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_set_receiver_error(struct soap*, const char*, const char*, int);
2087*12720SWyllys.Ingersoll@Sun.COM 
2088*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_send_raw(struct soap*, const char*, size_t);
2089*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_recv_raw(struct soap*);
2090*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_recv(struct soap*);
2091*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_send(struct soap*, const char*);
2092*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_send2(struct soap*, const char*, const char*);
2093*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_send3(struct soap*, const char*, const char*, const char*);
2094*12720SWyllys.Ingersoll@Sun.COM 
2095*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_pututf8(struct soap*, unsigned long);
2096*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getutf8(struct soap*);
2097*12720SWyllys.Ingersoll@Sun.COM 
2098*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putbase64(struct soap*, const unsigned char*, int);
2099*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_getbase64(struct soap*, int*, int);
2100*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_puthex(struct soap*, const unsigned char*, int);
2101*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_gethex(struct soap*, int*);
2102*12720SWyllys.Ingersoll@Sun.COM 
2103*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
2104*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_xop_forward(struct soap*, unsigned char**, int*, char**, char**, char**);
2105*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_dime_forward(struct soap*, unsigned char**, int*, char**, char**, char**);
2106*12720SWyllys.Ingersoll@Sun.COM #endif
2107*12720SWyllys.Ingersoll@Sun.COM 
2108*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NOIDREF
2109*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup_id(struct soap*, void *p, int t, struct soap_plist**);
2110*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup(struct soap*, const void *p, int t, struct soap_plist**);
2111*12720SWyllys.Ingersoll@Sun.COM 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**);
2112*12720SWyllys.Ingersoll@Sun.COM 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**);
2113*12720SWyllys.Ingersoll@Sun.COM 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);
2114*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_lookup(struct soap*, const char*);
2115*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_enter(struct soap*, const char*);
2116*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_resolve(struct soap*);
2117*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_embedded(struct soap*, const void *p, int t);
2118*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_reference(struct soap*, const void *p, int t);
2119*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference(struct soap*, const void *p, const struct soap_array *a, int n, int t);
2120*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_embedded_id(struct soap*, int id, const void *p, int t);
2121*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_is_embedded(struct soap*, struct soap_plist*);
2122*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_is_single(struct soap*, struct soap_plist*);
2123*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_embedded(struct soap*, struct soap_plist*);
2124*12720SWyllys.Ingersoll@Sun.COM #endif
2125*12720SWyllys.Ingersoll@Sun.COM 
2126*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_begin_count(struct soap*);
2127*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_end_count(struct soap*);
2128*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_begin_send(struct soap*);
2129*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_end_send(struct soap*);
2130*12720SWyllys.Ingersoll@Sun.COM 
2131*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const struct soap_code_map* SOAP_FMAC2 soap_code(const struct soap_code_map*, const char*);
2132*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 long SOAP_FMAC2 soap_code_int(const struct soap_code_map*, const char*, long);
2133*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_code_str(const struct soap_code_map*, long);
2134*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 long SOAP_FMAC2 soap_code_bits(const struct soap_code_map*, const char*);
2135*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_code_list(struct soap*, const struct soap_code_map*, long);
2136*12720SWyllys.Ingersoll@Sun.COM 
2137*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getline(struct soap*, char*, int);
2138*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv(struct soap*);
2139*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_end_recv(struct soap*);
2140*12720SWyllys.Ingersoll@Sun.COM 
2141*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void* SOAP_FMAC2 soap_malloc(struct soap*, size_t);
2142*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_dealloc(struct soap*, void*);
2143*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_clist * SOAP_FMAC2 soap_link(struct soap*, void*, int, int, int (*fdelete)(struct soap_clist*));
2144*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_unlink(struct soap*, const void*);
2145*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_free_temp(struct soap*);
2146*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_del(struct soap*);
2147*12720SWyllys.Ingersoll@Sun.COM 
2148*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void* SOAP_FMAC2 soap_track_malloc(struct soap*, const char*, int, size_t);
2149*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_track_free(struct soap*, const char*, int, void*);
2150*12720SWyllys.Ingersoll@Sun.COM 
2151*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NOIDREF
2152*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_lookup_type(struct soap*, const char *id);
2153*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void* SOAP_FMAC2 soap_id_lookup(struct soap*, const char *id, void **p, int t, size_t n, unsigned int k);
2154*12720SWyllys.Ingersoll@Sun.COM 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));
2155*12720SWyllys.Ingersoll@Sun.COM #endif
2156*12720SWyllys.Ingersoll@Sun.COM 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*));
2157*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_fcopy(struct soap *soap, int st, int tt, void *p, size_t, const void *q, size_t n);
2158*12720SWyllys.Ingersoll@Sun.COM 
2159*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_size(const int *, int);
2160*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getoffsets(const char *, const int *, int *, int);
2161*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getsize(const char *, const char *, int *);
2162*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getsizes(const char *, int *, int);
2163*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getposition(const char *, int *);
2164*12720SWyllys.Ingersoll@Sun.COM 
2165*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_putsize(struct soap*, const char *, int);
2166*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizesoffsets(struct soap*, const char *, const int *, const int *, int);
2167*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizes(struct soap*, const char *, const int *, int);
2168*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffset(struct soap*, int);
2169*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffsets(struct soap*, const int *, int);
2170*12720SWyllys.Ingersoll@Sun.COM 
2171*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap*);
2172*12720SWyllys.Ingersoll@Sun.COM 
2173*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new(void);
2174*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new1(soap_mode);
2175*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new2(soap_mode, soap_mode);
2176*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_free(struct soap*);
2177*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy(const struct soap*);
2178*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy_context(struct soap*, const struct soap*);
2179*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_copy_stream(struct soap*, struct soap*);
2180*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_free_stream(struct soap*);
2181*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_init(struct soap*);
2182*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_init1(struct soap*, soap_mode);
2183*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_init2(struct soap*, soap_mode, soap_mode);
2184*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_done(struct soap*);
2185*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_cleanup(struct soap*);
2186*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_begin(struct soap*);
2187*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_end(struct soap*);
2188*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_delete(struct soap*, void*);
2189*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_delegate_deletion(struct soap*, struct soap*);
2190*12720SWyllys.Ingersoll@Sun.COM 
2191*12720SWyllys.Ingersoll@Sun.COM /* API functions available with DEBUG or SOAP_DEBUG defined: */
2192*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_recv_logfile(struct soap*, const char*);
2193*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_sent_logfile(struct soap*, const char*);
2194*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_test_logfile(struct soap*, const char*);
2195*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_close_logfiles(struct soap*);
2196*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_open_logfile(struct soap*, int);
2197*12720SWyllys.Ingersoll@Sun.COM /* */
2198*12720SWyllys.Ingersoll@Sun.COM 
2199*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_value(struct soap*);
2200*12720SWyllys.Ingersoll@Sun.COM 
2201*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag(struct soap*, const char*, const char *);
2202*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_match_array(struct soap*, const char*);
2203*12720SWyllys.Ingersoll@Sun.COM 
2204*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element(struct soap*, const char*, int, const char*);
2205*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_out(struct soap*, const char *tag, int id, const char *type);
2206*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_array_begin_out(struct soap*, const char *tag, int id, const char *type, const char *offset);
2207*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_ref(struct soap*, const char *tag, int id, int href);
2208*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_href(struct soap*, const char *tag, int id, const char *ref, const char *val);
2209*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_null(struct soap*, const char *tag, int id, const char *type);
2210*12720SWyllys.Ingersoll@Sun.COM 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);
2211*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_result(struct soap*, const char *tag);
2212*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_check_result(struct soap*, const char *tag);
2213*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_out(struct soap*, const char *tag);
2214*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_start_end_out(struct soap*, const char *tag);
2215*12720SWyllys.Ingersoll@Sun.COM 
2216*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_attribute(struct soap*, const char*, const char*);
2217*12720SWyllys.Ingersoll@Sun.COM 
2218*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_in(struct soap*, const char *tag, int nillable, const char *type);
2219*12720SWyllys.Ingersoll@Sun.COM 
2220*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_in(struct soap*, const char *tag);
2221*12720SWyllys.Ingersoll@Sun.COM 
2222*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_peek_element(struct soap*);
2223*12720SWyllys.Ingersoll@Sun.COM 
2224*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_retry(struct soap*);
2225*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_revert(struct soap*);
2226*12720SWyllys.Ingersoll@Sun.COM 
2227*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_strdup(struct soap*, const char*);
2228*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 wchar_t* SOAP_FMAC2 soap_wstrdup(struct soap*, const wchar_t*);
2229*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char * SOAP_FMAC2 soap_tagsearch(const char *big, const char *little);
2230*12720SWyllys.Ingersoll@Sun.COM 
2231*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_string_out(struct soap*, const char *s, int flag);
2232*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_string_in(struct soap*, int, long, long);
2233*12720SWyllys.Ingersoll@Sun.COM 
2234*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
2235*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_wstring_out(struct soap*, const wchar_t *s, int flag);
2236*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 wchar_t* SOAP_FMAC2 soap_wstring_in(struct soap*, int, long, long);
2237*12720SWyllys.Ingersoll@Sun.COM #endif
2238*12720SWyllys.Ingersoll@Sun.COM 
2239*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_match_namespace(struct soap*, const char *, const char*, size_t n1, size_t n2);
2240*12720SWyllys.Ingersoll@Sun.COM 
2241*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_set_namespaces(struct soap*, const struct Namespace*);
2242*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_local_namespaces(struct soap*);
2243*12720SWyllys.Ingersoll@Sun.COM 
2244*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_pop_namespace(struct soap*);
2245*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_nlist* SOAP_FMAC2 soap_push_namespace(struct soap*, const char *,const char *);
2246*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_current_namespace(struct soap *soap, const char *tag);
2247*12720SWyllys.Ingersoll@Sun.COM 
2248*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_nlist* SOAP_FMAC2 soap_lookup_ns(struct soap *soap, const char *tag, size_t n);
2249*12720SWyllys.Ingersoll@Sun.COM 
2250*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_store_lab(struct soap*, const char*, size_t);
2251*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_append_lab(struct soap*, const char*, size_t);
2252*12720SWyllys.Ingersoll@Sun.COM 
2253*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_blist* SOAP_FMAC2 soap_new_block(struct soap*);
2254*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void* SOAP_FMAC2 soap_push_block(struct soap*, struct soap_blist*, size_t);
2255*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_pop_block(struct soap*, struct soap_blist*);
2256*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 size_t SOAP_FMAC2 soap_size_block(struct soap*, struct soap_blist*, size_t);
2257*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_first_block(struct soap*, struct soap_blist*);
2258*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_next_block(struct soap*, struct soap_blist*);
2259*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 size_t SOAP_FMAC2 soap_block_size(struct soap*, struct soap_blist*);
2260*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_save_block(struct soap*, struct soap_blist*, char*, int);
2261*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_end_block(struct soap*, struct soap_blist*);
2262*12720SWyllys.Ingersoll@Sun.COM 
2263*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_out(struct soap*);
2264*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int soap_envelope_end_out(struct soap*);
2265*12720SWyllys.Ingersoll@Sun.COM 
2266*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in(struct soap*);
2267*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_in(struct soap*);
2268*12720SWyllys.Ingersoll@Sun.COM 
2269*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_out(struct soap*);
2270*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_out(struct soap*);
2271*12720SWyllys.Ingersoll@Sun.COM 
2272*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in(struct soap*);
2273*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_in(struct soap*);
2274*12720SWyllys.Ingersoll@Sun.COM 
2275*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header(struct soap*);
2276*12720SWyllys.Ingersoll@Sun.COM 
2277*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_response(struct soap*, int);
2278*12720SWyllys.Ingersoll@Sun.COM 
2279*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_send_empty_response(struct soap*, int status);
2280*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_recv_empty_response(struct soap*);
2281*12720SWyllys.Ingersoll@Sun.COM 
2282*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault(struct soap*);
2283*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_recv_fault(struct soap*, int check);
2284*12720SWyllys.Ingersoll@Sun.COM 
2285*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_NOSTDLIB
2286*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault(struct soap*, FILE*);
2287*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault_location(struct soap*, FILE*);
2288*12720SWyllys.Ingersoll@Sun.COM # ifndef WITH_LEAN
2289*12720SWyllys.Ingersoll@Sun.COM #  ifdef __cplusplus
2290*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_stream_fault(struct soap*, std::ostream&);
2291*12720SWyllys.Ingersoll@Sun.COM #  endif
2292*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_sprint_fault(struct soap*, char*, size_t);
2293*12720SWyllys.Ingersoll@Sun.COM # endif
2294*12720SWyllys.Ingersoll@Sun.COM #endif
2295*12720SWyllys.Ingersoll@Sun.COM 
2296*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2byte(struct soap*, const char*, char*);
2297*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2short(struct soap*, const char*, short*);
2298*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2int(struct soap*, const char*, int*);
2299*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2long(struct soap*, const char*, long*);
2300*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2LONG64(struct soap*, const char*, LONG64*);
2301*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2float(struct soap*, const char*, float*);
2302*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2double(struct soap*, const char*, double*);
2303*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedByte(struct soap*, const char*, unsigned char*);
2304*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedShort(struct soap*, const char*, unsigned short*);
2305*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedInt(struct soap*, const char*, unsigned int*);
2306*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedLong(struct soap*, const char*, unsigned long*);
2307*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2ULONG64(struct soap*, const char*, ULONG64*);
2308*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2string(struct soap*, const char*, char**, long minlen, long maxlen);
2309*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2QName(struct soap*, const char*, char**, long minlen, long maxlen);
2310*12720SWyllys.Ingersoll@Sun.COM 
2311*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
2312*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2wchar(struct soap*, const char*, wchar_t**, long minlen, long maxlen);
2313*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_s2dateTime(struct soap*, const char*, time_t*);
2314*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_s2base64(struct soap*, const unsigned char*, char*, int);
2315*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_s2hex(struct soap*, const unsigned char*, char*, int);
2316*12720SWyllys.Ingersoll@Sun.COM #endif
2317*12720SWyllys.Ingersoll@Sun.COM 
2318*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_byte2s(struct soap*, char);
2319*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_short2s(struct soap*, short);
2320*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_int2s(struct soap*, int);
2321*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_long2s(struct soap*, long);
2322*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_LONG642s(struct soap*, LONG64);
2323*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_float2s(struct soap*, float);
2324*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_double2s(struct soap*, double);
2325*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedByte2s(struct soap*, unsigned char);
2326*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedShort2s(struct soap*, unsigned short);
2327*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedInt2s(struct soap*, unsigned int);
2328*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedLong2s(struct soap*, unsigned long);
2329*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_ULONG642s(struct soap*, ULONG64);
2330*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_QName2s(struct soap*, const char*);
2331*12720SWyllys.Ingersoll@Sun.COM 
2332*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
2333*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_wchar2s(struct soap*, const wchar_t*);
2334*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_dateTime2s(struct soap*, time_t);
2335*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_base642s(struct soap*, const char*, char*, size_t, int*);
2336*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_hex2s(struct soap*, const char*, char*, size_t, int*);
2337*12720SWyllys.Ingersoll@Sun.COM #endif
2338*12720SWyllys.Ingersoll@Sun.COM 
2339*12720SWyllys.Ingersoll@Sun.COM 
2340*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int* SOAP_FMAC2 soap_inint(struct soap*, const char *tag, int *p, const char *, int);
2341*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_inbyte(struct soap*, const char *tag, char *p, const char *, int);
2342*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 long* SOAP_FMAC2 soap_inlong(struct soap*, const char *tag, long *p, const char *, int);
2343*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 LONG64* SOAP_FMAC2 soap_inLONG64(struct soap*, const char *tag, LONG64 *p, const char *, int);
2344*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 short* SOAP_FMAC2 soap_inshort(struct soap*, const char *tag, short *p, const char *, int);
2345*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 float* SOAP_FMAC2 soap_infloat(struct soap*, const char *tag, float *p, const char *, int);
2346*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 double* SOAP_FMAC2 soap_indouble(struct soap*, const char *tag, double *p, const char *, int);
2347*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_inunsignedByte(struct soap*, const char *tag, unsigned char *p, const char *, int);
2348*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 unsigned short* SOAP_FMAC2 soap_inunsignedShort(struct soap*, const char *tag, unsigned short *p, const char *, int);
2349*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 unsigned int* SOAP_FMAC2 soap_inunsignedInt(struct soap*, const char *tag, unsigned int *p, const char *, int);
2350*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 unsigned long* SOAP_FMAC2 soap_inunsignedLong(struct soap*, const char *tag, unsigned long *p, const char *, int);
2351*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 ULONG64* SOAP_FMAC2 soap_inULONG64(struct soap*, const char *tag, ULONG64 *p, const char *, int);
2352*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char** SOAP_FMAC2 soap_instring(struct soap*, const char *tag, char **p, const char *, int, int, long, long);
2353*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char** SOAP_FMAC2 soap_inliteral(struct soap*, const char *tag, char **p);
2354*12720SWyllys.Ingersoll@Sun.COM 
2355*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
2356*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 time_t* SOAP_FMAC2 soap_indateTime(struct soap*, const char *tag, time_t *p, const char *, int);
2357*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 time_t SOAP_FMAC2 soap_timegm(struct tm*);
2358*12720SWyllys.Ingersoll@Sun.COM #endif
2359*12720SWyllys.Ingersoll@Sun.COM 
2360*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
2361*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwstring(struct soap*, const char *tag, wchar_t **p, const char *, int, long, long);
2362*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwliteral(struct soap*, const char *tag, wchar_t **p);
2363*12720SWyllys.Ingersoll@Sun.COM #endif
2364*12720SWyllys.Ingersoll@Sun.COM 
2365*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outbyte(struct soap*, const char *tag, int id, const char *p, const char *, int);
2366*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outshort(struct soap*, const char *tag, int id, const short *p, const char *, int);
2367*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outint(struct soap*, const char *tag, int id, const int *p, const char *, int);
2368*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outlong(struct soap*, const char *tag, int id, const long *p, const char *, int);
2369*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outLONG64(struct soap*, const char *tag, int id, const LONG64 *p, const char *, int);
2370*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outfloat(struct soap*, const char *tag, int id, const float *p, const char *, int);
2371*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outdouble(struct soap*, const char *tag, int id, const double *p, const char *, int);
2372*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedByte(struct soap*, const char *tag, int id, const unsigned char *p, const char *, int);
2373*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedShort(struct soap*, const char *tag, int id, const unsigned short *p, const char *, int);
2374*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedInt(struct soap*, const char *tag, int id, const unsigned int *p, const char *, int);
2375*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedLong(struct soap*, const char *tag, int id, const unsigned long *p, const char *, int);
2376*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outULONG64(struct soap*, const char *tag, int id, const ULONG64 *p, const char *, int);
2377*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outstring(struct soap*, const char *tag, int id, char *const*p, const char *, int);
2378*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outliteral(struct soap*, const char *tag, char *const*p, const char *type);
2379*12720SWyllys.Ingersoll@Sun.COM 
2380*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEAN
2381*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outdateTime(struct soap*, const char *tag, int id, const time_t *p, const char *, int);
2382*12720SWyllys.Ingersoll@Sun.COM #endif
2383*12720SWyllys.Ingersoll@Sun.COM 
2384*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
2385*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outwstring(struct soap*, const char *tag, int id, wchar_t *const*p, const char *, int);
2386*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_outwliteral(struct soap*, const char *tag, wchar_t *const*p, const char *type);
2387*12720SWyllys.Ingersoll@Sun.COM #endif
2388*12720SWyllys.Ingersoll@Sun.COM 
2389*12720SWyllys.Ingersoll@Sun.COM #ifndef WITH_LEANER
2390*12720SWyllys.Ingersoll@Sun.COM 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);
2391*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_move(struct soap*, long);
2392*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 size_t SOAP_FMAC2 soap_tell(struct soap*);
2393*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 char* SOAP_FMAC2 soap_dime_option(struct soap*, unsigned short, const char*);
2394*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getdimehdr(struct soap*);
2395*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getdime(struct soap*);
2396*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putdimehdr(struct soap*);
2397*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putdime(struct soap*);
2398*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getmimehdr(struct soap*);
2399*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_getmime(struct soap*);
2400*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putmimehdr(struct soap*, struct soap_multipart*);
2401*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putmime(struct soap*);
2402*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_dime(struct soap*);
2403*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_set_mime(struct soap*, const char *boundary, const char *start);
2404*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_clr_dime(struct soap*);
2405*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_clr_mime(struct soap*);
2406*12720SWyllys.Ingersoll@Sun.COM 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);
2407*12720SWyllys.Ingersoll@Sun.COM 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);
2408*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_post_check_mime_attachments(struct soap *soap);
2409*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_check_mime_attachments(struct soap *soap);
2410*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 struct soap_multipart* SOAP_FMAC2 soap_get_mime_attachment(struct soap *soap, void *handle);
2411*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_match_cid(struct soap*, const char*, const char*);
2412*12720SWyllys.Ingersoll@Sun.COM #endif
2413*12720SWyllys.Ingersoll@Sun.COM 
2414*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_register_plugin_arg(struct soap*, int (*fcreate)(struct soap*, struct soap_plugin*, void*), void*);
2415*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void* SOAP_FMAC2 soap_lookup_plugin(struct soap*, const char*);
2416*12720SWyllys.Ingersoll@Sun.COM 
2417*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 const char* SOAP_FMAC2 soap_attr_value(struct soap *soap, const char *name, int flag);
2418*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_set_attr(struct soap *soap, const char *name, const char *value, int flag);
2419*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_clr_attr(struct soap *soap);
2420*12720SWyllys.Ingersoll@Sun.COM 
2421*12720SWyllys.Ingersoll@Sun.COM #ifdef WITH_COOKIES
2422*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 void SOAP_FMAC2 soap_getcookies(struct soap *soap, const char *val);
2423*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 size_t SOAP_FMAC2 soap_encode_cookie(const char*, char*, size_t);
2424*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_set_cookie(struct soap*, const char*, const char*, const char*, const char*);
2425*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_cookie(struct soap*, const char*, const char*, const char*);
2426*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern char* SOAP_FMAC2 soap_cookie_value(struct soap*, const char*, const char*, const char*);
2427*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern char* SOAP_FMAC2 soap_env_cookie_value(struct soap*, const char*, const char*, const char*);
2428*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern time_t SOAP_FMAC2 soap_cookie_expire(struct soap*, const char*, const char*, const char*);
2429*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_expire(struct soap*, const char*, long, const char*, const char*);
2430*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_session(struct soap*, const char*, const char*, const char*);
2431*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern int SOAP_FMAC2 soap_clr_cookie_session(struct soap*, const char*, const char*, const char*);
2432*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern void SOAP_FMAC2 soap_clr_cookie(struct soap*, const char*, const char*, const char*);
2433*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern int SOAP_FMAC2 soap_getenv_cookies(struct soap*);
2434*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_copy_cookies(struct soap*, const struct soap*);
2435*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 extern void SOAP_FMAC2 soap_free_cookies(struct soap*);
2436*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putsetcookies(struct soap *soap);
2437*12720SWyllys.Ingersoll@Sun.COM SOAP_FMAC1 int SOAP_FMAC2 soap_putcookies(struct soap *soap, const char *domain, const char *path, int secure);
2438*12720SWyllys.Ingersoll@Sun.COM #endif
2439*12720SWyllys.Ingersoll@Sun.COM 
2440*12720SWyllys.Ingersoll@Sun.COM #ifdef __cplusplus
2441*12720SWyllys.Ingersoll@Sun.COM } /* extern "C" */
2442*12720SWyllys.Ingersoll@Sun.COM #endif
2443*12720SWyllys.Ingersoll@Sun.COM 
2444*12720SWyllys.Ingersoll@Sun.COM #endif /* STDSOAP_H */
2445