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