00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 #ifdef WITH_SOAPDEFS_H
00053 # include "soapdefs.h"
00054 #endif
00055
00056 #ifndef _THREAD_SAFE
00057 # define _THREAD_SAFE
00058 #endif
00059
00060 #ifndef OPENSERVER
00061 # ifndef _REENTRANT
00062 # define _REENTRANT
00063 # endif
00064 #endif
00065
00066 #ifndef SOAP_FMAC1
00067 # define SOAP_FMAC1
00068 #endif
00069
00070 #ifndef SOAP_FMAC2
00071 # define SOAP_FMAC2
00072 #endif
00073
00074 #ifndef SOAP_FMAC3
00075 # define SOAP_FMAC3
00076 #endif
00077
00078 #ifndef SOAP_FMAC3S
00079 # define SOAP_FMAC3S SOAP_FMAC3
00080 #endif
00081
00082 #ifndef SOAP_FMAC4
00083 # define SOAP_FMAC4
00084 #endif
00085
00086 #ifndef SOAP_FMAC4S
00087 # define SOAP_FMAC4S SOAP_FMAC4
00088 #endif
00089
00090 #ifndef SOAP_FMAC5
00091 # define SOAP_FMAC5
00092 #endif
00093
00094 #ifndef SOAP_FMAC6
00095 # define SOAP_FMAC6
00096 #endif
00097
00098 #ifndef SOAP_CMAC
00099 # define SOAP_CMAC
00100 #endif
00101
00102 #ifndef SOAP_NMAC
00103 # define SOAP_NMAC
00104 #endif
00105
00106 #ifndef SOAP_SOURCE_STAMP
00107 # define SOAP_SOURCE_STAMP(str)
00108 #endif
00109
00110
00111 #ifndef WITH_FAST
00112 # define WITH_FAST
00113 #endif
00114
00115 #ifdef WITH_LEANER
00116 # ifndef WITH_LEAN
00117 # define WITH_LEAN
00118 # endif
00119 #endif
00120
00121 #ifdef WITH_LEAN
00122 # ifdef WITH_COOKIES
00123 # error "Cannot build WITH_LEAN code WITH_COOKIES enabled"
00124 # endif
00125 #endif
00126
00127 #ifndef STDSOAP_H
00128 #define STDSOAP_H
00129
00130 #if defined(__vxworks) || defined(__VXWORKS__)
00131 # define VXWORKS
00132 #endif
00133
00134 #ifdef _WIN32
00135 # ifndef WIN32
00136 # define WIN32
00137 # endif
00138 #endif
00139
00140 #ifdef UNDER_CE
00141 # ifndef WIN32
00142 # define WIN32
00143 # endif
00144 #endif
00145
00146 #ifdef __BORLANDC__
00147 # ifdef __WIN32__
00148 # ifndef WIN32
00149 # define WIN32
00150 # endif
00151 # endif
00152 #endif
00153
00154 #ifdef __CYGWIN__
00155 # ifndef CYGWIN
00156 # define CYGWIN
00157 # endif
00158 #endif
00159
00160 #ifdef __SYMBIAN32__
00161 # define SYMBIAN
00162 # undef WIN32
00163 #endif
00164
00165 #if defined(__palmos__) || defined(PALM_GCC) || defined(__PALMOS_TRAPS__)
00166 # ifndef PALM
00167 # define PALM
00168 # endif
00169 #endif
00170
00171 #if defined(__hpux)
00172 # ifndef HP_UX
00173 # define HP_UX
00174 # endif
00175 #endif
00176
00177 #if defined(__alpha) && !defined(__VMS)
00178 # ifndef TRU64
00179 # define TRU64
00180 # endif
00181 #endif
00182
00183 #ifdef __MVS__
00184 # ifndef OS390
00185 # define OS390
00186 # endif
00187 #endif
00188
00189 #ifdef HAVE_CONFIG_H
00190 # include "config.h"
00191 # ifdef WITH_OPENSSL
00192 # ifndef HAVE_OPENSSL_SSL_H
00193 # undef WITH_OPENSSL
00194 # endif
00195 # endif
00196 #else
00197 # if defined(UNDER_CE)
00198 # define WITH_LEAN
00199 # define HAVE_SSCANF
00200 # elif defined(WIN32)
00201 # define HAVE_STRRCHR
00202 # define HAVE_STRTOD
00203 # define HAVE_SSCANF
00204 # define HAVE_STRTOL
00205 # define HAVE_STRTOUL
00206 # define HAVE_SYS_TIMEB_H
00207 # define HAVE_FTIME
00208 # define HAVE_WCTOMB
00209 # define HAVE_MBTOWC
00210 # define SOAP_LONG_FORMAT "%I64d"
00211 # define SOAP_ULONG_FORMAT "%I64u"
00212 # elif defined(CYGWIN)
00213 # define HAVE_STRRCHR
00214 # define HAVE_STRTOD
00215 # define HAVE_SSCANF
00216 # define HAVE_STRTOL
00217 # define HAVE_STRTOUL
00218 # define HAVE_SYS_TIMEB_H
00219 # define HAVE_FTIME
00220 # define HAVE_RAND_R
00221 # define HAVE_GMTIME_R
00222 # define HAVE_LOCALTIME_R
00223 # define HAVE_WCTOMB
00224 # define HAVE_MBTOWC
00225 # elif defined(__APPLE__)
00226 # define HAVE_STRRCHR
00227 # define HAVE_STRTOD
00228 # define HAVE_SSCANF
00229 # define HAVE_STRTOL
00230 # define HAVE_STRTOUL
00231 # define HAVE_RAND_R
00232 # define HAVE_GMTIME_R
00233 # define HAVE_LOCALTIME_R
00234 # define HAVE_TIMEGM
00235 # define HAVE_WCTOMB
00236 # define HAVE_MBTOWC
00237 # elif defined(_AIXVERSION_431)
00238 # define HAVE_STRRCHR
00239 # define HAVE_STRTOD
00240 # define HAVE_SSCANF
00241 # define HAVE_STRTOL
00242 # define HAVE_STRTOUL
00243 # define HAVE_SYS_TIMEB_H
00244 # define HAVE_FTIME
00245 # define HAVE_RAND_R
00246 # define HAVE_GMTIME_R
00247 # define HAVE_LOCALTIME_R
00248 # define HAVE_WCTOMB
00249 # define HAVE_MBTOWC
00250 # elif defined(HP_UX)
00251 # define HAVE_STRRCHR
00252 # define HAVE_STRTOD
00253 # define HAVE_SSCANF
00254 # define HAVE_STRTOL
00255 # define HAVE_STRTOUL
00256 # define HAVE_SYS_TIMEB_H
00257 # define HAVE_FTIME
00258 # define HAVE_RAND_R
00259 # define HAVE_GMTIME_R
00260 # define HAVE_LOCALTIME_R
00261 # define HAVE_WCTOMB
00262 # define HAVE_MBTOWC
00263 # elif defined(FREEBSD) || defined(__FreeBSD__)
00264 # define HAVE_STRRCHR
00265 # define HAVE_STRTOD
00266 # define HAVE_SSCANF
00267 # define HAVE_STRTOL
00268 # define HAVE_STRTOUL
00269 # define HAVE_STRTOLL
00270 # define HAVE_STRTOULL
00271 # define HAVE_GETTIMEOFDAY
00272 # define HAVE_RAND_R
00273 # define HAVE_GMTIME_R
00274 # define HAVE_LOCALTIME_R
00275 # define HAVE_WCTOMB
00276 # define HAVE_MBTOWC
00277 # define SOAP_LONG_FORMAT "%qd"
00278 # define SOAP_ULONG_FORMAT "%qu"
00279 # elif defined(__VMS)
00280 # define HAVE_STRRCHR
00281 # define HAVE_STRTOD
00282 # define HAVE_SSCANF
00283 # define HAVE_STRTOL
00284 # define HAVE_STRTOUL
00285 # define HAVE_SYS_TIMEB_H
00286 # define HAVE_FTIME
00287 # define HAVE_RAND_R
00288 # define HAVE_GMTIME_R
00289 # define HAVE_LOCALTIME_R
00290 # define HAVE_WCTOMB
00291 # define HAVE_MBTOWC
00292 # elif defined(__GLIBC__) || defined(__GNU__)
00293 # define HAVE_STRRCHR
00294 # define HAVE_STRTOD
00295 # define HAVE_SSCANF
00296 # define HAVE_STRTOL
00297 # define HAVE_STRTOUL
00298 # define HAVE_STRTOLL
00299 # define HAVE_STRTOULL
00300 # define HAVE_SYS_TIMEB_H
00301 # define HAVE_FTIME
00302 # define HAVE_RAND_R
00303 # define HAVE_GMTIME_R
00304 # define HAVE_LOCALTIME_R
00305 # define HAVE_TIMEGM
00306 # define HAVE_WCTOMB
00307 # define HAVE_MBTOWC
00308 # define HAVE_ISNAN
00309 # elif defined(TRU64)
00310 # define HAVE_STRRCHR
00311 # define HAVE_STRTOD
00312 # define HAVE_SSCANF
00313 # define HAVE_STRTOL
00314 # define HAVE_STRTOUL
00315 # define HAVE_GETTIMEOFDAY
00316 # define HAVE_SYS_TIMEB_H
00317 # define HAVE_RAND_R
00318 # define HAVE_GMTIME_R
00319 # define HAVE_LOCALTIME_R
00320 # define __USE_STD_IOSTREAM
00321 # define HAVE_WCTOMB
00322 # define HAVE_MBTOWC
00323 # define SOAP_LONG_FORMAT "%ld"
00324 # define SOAP_ULONG_FORMAT "%lu"
00325 # elif defined(MAC_CARBON)
00326 # define WITH_NOIO
00327 # define HAVE_STRRCHR
00328 # define HAVE_STRTOD
00329 # define HAVE_SSCANF
00330 # define HAVE_STRTOL
00331 # define HAVE_STRTOUL
00332 # define HAVE_FTIME
00333 # define HAVE_RAND_R
00334 # define HAVE_GETHOSTBYNAME_R
00335 # define HAVE_GMTIME_R
00336 # define HAVE_LOCALTIME_R
00337 # define HAVE_WCTOMB
00338 # define HAVE_MBTOWC
00339 # elif defined(PALM)
00340 # define WITH_LEAN
00341 # define HAVE_STRTOD
00342 # include <stdlib.h>
00343 # include <sys_types.h>
00344 # define IGNORE_STDIO_STUBS
00345 # include <StdIOPalm.h>
00346 # define O_NONBLOCK FNONBIO
00347 # include <sys_socket.h>
00348 # include "palmFunctions.h"
00349 # elif defined(SYMBIAN)
00350 # define WITH_LEAN
00351 # define WITH_NONAMESPACES
00352 # define HAVE_STRTOD
00353 # include <e32def.h>
00354 # include <sys/ioctl.h>
00355 # elif defined(VXWORKS)
00356 # define HAVE_STRRCHR
00357 # define HAVE_STRTOD
00358 # define HAVE_SSCANF
00359 # define HAVE_STRTOL
00360 # define HAVE_STRTOUL
00361 # define HAVE_PGMTIME_R
00362 # define HAVE_PLOCALTIME_R
00363 # define HAVE_MKTIME
00364 # elif defined(OS390)
00365 # define HAVE_STRRCHR
00366 # define HAVE_STRTOD
00367 # define HAVE_SSCANF
00368 # define HAVE_STRTOL
00369 # define HAVE_STRTOUL
00370 # define HAVE_SYS_TIMEB_H
00371 # define HAVE_FTIME
00372 # define HAVE_RAND_R
00373 # define HAVE_GMTIME_R
00374 # define HAVE_LOCALTIME_R
00375 # define HAVE_WCTOMB
00376 # define HAVE_MBTOWC
00377 # elif defined(AS400)
00378 # define HAVE_STRRCHR
00379 # define HAVE_STRTOD
00380 # define HAVE_SSCANF
00381 # define HAVE_STRTOL
00382 # define HAVE_STRTOUL
00383 # define HAVE_SYS_TIMEB_H
00384 # define HAVE_FTIME
00385 # define HAVE_RAND_R
00386 # define HAVE_GMTIME_R
00387 # define HAVE_LOCALTIME_R
00388 # define HAVE_WCTOMB
00389 # define HAVE_MBTOWC
00390 # elif defined(__QNX__) || defined(QNX)
00391
00392 # undef HAVE_STRTOF
00393 # define HAVE_STRRCHR
00394 # define HAVE_STRTOD
00395 # define HAVE_SSCANF
00396 # define HAVE_STRTOL
00397 # define HAVE_STRTOUL
00398 # define HAVE_SYS_TIMEB_H
00399 # define HAVE_FTIME
00400 # define HAVE_RAND_R
00401 # define HAVE_GETHOSTBYNAME_R
00402 # define HAVE_GMTIME_R
00403 # define HAVE_LOCALTIME_R
00404 # define HAVE_WCTOMB
00405 # define HAVE_MBTOWC
00406 # define LONG64 long
00407 # define ULONG64 unsigned LONG64
00408 # define SOAP_LONG_FORMAT "%ld"
00409 # define SOAP_ULONG_FORMAT "%lu"
00410 # else
00411
00412 # define HAVE_STRRCHR
00413 # define HAVE_STRTOD
00414 # define HAVE_SSCANF
00415 # define HAVE_STRTOL
00416 # define HAVE_STRTOUL
00417 # define HAVE_SYS_TIMEB_H
00418 # define HAVE_FTIME
00419 # define HAVE_RAND_R
00420 # define HAVE_GETHOSTBYNAME_R
00421 # define HAVE_GMTIME_R
00422 # define HAVE_LOCALTIME_R
00423 # define HAVE_WCTOMB
00424 # define HAVE_MBTOWC
00425 # endif
00426 #endif
00427
00428 #ifndef SOAP_LONG_FORMAT
00429 # define SOAP_LONG_FORMAT "%lld"
00430 #endif
00431
00432 #ifndef SOAP_ULONG_FORMAT
00433 # define SOAP_ULONG_FORMAT "%llu"
00434 #endif
00435
00436 #ifndef WITH_NOSTDLIB
00437 # include <stdlib.h>
00438 # ifndef PALM
00439 # include <stdio.h>
00440 # include <string.h>
00441 # endif
00442 # include <ctype.h>
00443 # include <limits.h>
00444 #endif
00445
00446 #if defined(__cplusplus) && !defined(WITH_LEAN)
00447 # include <string>
00448 # include <iostream>
00449 #endif
00450
00451 #ifdef WITH_NOHTTP
00452 # ifndef WITH_NOIO
00453 # define WITH_NOIO
00454 # undef WITH_COOKIES
00455 # endif
00456 #endif
00457
00458 #ifndef UNDER_CE
00459 # ifndef PALM
00460 # ifndef WITH_NOIO
00461 # include <errno.h>
00462 # include <sys/types.h>
00463 # endif
00464 # ifndef WITH_LEAN
00465 # ifdef HAVE_SYS_TIMEB_H
00466 # include <sys/timeb.h>
00467 # endif
00468 # include <time.h>
00469 # endif
00470 # endif
00471 #endif
00472
00473 #ifdef OPENSERVER
00474 # include <sys/socket.h>
00475 # include <sys/stream.h>
00476 # include <sys/protosw.h>
00477 extern int h_errno;
00478 #endif
00479
00480 #ifndef WITH_NOIO
00481 # ifndef WIN32
00482 # ifndef PALM
00483 # include <sys/socket.h>
00484 # ifdef VXWORKS
00485 # include <sockLib.h>
00486 # include <selectLib.h>
00487 # endif
00488 # ifndef VXWORKS
00489 # ifndef SYMBIAN
00490 # include <strings.h>
00491 # endif
00492 # endif
00493 # ifdef SUN_OS
00494 # include <sys/stream.h>
00495 # include <sys/socketvar.h>
00496 # endif
00497 # ifdef VXWORKS
00498 # ifdef _WRS_KERNEL
00499 # include <sys/times.h>
00500 # endif
00501 # else
00502 # include <sys/time.h>
00503 # endif
00504 # include <netinet/in.h>
00505 # ifdef OS390
00506 # include <netinet/tcp_var.h>
00507 # else
00508 # include <netinet/tcp.h>
00509 # endif
00510 # include <arpa/inet.h>
00511 # endif
00512 # endif
00513 #endif
00514
00515 #ifdef WITH_FASTCGI
00516 # include <fcgi_stdio.h>
00517 #endif
00518
00519 #ifdef WITH_OPENSSL
00520 # define OPENSSL_NO_KRB5
00521 # include <openssl/bio.h>
00522 # include <openssl/err.h>
00523 # include <openssl/rand.h>
00524 # include <openssl/ssl.h>
00525 # include <openssl/x509v3.h>
00526 # ifndef ALLOW_OLD_VERSIONS
00527 # if (OPENSSL_VERSION_NUMBER < 0x00905100L)
00528 # error "Must use OpenSSL 0.9.6 or later"
00529 # endif
00530 # endif
00531 #endif
00532
00533 #ifdef WITH_GZIP
00534 # ifndef WITH_ZLIB
00535 # define WITH_ZLIB
00536 # endif
00537 #endif
00538
00539 #ifdef WITH_CASEINSENSITIVETAGS
00540 # define SOAP_STRCMP soap_tag_cmp
00541 #else
00542 # define SOAP_STRCMP strcmp
00543 #endif
00544
00545 #ifdef WITH_ZLIB
00546 # include <zlib.h>
00547 #endif
00548
00549 #ifndef WITH_NOSTDLIB
00550 # ifndef PALM
00551 # include <math.h>
00552 # endif
00553 #endif
00554
00555
00556
00557 #ifdef __cplusplus
00558 extern "C" {
00559 #endif
00560
00561 #ifdef WIN32
00562 # ifndef UNDER_CE
00563 # include <io.h>
00564 # include <fcntl.h>
00565 # endif
00566 # include <winsock.h>
00567
00568 # ifdef WITH_IPV6
00569 # include <ws2tcpip.h>
00570 # include <wspiapi.h>
00571 # endif
00572 #else
00573 # ifdef VXWORKS
00574 # include <hostLib.h>
00575 # include <ioctl.h>
00576 # include <ioLib.h>
00577 # endif
00578 # ifndef WITH_NOIO
00579 # ifndef PALM
00580 # include <netdb.h>
00581 # include <netinet/in.h>
00582 # include <unistd.h>
00583 # include <fcntl.h>
00584 # endif
00585 # endif
00586 #endif
00587
00588
00589 #if defined(_AIX)
00590 # define SOAP_SOCKLEN_T socklen_t
00591 #elif defined(SOCKLEN_T)
00592 # define SOAP_SOCKLEN_T SOCKLEN_T
00593 #elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(__QNX__) || defined(QNX)
00594 # define SOAP_SOCKLEN_T socklen_t
00595 #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(HP_UX) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS)
00596 # define SOAP_SOCKLEN_T int
00597 #else
00598 # define SOAP_SOCKLEN_T size_t
00599 #endif
00600
00601 #ifndef SOAP_SOCKET
00602 # ifdef WIN32
00603 # define SOAP_SOCKET SOCKET
00604 # define soap_closesocket(n) closesocket(n)
00605 # else
00606 # define SOAP_SOCKET int
00607 # define soap_closesocket(n) close(n)
00608 # endif
00609 #endif
00610
00611 #define SOAP_INVALID_SOCKET (-1)
00612 #define soap_valid_socket(n) ((n) != SOAP_INVALID_SOCKET)
00613
00614 #ifndef FD_SETSIZE
00615 # define FD_SETSIZE (1024)
00616 #endif
00617
00618 #if defined(SYMBIAN)
00619 # define LONG64 long
00620 # define ULONG64 unsigned LONG64
00621 #elif !defined(WIN32) || defined(CYGWIN) || defined(__GLIBC__) || defined(__GNU__)
00622 # ifndef LONG64
00623 # define LONG64 long long
00624 # define ULONG64 unsigned LONG64
00625 # endif
00626 #elif defined(UNDER_CE)
00627 # define LONG64 __int64
00628 # define ULONG64 unsigned LONG64
00629 #elif defined(__BORLANDC__)
00630 # define LONG64 __int64
00631 # define ULONG64 unsigned LONG64
00632 #endif
00633
00634 #if defined(WIN32) && !defined(CYGWIN)
00635 # define soap_int32 __int32
00636 #elif defined(SYMBIAN)
00637 # define soap_int32 long
00638 #elif defined(PALM)
00639 # define soap_int32 Int32
00640 #else
00641 # define soap_int32 int32_t
00642 #endif
00643
00644 #ifdef WIN32
00645 # define SOAP_ERANGE ERANGE
00646 # define SOAP_EINTR WSAEINTR
00647 # define SOAP_EAGAIN WSAEWOULDBLOCK
00648 # define SOAP_EWOULDBLOCK WSAEWOULDBLOCK
00649 # define SOAP_EINPROGRESS WSAEINPROGRESS
00650 #else
00651 # define SOAP_ERANGE ERANGE
00652 # define SOAP_EINTR EINTR
00653 # define SOAP_EAGAIN EAGAIN
00654 # ifdef SYMBIAN
00655 # define SOAP_EWOULDBLOCK 9898
00656 # define SOAP_EINPROGRESS 9899
00657 # else
00658 # define SOAP_EWOULDBLOCK EWOULDBLOCK
00659 # define SOAP_EINPROGRESS EINPROGRESS
00660 # endif
00661 #endif
00662
00663 #ifdef WIN32
00664 # ifdef UNDER_CE
00665 # define soap_errno GetLastError()
00666 # define soap_socket_errno GetLastError()
00667 # define soap_reset_errno SetLastError(0)
00668 # else
00669 # define soap_errno GetLastError()
00670 # define soap_socket_errno WSAGetLastError()
00671 # define soap_reset_errno SetLastError(0)
00672 # endif
00673 #else
00674 # ifndef WITH_NOIO
00675 # define soap_errno errno
00676 # define soap_socket_errno errno
00677 # define soap_reset_errno (errno = 0)
00678 # else
00679 # define soap_errno 0
00680 # define soap_socket_errno 0
00681 # define soap_reset_errno
00682 # endif
00683 #endif
00684
00685 #ifndef SOAP_BUFLEN
00686 # ifdef WITH_UDP
00687 # define SOAP_BUFLEN (65536)
00688 # else
00689 # ifndef WITH_LEAN
00690 # define SOAP_BUFLEN (65536)
00691 # else
00692 # define SOAP_BUFLEN (2048)
00693 # endif
00694 # endif
00695 #endif
00696 #ifndef SOAP_LABLEN
00697 # define SOAP_LABLEN (64)
00698 #endif
00699 #ifndef SOAP_PTRBLK
00700 # define SOAP_PTRBLK (32)
00701 #endif
00702 #ifndef SOAP_PTRHASH
00703 # ifndef WITH_LEAN
00704 # define SOAP_PTRHASH (1024)
00705 # else
00706 # define SOAP_PTRHASH (32)
00707 # endif
00708 #endif
00709 #ifndef SOAP_IDHASH
00710 # ifndef WITH_LEAN
00711 # define SOAP_IDHASH (1999)
00712 # else
00713 # define SOAP_IDHASH (19)
00714 # endif
00715 #endif
00716 #ifndef SOAP_BLKLEN
00717 # ifndef WITH_LEAN
00718 # define SOAP_BLKLEN (256)
00719 # else
00720 # define SOAP_BLKLEN (32)
00721 # endif
00722 #endif
00723 #ifndef SOAP_TAGLEN
00724 # ifndef WITH_LEAN
00725 # define SOAP_TAGLEN (1024)
00726 # else
00727 # define SOAP_TAGLEN (64)
00728 # endif
00729 #endif
00730 #ifndef SOAP_HDRLEN
00731 # ifndef WITH_LEAN
00732 # define SOAP_HDRLEN (8192)
00733 # else
00734 # define SOAP_HDRLEN (1024)
00735 # endif
00736 #endif
00737 #ifndef SOAP_MAXDIMS
00738 # ifndef WITH_LEAN
00739 # define SOAP_MAXDIMS (16)
00740 # else
00741 # define SOAP_MAXDIMS (4)
00742 # endif
00743 #endif
00744
00745 #ifndef SOAP_MAXLOGS
00746 # define SOAP_MAXLOGS (3)
00747 # define SOAP_INDEX_RECV (0)
00748 # define SOAP_INDEX_SENT (1)
00749 # define SOAP_INDEX_TEST (2)
00750 #endif
00751
00752 #ifndef SOAP_MAXKEEPALIVE
00753 # define SOAP_MAXKEEPALIVE (100)
00754 #endif
00755
00756 #ifndef SOAP_MAXARRAYSIZE
00757 # define SOAP_MAXARRAYSIZE (100000)
00758 #endif
00759
00760 #ifdef VXWORKS
00761 # ifdef __INCmathh
00762 # include <private/mathP.h>
00763 # ifndef HAVE_ISNAN
00764 # define HAVE_ISNAN
00765 # endif
00766 # define soap_isnan(num) isNan(num)
00767 # endif
00768 #endif
00769
00770 #ifdef WIN32
00771 # include <float.h>
00772 # ifndef HAVE_ISNAN
00773 # define HAVE_ISNAN
00774 # endif
00775 # define soap_isnan(num) _isnan(num)
00776 #endif
00777
00778 #ifdef SUN_OS
00779 # define HAVE_ISNAN
00780 #endif
00781
00782 #ifdef __APPLE__
00783 # ifdef __cplusplus
00784 # ifndef isnan
00785 extern "C" int isnan(double);
00786 # endif
00787 # endif
00788 # define HAVE_ISNAN
00789 #endif
00790
00791 #if !defined(HAVE_ISNAN) && (defined(_MATH_H) || defined(_MATH_INCLUDED))
00792 # define HAVE_ISNAN
00793 #endif
00794
00795 extern const struct soap_double_nan { unsigned int n1, n2; } soap_double_nan;
00796
00797 #ifdef VXWORKS
00798 # ifndef FLT_MAX
00799 # define FLT_MAX _ARCH_FLT_MAX
00800 # endif
00801 # ifndef DBL_MAX
00802 # define DBL_MAX _ARCH_DBL_MAX
00803 # endif
00804 #endif
00805
00806 #ifndef FLT_NAN
00807 # define FLT_NAN (*(float*)(void*)&soap_double_nan)
00808 #endif
00809
00810 #ifndef FLT_PINFTY
00811 # if defined(FLT_MAX)
00812 # define FLT_PINFTY FLT_MAX
00813 # elif defined(HUGE_VALF)
00814 # define FLT_PINFTY (float)HUGE_VALF
00815 # elif defined(HUGE_VAL)
00816 # define FLT_PINFTY (float)HUGE_VAL
00817 # elif defined(FLOAT_MAX)
00818 # define FLT_PINFTY FLOAT_MAX
00819 # else
00820 # define FLT_PINFTY (3.40282347e+38F)
00821 # endif
00822 #endif
00823
00824 #ifndef FLT_NINFTY
00825 # define FLT_NINFTY (-FLT_PINFTY)
00826 #endif
00827
00828 #ifndef DBL_NAN
00829 # define DBL_NAN (*(double*)(void*)&soap_double_nan)
00830 #endif
00831
00832 #ifndef DBL_PINFTY
00833 # if defined(DBL_MAX)
00834 # define DBL_PINFTY DBL_MAX
00835 # elif defined(HUGE_VALF)
00836 # define DBL_PINFTY (double)HUGE_VALF
00837 # elif defined(HUGE_VAL)
00838 # define DBL_PINFTY (double)HUGE_VAL
00839 # elif defined(DOUBLE_MAX)
00840 # define DBL_PINFTY DOUBLE_MAX
00841 # else
00842 # define DBL_PINFTY (1.7976931348623157e+308)
00843 # endif
00844 #endif
00845
00846 #ifndef DBL_NINFTY
00847 # define DBL_NINFTY (-DBL_PINFTY)
00848 #endif
00849
00850 #ifndef soap_isnan
00851 # ifdef HAVE_ISNAN
00852 # define soap_isnan(n) isnan(n)
00853 # else
00854 # define soap_isnan(n) (0)
00855 # endif
00856 #endif
00857
00858 #define soap_ispinfd(n) ((n) >= DBL_PINFTY)
00859 #define soap_ispinff(n) ((n) >= FLT_PINFTY)
00860 #define soap_isninfd(n) ((n) <= DBL_NINFTY)
00861 #define soap_isninff(n) ((n) <= FLT_NINFTY)
00862
00863
00864
00865 #define SOAP_EOF EOF
00866 #define SOAP_ERR EOF
00867 #define SOAP_OK 0
00868 #define SOAP_CLI_FAULT 1
00869 #define SOAP_SVR_FAULT 2
00870 #define SOAP_TAG_MISMATCH 3
00871 #define SOAP_TYPE 4
00872 #define SOAP_SYNTAX_ERROR 5
00873 #define SOAP_NO_TAG 6
00874 #define SOAP_IOB 7
00875 #define SOAP_MUSTUNDERSTAND 8
00876 #define SOAP_NAMESPACE 9
00877 #define SOAP_USER_ERROR 10
00878 #define SOAP_FATAL_ERROR 11
00879 #define SOAP_FAULT 12
00880 #define SOAP_NO_METHOD 13
00881 #define SOAP_GET_METHOD 14
00882 #define SOAP_EOM 15
00883 #define SOAP_NULL 16
00884 #define SOAP_DUPLICATE_ID 17
00885 #define SOAP_MISSING_ID 18
00886 #define SOAP_HREF 19
00887 #define SOAP_UDP_ERROR 20
00888 #define SOAP_TCP_ERROR 21
00889 #define SOAP_HTTP_ERROR 22
00890 #define SOAP_SSL_ERROR 23
00891 #define SOAP_ZLIB_ERROR 24
00892 #define SOAP_DIME_ERROR 25
00893 #define SOAP_DIME_HREF 26
00894 #define SOAP_DIME_MISMATCH 27
00895 #define SOAP_DIME_END 28
00896 #define SOAP_MIME_ERROR 29
00897 #define SOAP_MIME_HREF 30
00898 #define SOAP_MIME_END 31
00899 #define SOAP_VERSIONMISMATCH 32
00900 #define SOAP_PLUGIN_ERROR 33
00901 #define SOAP_DATAENCODINGUNKNOWN 34
00902 #define SOAP_REQUIRED 35
00903 #define SOAP_PROHIBITED 36
00904 #define SOAP_OCCURS 37
00905 #define SOAP_LENGTH 38
00906 #define SOAP_FD_EXCEEDED 39
00907
00908 #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)
00909 #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)
00910 #define soap_tcp_error_check(e) ((e) == SOAP_EOF || (e) == SOAP_TCP_ERROR)
00911 #define soap_ssl_error_check(e) ((e) == SOAP_SSL_ERROR)
00912 #define soap_zlib_error_check(e) ((e) == SOAP_ZLIB_ERROR)
00913 #define soap_http_error_check(e) ((e) == SOAP_HTTP_ERROR || (e) == SOAP_GET_METHOD || ((e) >= 100 && (e) < 600))
00914
00915
00916
00917
00918
00919
00920
00921 #define SOAP_STOP 1000
00922 #define SOAP_FORM 1001
00923 #define SOAP_HTML 1002
00924 #define SOAP_FILE 1003
00925
00926
00927
00928 #define SOAP_POST 2000
00929 #define SOAP_GET 2001
00930
00931
00932
00933 #define SOAP_DIME_CF 0x01
00934 #define SOAP_DIME_ME 0x02
00935 #define SOAP_DIME_MB 0x04
00936 #define SOAP_DIME_VERSION 0x08
00937 #define SOAP_DIME_MEDIA 0x10
00938 #define SOAP_DIME_ABSURI 0x20
00939
00940
00941
00942 #define SOAP_ZLIB_NONE 0x00
00943 #define SOAP_ZLIB_DEFLATE 0x01
00944 #define SOAP_ZLIB_INFLATE 0x02
00945 #define SOAP_ZLIB_GZIP 0x02
00946
00947
00948
00949 typedef soap_int32 soap_mode;
00950
00951 #define SOAP_IO 0x00000003
00952 #define SOAP_IO_FLUSH 0x00000000
00953 #define SOAP_IO_BUFFER 0x00000001
00954 #define SOAP_IO_STORE 0x00000002
00955 #define SOAP_IO_CHUNK 0x00000003
00956
00957 #define SOAP_IO_UDP 0x00000004
00958
00959 #define SOAP_IO_LENGTH 0x00000008
00960 #define SOAP_IO_KEEPALIVE 0x00000010
00961
00962 #define SOAP_ENC_LATIN 0x00000020
00963 #define SOAP_ENC_XML 0x00000040
00964 #define SOAP_ENC_DIME 0x00000080
00965 #define SOAP_ENC_MIME 0x00000100
00966 #define SOAP_ENC_MTOM 0x00000200
00967 #define SOAP_ENC_ZLIB 0x00000400
00968 #define SOAP_ENC_SSL 0x00000800
00969
00970 #define SOAP_ENC 0x00000FFF
00971
00972 #define SOAP_XML_STRICT 0x00001000
00973 #define SOAP_XML_INDENT 0x00002000
00974 #define SOAP_XML_CANONICAL 0x00004000
00975 #define SOAP_XML_TREE 0x00008000
00976 #define SOAP_XML_GRAPH 0x00010000
00977 #define SOAP_XML_NIL 0x00020000
00978 #define SOAP_XML_DOM 0x00040000
00979 #define SOAP_XML_SEC 0x00080000
00980
00981 #define SOAP_C_NOIOB 0x00100000
00982 #define SOAP_C_UTFSTRING 0x00200000
00983 #define SOAP_C_MBSTRING 0x00400000
00984 #define SOAP_C_NILSTRING 0x00800000
00985
00986 #define SOAP_DOM_TREE 0x01000000
00987 #define SOAP_DOM_NODE 0x02000000
00988 #define SOAP_DOM_ASIS 0x04000000
00989
00990 #define SOAP_MIME_POSTCHECK 0x10000000
00991
00992 #define SOAP_IO_DEFAULT SOAP_IO_FLUSH
00993
00994
00995
00996 #define SOAP_SSL_NO_AUTHENTICATION 0x00
00997 #define SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION 0x01
00998 #define SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION 0x02
00999
01000 #define SOAP_SSL_DEFAULT SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION
01001
01002
01003
01004 #define SOAP_INIT 1
01005 #define SOAP_COPY 2
01006
01007 #define soap_check_state(soap) (!(soap) || ((soap)->state != SOAP_INIT && (soap)->state != SOAP_COPY))
01008
01009
01010
01011 #define SOAP_BEGIN 0
01012 #define SOAP_IN_ENVELOPE 2
01013 #define SOAP_IN_HEADER 3
01014 #define SOAP_END_HEADER 4
01015 #define SOAP_NO_BODY 5
01016 #define SOAP_IN_BODY 6
01017 #define SOAP_END_BODY 7
01018 #define SOAP_END_ENVELOPE 8
01019 #define SOAP_END 9
01020 #define SOAP_BEGIN_SECURITY 10
01021 #define SOAP_IN_SECURITY 11
01022 #define SOAP_END_SECURITY 12
01023
01024
01025
01026 #ifndef WITH_LEAN
01027 # ifdef DEBUG
01028 # ifndef SOAP_DEBUG
01029 # define SOAP_DEBUG
01030 # endif
01031 # endif
01032 #endif
01033
01034 #ifdef SOAP_DEBUG
01035 # define SOAP_MALLOC(soap, size) soap_track_malloc(soap, __FILE__, __LINE__, size)
01036 # define SOAP_FREE(soap, ptr) soap_track_free(soap, __FILE__, __LINE__, ptr)
01037 #endif
01038
01039 #ifndef SOAP_MALLOC
01040 # define SOAP_MALLOC(soap, size) malloc(size)
01041 #endif
01042
01043 #ifndef SOAP_FREE
01044 # define SOAP_FREE(soap, ptr) free(ptr)
01045 #endif
01046
01047 #ifdef SOAP_DEBUG
01048 # ifndef SOAP_MESSAGE
01049 # define SOAP_MESSAGE fprintf
01050 # endif
01051 # ifndef DBGLOG
01052 # define DBGLOG(DBGFILE, CMD) \
01053 { if (soap)\
01054 { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
01055 soap_open_logfile((struct soap*)soap, SOAP_INDEX_##DBGFILE);\
01056 if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
01057 { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\
01058 CMD;\
01059 fflush(fdebug);\
01060 }\
01061 }\
01062 }
01063 # endif
01064 # ifndef DBGMSG
01065 # define DBGMSG(DBGFILE, MSG, LEN) \
01066 { if (soap)\
01067 { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
01068 soap_open_logfile((struct soap*)soap, SOAP_INDEX_##DBGFILE);\
01069 if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
01070 { fwrite((MSG), 1, (LEN), soap->fdebug[SOAP_INDEX_##DBGFILE]);\
01071 fflush(soap->fdebug[SOAP_INDEX_##DBGFILE]);\
01072 }\
01073 }\
01074 }
01075 # endif
01076 # ifndef DGBFUN
01077 # define DBGFUN(FNAME) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s()\n", __FILE__, __LINE__, FNAME))
01078 # define DBGFUN1(FNAME, FMT, ARG) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT")\n", __FILE__, __LINE__, FNAME, (ARG)))
01079 # define DBGFUN2(FNAME, FMT1, ARG1, FMT2, ARG2) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT1", "FMT2")\n", __FILE__, __LINE__, FNAME, (ARG1), (ARG2)))
01080 # 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)))
01081 # endif
01082 # ifndef DBGHEX
01083 # define DBGHEX(DBGFILE, MSG, LEN) \
01084 { if (soap)\
01085 { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
01086 soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\
01087 if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
01088 { int i; char *s;\
01089 for (s = (char*)(MSG), i = (LEN); i; i--)\
01090 fprintf(soap->fdebug[SOAP_INDEX_##DBGFILE], "%2.2X ", (int)*s++&0xFF);\
01091 fflush(soap->fdebug[SOAP_INDEX_##DBGFILE]);\
01092 }\
01093 }\
01094 }
01095 # endif
01096 #else
01097 # define DBGLOG(DBGFILE, CMD)
01098 # define DBGMSG(DBGFILE, MSG, LEN)
01099 # define DBGFUN(FNAME)
01100 # define DBGFUN1(FNAME, FMT, ARG)
01101 # define DBGFUN2(FNAME, FMT1, ARG1, FMT2, ARG2)
01102 # define DBGFUN3(FNAME, FMT1, ARG1, FMT2, ARG2, FMT3, ARG3)
01103 # define DBGHEX(DBGFILE, MSG, LEN)
01104 #endif
01105
01106
01107 typedef soap_int32 soap_wchar;
01108
01109
01110 struct Namespace
01111 { const char *id;
01112 const char *ns;
01113 const char *in;
01114 char *out;
01115 };
01116
01117
01118 struct soap_nlist
01119 { struct soap_nlist *next;
01120 unsigned int level;
01121 short index;
01122 char *ns;
01123 char id[1];
01124 };
01125
01126
01127 struct soap_blist
01128 { struct soap_blist *next;
01129 char *ptr;
01130 size_t size;
01131 };
01132
01133
01134 struct soap_array
01135 { void *__ptr;
01136 int __size;
01137 };
01138
01139
01140 struct soap_plist
01141 { struct soap_plist *next;
01142 const void *ptr;
01143 const struct soap_array *array;
01144 int type;
01145 int id;
01146 char mark1;
01147 char mark2;
01148 };
01149
01150
01151 struct soap_pblk
01152 { struct soap_pblk *next;
01153 struct soap_plist plist[SOAP_PTRBLK];
01154 };
01155
01156 #ifdef SOAP_DEBUG
01157
01158 struct soap_mlist
01159 { struct soap_mlist *next;
01160 const void *ptr;
01161 const char *file;
01162 int line;
01163 short live;
01164 };
01165 #endif
01166
01167
01168 struct soap_clist
01169 { struct soap_clist *next;
01170 void *ptr;
01171 int type;
01172 int size;
01173 void (*fdelete)(struct soap_clist*);
01174 };
01175
01176
01177 struct soap_attribute
01178 { struct soap_attribute *next;
01179 char *value;
01180 size_t size;
01181 char *ns;
01182 short visible;
01183 char name[1];
01184 };
01185
01186 #ifndef WITH_LEAN
01187 struct soap_cookie
01188 { struct soap_cookie *next;
01189 char *name;
01190 char *value;
01191 char *domain;
01192 char *path;
01193 time_t expire;
01194 long maxage;
01195 unsigned int version;
01196 short secure;
01197 short session;
01198 short env;
01199 short modified;
01200 };
01201 #endif
01202
01203 #ifdef __cplusplus
01204 SOAP_FMAC1 struct soap_multipart* SOAP_FMAC2 soap_next_multipart(struct soap_multipart*);
01205
01206 class soap_multipart_iterator
01207 { public:
01208 struct soap_multipart *content;
01209 bool operator==(const soap_multipart_iterator& iter) const
01210 { return content == iter.content; }
01211 bool operator!=(const soap_multipart_iterator& iter) const
01212 { return content != iter.content; }
01213 struct soap_multipart &operator*() const
01214 { return *content; }
01215 soap_multipart_iterator &operator++()
01216 { content = soap_next_multipart(content); return *this; }
01217 soap_multipart_iterator() : content(NULL)
01218 { }
01219 soap_multipart_iterator(struct soap_multipart *p) : content(p)
01220 { }
01221 };
01222 #endif
01223
01224 #ifndef WITH_LEANER
01225 struct soap_dime
01226 { size_t count;
01227 size_t size;
01228 size_t chunksize;
01229 size_t buflen;
01230 char flags;
01231 char *ptr;
01232 const char *id;
01233 const char *type;
01234 const char *options;
01235 struct soap_multipart *list;
01236 struct soap_multipart *first, *last;
01237 #ifdef __cplusplus
01238 soap_multipart_iterator begin()
01239 { soap_multipart_iterator iter(list); return iter; };
01240 soap_multipart_iterator end()
01241 { soap_multipart_iterator iter(NULL); return iter; };
01242 #endif
01243 };
01244 #endif
01245
01246 #ifndef WITH_LEANER
01247 struct soap_mime
01248 { char *boundary;
01249 const char *start;
01250 struct soap_multipart *list;
01251 struct soap_multipart *first, *last;
01252 #ifdef __cplusplus
01253 soap_multipart_iterator begin()
01254 { soap_multipart_iterator iter(list); return iter; };
01255 soap_multipart_iterator end()
01256 { soap_multipart_iterator iter(NULL); return iter; };
01257 #endif
01258 };
01259 #endif
01260
01261 #ifndef WITH_LEANER
01262
01263 enum soap_mime_encoding
01264 { SOAP_MIME_NONE,
01265 SOAP_MIME_7BIT,
01266 SOAP_MIME_8BIT,
01267 SOAP_MIME_BINARY,
01268 SOAP_MIME_QUOTED_PRINTABLE,
01269 SOAP_MIME_BASE64,
01270 SOAP_MIME_IETF_TOKEN,
01271 SOAP_MIME_X_TOKEN
01272 };
01273 #endif
01274
01275 #ifndef WITH_LEANER
01276
01277 struct soap_multipart
01278 { struct soap_multipart *next;
01279 char *ptr;
01280 size_t size;
01281 const char *id;
01282 const char *type;
01283 const char *options;
01284 enum soap_mime_encoding encoding;
01285 const char *location;
01286 const char *description;
01287 #ifdef __cplusplus
01288 typedef soap_multipart_iterator iterator;
01289 #endif
01290 };
01291 #endif
01292
01293 #ifndef WITH_LEANER
01294
01295 struct soap_xlist
01296 { struct soap_xlist *next;
01297 unsigned char **ptr;
01298 int *size;
01299 char *id;
01300 char **type;
01301 char **options;
01302 };
01303 #endif
01304
01305
01306
01307 #ifndef WITH_LEANER
01308 #ifdef __cplusplus
01309 class soap_dom_attribute_iterator
01310 { public:
01311 struct soap_dom_attribute *att;
01312 const char *nstr;
01313 const char *name;
01314 bool operator==(const soap_dom_attribute_iterator&) const;
01315 bool operator!=(const soap_dom_attribute_iterator&) const;
01316 struct soap_dom_attribute &operator*() const;
01317 soap_dom_attribute_iterator &operator++();
01318 soap_dom_attribute_iterator();
01319 soap_dom_attribute_iterator(struct soap_dom_attribute*);
01320 ~soap_dom_attribute_iterator();
01321 };
01322 #endif
01323 #endif
01324
01325 #ifndef WITH_LEANER
01326 struct soap_dom_attribute
01327 { struct soap_dom_attribute *next;
01328 const char *nstr;
01329 char *name;
01330 char *data;
01331 wchar_t *wide;
01332 struct soap *soap;
01333 #ifdef __cplusplus
01334 typedef soap_dom_attribute_iterator iterator;
01335 struct soap_dom_attribute &set(const char *nstr, const char *name);
01336 struct soap_dom_attribute &set(const char *data);
01337 soap_dom_attribute_iterator begin();
01338 soap_dom_attribute_iterator end();
01339 soap_dom_attribute_iterator find(const char *nstr, const char *name);
01340 void unlink();
01341 soap_dom_attribute();
01342 soap_dom_attribute(struct soap *soap);
01343 soap_dom_attribute(struct soap *soap, const char *nstr, const char *name, const char *data);
01344 ~soap_dom_attribute();
01345 #endif
01346 };
01347 #endif
01348
01349 #ifndef WITH_LEANER
01350 #ifdef __cplusplus
01351 class soap_dom_element_iterator
01352 { public:
01353 struct soap_dom_element *elt;
01354 const char *nstr;
01355 const char *name;
01356 int type;
01357 bool operator==(const soap_dom_element_iterator&) const;
01358 bool operator!=(const soap_dom_element_iterator&) const;
01359 struct soap_dom_element &operator*() const;
01360 soap_dom_element_iterator &operator++();
01361 soap_dom_element_iterator();
01362 soap_dom_element_iterator(struct soap_dom_element*);
01363 ~soap_dom_element_iterator();
01364 };
01365 #endif
01366 #endif
01367
01368 #ifndef WITH_LEANER
01369 struct soap_dom_element
01370 { struct soap_dom_element *next;
01371 struct soap_dom_element *prnt;
01372 struct soap_dom_element *elts;
01373 struct soap_dom_attribute *atts;
01374 const char *nstr;
01375 char *name;
01376 char *data;
01377 wchar_t *wide;
01378 int type;
01379 void *node;
01380 char *head;
01381 char *tail;
01382 struct soap *soap;
01383 #ifdef __cplusplus
01384 typedef soap_dom_element_iterator iterator;
01385 struct soap_dom_element &set(const char *nstr, const char *name);
01386 struct soap_dom_element &set(const char *data);
01387 struct soap_dom_element &set(void *node, int type);
01388 struct soap_dom_element &add(struct soap_dom_element*);
01389 struct soap_dom_element &add(struct soap_dom_element&);
01390 struct soap_dom_element &add(struct soap_dom_attribute*);
01391 struct soap_dom_element &add(struct soap_dom_attribute&);
01392 soap_dom_element_iterator begin();
01393 soap_dom_element_iterator end();
01394 soap_dom_element_iterator find(const char *nstr, const char *name);
01395 soap_dom_element_iterator find(int type);
01396 void unlink();
01397 soap_dom_element();
01398 soap_dom_element(struct soap *soap);
01399 soap_dom_element(struct soap *soap, const char *nstr, const char *name);
01400 soap_dom_element(struct soap *soap, const char *nstr, const char *name, const char *data);
01401 soap_dom_element(struct soap *soap, const char *nstr, const char *name, void *node, int type);
01402 ~soap_dom_element();
01403 #endif
01404 };
01405 SOAP_FMAC1 struct soap_dom_element * SOAP_FMAC2 soap_dom_next_element(struct soap_dom_element *elt);
01406 SOAP_FMAC1 struct soap_dom_attribute * SOAP_FMAC2 soap_dom_next_attribute(struct soap_dom_attribute *att);
01407 #endif
01408
01409 #if defined(__cplusplus) && !defined(WITH_LEAN)
01410 }
01411 extern std::ostream &operator<<(std::ostream&, const struct soap_dom_element&);
01412 extern std::istream &operator>>(std::istream&, struct soap_dom_element&);
01413 extern "C" {
01414 #endif
01415
01416
01417
01418 #ifdef WIN32
01419 # ifdef SOAP_STD_EXPORTS
01420 # define SOAP_STD_API __declspec(dllexport)
01421 # else
01422 # define SOAP_STD_API
01423 # endif
01424 #else
01425 # define SOAP_STD_API
01426 #endif
01427
01428 struct SOAP_STD_API soap
01429 { short state;
01430 short version;
01431 soap_mode mode;
01432 soap_mode imode;
01433 soap_mode omode;
01434 const char *float_format;
01435 const char *double_format;
01436 const char *dime_id_format;
01437 const char *http_version;
01438 const char *http_content;
01439 const char *encodingStyle;
01440 const char *actor;
01441 int recv_timeout;
01442 int send_timeout;
01443 int connect_timeout;
01444 int accept_timeout;
01445 int socket_flags;
01446 int connect_flags;
01447 int bind_flags;
01448 int accept_flags;
01449 const struct Namespace *namespaces;
01450 struct Namespace *local_namespaces;
01451 struct soap_nlist *nlist;
01452 struct soap_blist *blist;
01453 struct soap_clist *clist;
01454 void *alist;
01455 struct soap_ilist *iht[SOAP_IDHASH];
01456 struct soap_plist *pht[SOAP_PTRHASH];
01457 struct soap_pblk *pblk;
01458 short pidx;
01459 struct SOAP_ENV__Header *header;
01460 struct SOAP_ENV__Fault *fault;
01461 int idnum;
01462 void *user;
01463 struct soap_plugin *plugins;
01464 char *userid;
01465 char *passwd;
01466 int (*fpost)(struct soap*, const char*, const char*, int, const char*, const char*, size_t);
01467 int (*fget)(struct soap*);
01468 int (*fform)(struct soap*);
01469 int (*fposthdr)(struct soap*, const char*, const char*);
01470 int (*fresponse)(struct soap*, int, size_t);
01471 int (*fparse)(struct soap*);
01472 int (*fparsehdr)(struct soap*, const char*, const char*);
01473 int (*fheader)(struct soap*);
01474 int (*fresolve)(struct soap*, const char*, struct in_addr* inaddr);
01475 int (*fconnect)(struct soap*, const char*, const char*, int);
01476 int (*fdisconnect)(struct soap*);
01477 int (*fclosesocket)(struct soap*, SOAP_SOCKET);
01478 int (*fshutdownsocket)(struct soap*, SOAP_SOCKET, int);
01479 int (*fopen)(struct soap*, const char*, const char*, int);
01480 int (*faccept)(struct soap*, int, struct sockaddr*, int *n);
01481 int (*fclose)(struct soap*);
01482 int (*fsend)(struct soap*, const char*, size_t);
01483 size_t (*frecv)(struct soap*, char*, size_t);
01484 int (*fpoll)(struct soap*);
01485 void (*fseterror)(struct soap*, const char **c, const char **s);
01486 int (*fignore)(struct soap*, const char*);
01487 int (*fserveloop)(struct soap*);
01488 void *(*fplugin)(struct soap*, const char*);
01489 #ifndef WITH_LEANER
01490 int (*fprepareinit)(struct soap*);
01491 int (*fpreparesend)(struct soap*, const char*, size_t);
01492 int (*fpreparerecv)(struct soap*, const char*, size_t);
01493 int (*fpreparefinal)(struct soap*);
01494 void *(*fdimereadopen)(struct soap*, void*, const char*, const char*, const char*);
01495 void *(*fdimewriteopen)(struct soap*, const char*, const char*, const char*);
01496 void (*fdimereadclose)(struct soap*, void*);
01497 void (*fdimewriteclose)(struct soap*, void*);
01498 size_t (*fdimeread)(struct soap*, void*, char*, size_t);
01499 int (*fdimewrite)(struct soap*, void*, const char*, size_t);
01500 void *(*fmimereadopen)(struct soap*, void*, const char*, const char*, const char*);
01501 void *(*fmimewriteopen)(struct soap*, void*, const char*, const char*, const char*, enum soap_mime_encoding);
01502 void (*fmimereadclose)(struct soap*, void*);
01503 void (*fmimewriteclose)(struct soap*, void*);
01504 size_t (*fmimeread)(struct soap*, void*, char*, size_t);
01505 int (*fmimewrite)(struct soap*, void*, const char*, size_t);
01506 #endif
01507 int master;
01508 int socket;
01509 #if defined(__cplusplus) && !defined(WITH_LEAN)
01510 std::ostream *os;
01511 std::istream *is;
01512 #else
01513 void *os;
01514 void *is;
01515 #endif
01516 #ifndef UNDER_CE
01517 int sendfd;
01518 int recvfd;
01519 #else
01520 FILE *sendfd;
01521 FILE *recvfd;
01522 #endif
01523 #ifdef WIN32
01524 char errorstr[256];
01525 #endif
01526 size_t bufidx;
01527 size_t buflen;
01528 soap_wchar ahead;
01529 short cdata;
01530 short body;
01531 unsigned int level;
01532 size_t count;
01533 size_t length;
01534 #ifdef WITH_FAST
01535 char *labbuf;
01536 size_t lablen;
01537 size_t labidx;
01538 #endif
01539 char buf[SOAP_BUFLEN];
01540 char tmpbuf[1024];
01541 char msgbuf[1024];
01542 char tag[SOAP_TAGLEN];
01543 char id[SOAP_TAGLEN];
01544 char href[SOAP_TAGLEN];
01545 char type[SOAP_TAGLEN];
01546 char arrayType[SOAP_TAGLEN];
01547 char arraySize[SOAP_TAGLEN];
01548 char arrayOffset[SOAP_TAGLEN];
01549 short other;
01550 short position;
01551 int positions[SOAP_MAXDIMS];
01552 short root;
01553 struct soap_attribute *attributes;
01554 short encoding;
01555 short mustUnderstand;
01556 short keep_alive;
01557 short null;
01558 short ns;
01559 short part;
01560 short alloced;
01561 short peeked;
01562 size_t chunksize;
01563 size_t chunkbuflen;
01564 char endpoint[SOAP_TAGLEN];
01565 char path[SOAP_TAGLEN];
01566 char host[SOAP_TAGLEN];
01567 char *action;
01568 char *authrealm;
01569 char *prolog;
01570 unsigned long ip;
01571 int port;
01572 unsigned int max_keep_alive;
01573 const char *proxy_host;
01574 int proxy_port;
01575 const char *proxy_userid;
01576 const char *proxy_passwd;
01577 int status;
01578 int error;
01579 int errmode;
01580 int errnum;
01581 #ifndef WITH_LEANER
01582 struct soap_dom_element *dom;
01583 struct soap_dime dime;
01584 struct soap_mime mime;
01585 struct soap_xlist *xlist;
01586 #endif
01587 #if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
01588 const char *logfile[SOAP_MAXLOGS];
01589 FILE *fdebug[SOAP_MAXLOGS];
01590 struct soap_mlist *mht[SOAP_PTRHASH];
01591 #endif
01592 #ifndef WITH_LEAN
01593 const char *c14ninclude;
01594 const char *c14nexclude;
01595 struct soap_cookie *cookies;
01596 const char *cookie_domain;
01597 const char *cookie_path;
01598 int cookie_max;
01599 #endif
01600 #ifndef WITH_NOIO
01601 #ifdef WITH_IPV6
01602 struct sockaddr_storage peer;
01603 #else
01604 struct sockaddr_in peer;
01605 #endif
01606 #endif
01607 size_t peerlen;
01608 #ifdef WITH_OPENSSL
01609 int (*fsslauth)(struct soap*);
01610 int (*fsslverify)(int, X509_STORE_CTX*);
01611 BIO *bio;
01612 SSL *ssl;
01613 SSL_CTX *ctx;
01614 short require_server_auth;
01615 short require_client_auth;
01616 short rsa;
01617 const char *keyfile;
01618 const char *password;
01619 const char *dhfile;
01620 const char *cafile;
01621 const char *capath;
01622 const char *crlfile;
01623 const char *randfile;
01624 SSL_SESSION *session;
01625 char session_host[SOAP_TAGLEN];
01626 int session_port;
01627 #endif
01628 #ifdef WITH_ZLIB
01629 short zlib_state;
01630 short zlib_in;
01631 short zlib_out;
01632 z_stream d_stream;
01633 char z_buf[SOAP_BUFLEN];
01634 size_t z_buflen;
01635 unsigned short z_level;
01636 uLong z_crc;
01637 float z_ratio_in;
01638 float z_ratio_out;
01639 #endif
01640 #ifdef WMW_RPM_IO
01641 void *rpmreqid;
01642 #endif
01643 #ifndef WITH_LEAN
01644 #ifdef __cplusplus
01645 soap();
01646 soap(soap_mode);
01647 soap(soap_mode, soap_mode);
01648 soap(struct soap&);
01649 ~soap();
01650 #endif
01651 #endif
01652 };
01653
01654 struct soap_code_map
01655 { long code;
01656 const char *string;
01657 };
01658
01659
01660 struct soap_flist
01661 { struct soap_flist *next;
01662 int type;
01663 void *ptr;
01664 unsigned int level;
01665 size_t len;
01666 void (*fcopy)(struct soap*, int, int, void*, size_t, const void*, size_t);
01667 };
01668
01669
01670 struct soap_ilist
01671 { struct soap_ilist *next;
01672 int type;
01673 size_t size;
01674 void *link;
01675 void *copy;
01676 struct soap_flist *flist;
01677 void *ptr;
01678 unsigned int level;
01679 char id[1];
01680 };
01681
01682 struct soap_plugin
01683 { struct soap_plugin *next;
01684 const char *id;
01685 void *data;
01686 int (*fcopy)(struct soap *soap, struct soap_plugin *dst, struct soap_plugin *src);
01687 void (*fdelete)(struct soap *soap, struct soap_plugin *p);
01688 };
01689
01690 #ifndef WITH_NONAMESPACES
01691 extern SOAP_NMAC struct Namespace namespaces[];
01692 #endif
01693
01694 #ifndef WITH_LEAN
01695 # define soap_get0(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx])
01696 # define soap_get1(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++])
01697 #else
01698 soap_wchar soap_get0(struct soap*);
01699 soap_wchar soap_get1(struct soap*);
01700 #endif
01701
01702 #define soap_revget1(soap) ((soap)->bufidx--)
01703 #define soap_unget(soap, c) ((soap)->ahead = c)
01704 #define soap_register_plugin(soap, plugin) soap_register_plugin_arg(soap, plugin, NULL)
01705 #define soap_imode(soap, n) ((soap)->mode = (soap)->imode = (n))
01706 #define soap_set_imode(soap, n) ((soap)->imode |= (n))
01707 #define soap_clr_imode(soap, n) ((soap)->imode &= ~(n))
01708 #define soap_omode(soap, n) ((soap)->mode = (soap)->omode = (n))
01709 #define soap_set_omode(soap, n) ((soap)->omode |= (n))
01710 #define soap_clr_omode(soap, n) ((soap)->omode &= ~(n))
01711 #define soap_set_mode(soap, n) ((soap)->imode |= (n), (soap)->omode |= (n))
01712 #define soap_clr_mode(soap, n) ((soap)->imode &= ~(n), (soap)->omode &= ~(n))
01713 #define soap_destroy(soap) soap_delete((soap), NULL)
01714
01715 #ifdef HAVE_STRRCHR
01716 # define soap_strrchr(s, t) strrchr(s, t)
01717 #else
01718 SOAP_FMAC1 char* SOAP_FMAC2 soap_strrchr(const char *s, int t);
01719 #endif
01720
01721 #ifdef HAVE_STRTOL
01722 # define soap_strtol(s, t, b) strtol(s, t, b)
01723 #else
01724 SOAP_FMAC1 long SOAP_FMAC2 soap_strtol(const char *s, char **t, int b);
01725 #endif
01726
01727 #ifdef HAVE_STRTOUL
01728 # define soap_strtoul(s, t, b) strtoul(s, t, b)
01729 #else
01730 SOAP_FMAC1 unsigned long SOAP_FMAC2 soap_strtoul(const char *s, char **t, int b);
01731 #endif
01732
01733 #if defined(WITH_OPENSSL)
01734 # define soap_random soap_rand()
01735 SOAP_FMAC1 int SOAP_FMAC2 soap_rand(void);
01736 #elif defined(HAVE_RANDOM)
01737 # define soap_random (int)random()
01738 #else
01739 # define soap_random rand()
01740 #endif
01741
01742 #ifdef WITH_NOIDREF
01743 # define soap_embedded(s, p, t) (0)
01744 # define soap_id_lookup(s, i, p, t, n, k) (p)
01745 # define soap_id_forward(s, h, p, len, st, tt, n, k, fc) (p)
01746 # define soap_reference(s, a, t) (1)
01747 # define soap_array_reference(s, p, a, n, t) (1)
01748 # define soap_embed(s, p, a, n, t, pp) (0)
01749 # define soap_embedded_id(s, i, p, t) (i)
01750 # define soap_is_embedded(s, p) (0)
01751 # define soap_is_single(s, p) (1)
01752 # define soap_lookup_type(s, i) (0)
01753 # define soap_getindependent(s) (0)
01754 # define soap_putindependent(s) (0)
01755 # define soap_getelement(s, n) (n)
01756 # define soap_putelement(s, p, t, i, n) (0)
01757 # define soap_markelement(s, p, n) (0)
01758 #endif
01759
01760 SOAP_FMAC1 void SOAP_FMAC2 soap_fault(struct soap*);
01761 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultcode(struct soap*);
01762 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultsubcode(struct soap*);
01763 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultstring(struct soap*);
01764 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultdetail(struct soap*);
01765 SOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader(struct soap*);
01766 SOAP_FMAC1 int SOAP_FMAC2 soap_putheader(struct soap*);
01767 SOAP_FMAC1 int SOAP_FMAC2 soap_getheader(struct soap*);
01768 SOAP_FMAC1 void SOAP_FMAC2 soap_serializefault(struct soap*);
01769 SOAP_FMAC1 int SOAP_FMAC2 soap_putfault(struct soap*);
01770 SOAP_FMAC1 int SOAP_FMAC2 soap_getfault(struct soap*);
01771
01772 SOAP_FMAC1 void SOAP_FMAC2 soap_ssl_init(void);
01773 SOAP_FMAC1 int SOAP_FMAC2 soap_poll(struct soap*);
01774 SOAP_FMAC1 int SOAP_FMAC2 soap_connect_command(struct soap*, int, const char*, const char*);
01775 SOAP_FMAC1 int SOAP_FMAC2 soap_connect(struct soap*, const char*, const char*);
01776 SOAP_FMAC1 int SOAP_FMAC2 soap_bind(struct soap*, const char*, int, int);
01777 SOAP_FMAC1 int SOAP_FMAC2 soap_accept(struct soap*);
01778 SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_accept(struct soap*);
01779 SOAP_FMAC1 const char * SOAP_FMAC2 soap_ssl_error(struct soap*, int);
01780
01781 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*);
01782 SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_client_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*);
01783
01784 SOAP_FMAC1 int SOAP_FMAC2 soap_puthttphdr(struct soap*, int status, size_t count);
01785
01786 SOAP_FMAC1 const char* SOAP_FMAC2 soap_get_header_attribute(struct soap*, const char*, const char*);
01787 SOAP_FMAC1 const char* SOAP_FMAC2 soap_decode_key(char*, size_t, const char*);
01788 SOAP_FMAC1 const char* SOAP_FMAC2 soap_decode_val(char*, size_t, const char*);
01789
01790 SOAP_FMAC1 size_t SOAP_FMAC2 soap_hash(const char*);
01791 SOAP_FMAC1 void SOAP_FMAC2 soap_set_endpoint(struct soap*, const char*);
01792 SOAP_FMAC1 int SOAP_FMAC2 soap_flush_raw(struct soap*, const char*, size_t);
01793 SOAP_FMAC1 int SOAP_FMAC2 soap_flush(struct soap*);
01794 SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_get(struct soap*);
01795 SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getchar(struct soap*);
01796 SOAP_FMAC1 int SOAP_FMAC2 soap_tag_cmp(const char*, const char*);
01797 SOAP_FMAC1 void SOAP_FMAC2 soap_set_fault(struct soap*);
01798 SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault(struct soap*, const char*, const char*);
01799 SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault_subcode(struct soap*, const char*, const char*, const char*);
01800 SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault(struct soap*, const char*, const char*);
01801 SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault_subcode(struct soap*, const char*, const char*, const char*);
01802 SOAP_FMAC1 int SOAP_FMAC2 soap_set_sender_error(struct soap*, const char*, const char*, int);
01803 SOAP_FMAC1 int SOAP_FMAC2 soap_set_receiver_error(struct soap*, const char*, const char*, int);
01804
01805 SOAP_FMAC1 int SOAP_FMAC2 soap_send_raw(struct soap*, const char*, size_t);
01806 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_raw(struct soap*);
01807 SOAP_FMAC1 int SOAP_FMAC2 soap_recv(struct soap*);
01808 SOAP_FMAC1 int SOAP_FMAC2 soap_send(struct soap*, const char*);
01809 SOAP_FMAC1 int SOAP_FMAC2 soap_send2(struct soap*, const char*, const char*);
01810 SOAP_FMAC1 int SOAP_FMAC2 soap_send3(struct soap*, const char*, const char*, const char*);
01811
01812 SOAP_FMAC1 int SOAP_FMAC2 soap_pututf8(struct soap*, unsigned long);
01813 SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getutf8(struct soap*);
01814
01815 SOAP_FMAC1 int SOAP_FMAC2 soap_putbase64(struct soap*, const unsigned char*, int);
01816 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_getbase64(struct soap*, int*, int);
01817 SOAP_FMAC1 int SOAP_FMAC2 soap_puthex(struct soap*, const unsigned char*, int);
01818 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_gethex(struct soap*, int*);
01819
01820 #ifndef WITH_LEANER
01821 SOAP_FMAC1 int SOAP_FMAC2 soap_xop_forward(struct soap*, unsigned char**, int*, char**, char**, char**);
01822 SOAP_FMAC1 int SOAP_FMAC2 soap_dime_forward(struct soap*, unsigned char**, int*, char**, char**, char**);
01823 #endif
01824
01825 #ifndef WITH_NOIDREF
01826 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup_id(struct soap*, void *p, int t, struct soap_plist**);
01827 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup(struct soap*, const void *p, int t, struct soap_plist**);
01828 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**);
01829 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**);
01830 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);
01831 SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_lookup(struct soap*, const char*);
01832 SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_enter(struct soap*, const char*);
01833 SOAP_FMAC1 int SOAP_FMAC2 soap_resolve(struct soap*);
01834 SOAP_FMAC1 void SOAP_FMAC2 soap_embedded(struct soap*, const void *p, int t);
01835 SOAP_FMAC1 int SOAP_FMAC2 soap_reference(struct soap*, const void *p, int t);
01836 SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference(struct soap*, const void *p, const struct soap_array *a, int n, int t);
01837 SOAP_FMAC1 int SOAP_FMAC2 soap_embedded_id(struct soap*, int id, const void *p, int t);
01838 SOAP_FMAC1 int SOAP_FMAC2 soap_is_embedded(struct soap*, struct soap_plist*);
01839 SOAP_FMAC1 int SOAP_FMAC2 soap_is_single(struct soap*, struct soap_plist*);
01840 SOAP_FMAC1 void SOAP_FMAC2 soap_set_embedded(struct soap*, struct soap_plist*);
01841 #endif
01842
01843 SOAP_FMAC1 int SOAP_FMAC2 soap_begin_count(struct soap*);
01844 SOAP_FMAC1 int SOAP_FMAC2 soap_end_count(struct soap*);
01845 SOAP_FMAC1 int SOAP_FMAC2 soap_begin_send(struct soap*);
01846 SOAP_FMAC1 int SOAP_FMAC2 soap_end_send(struct soap*);
01847
01848 SOAP_FMAC1 const struct soap_code_map* SOAP_FMAC2 soap_code(const struct soap_code_map*, const char *str);
01849 SOAP_FMAC1 long SOAP_FMAC2 soap_code_int(const struct soap_code_map*, const char *str, long other);
01850 SOAP_FMAC1 const char* SOAP_FMAC2 soap_code_str(const struct soap_code_map*, long code);
01851 SOAP_FMAC1 long SOAP_FMAC2 soap_code_bits(const struct soap_code_map *map, const char *str);
01852 SOAP_FMAC1 const char* SOAP_FMAC2 soap_code_list(struct soap*, const struct soap_code_map *map, long code);
01853
01854 SOAP_FMAC1 int SOAP_FMAC2 soap_getline(struct soap*, char*, int);
01855 SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv(struct soap*);
01856 SOAP_FMAC1 int SOAP_FMAC2 soap_end_recv(struct soap*);
01857
01858 SOAP_FMAC1 void* SOAP_FMAC2 soap_malloc(struct soap*, size_t);
01859 SOAP_FMAC1 void SOAP_FMAC2 soap_dealloc(struct soap*, void*);
01860 SOAP_FMAC1 struct soap_clist * SOAP_FMAC2 soap_link(struct soap*, void*, int, int, void (*fdelete)(struct soap_clist*));
01861 SOAP_FMAC1 void SOAP_FMAC2 soap_unlink(struct soap*, const void*);
01862 SOAP_FMAC1 void SOAP_FMAC2 soap_free(struct soap*);
01863
01864 SOAP_FMAC1 void* SOAP_FMAC2 soap_track_malloc(struct soap*, const char*, int, size_t);
01865 SOAP_FMAC1 void SOAP_FMAC2 soap_track_free(struct soap*, const char*, int, void*);
01866
01867 #ifndef WITH_NOIDREF
01868 SOAP_FMAC1 int SOAP_FMAC2 soap_lookup_type(struct soap*, const char *id);
01869 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_lookup(struct soap*, const char *id, void **p, int t, size_t n, unsigned int k);
01870 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));
01871 #endif
01872 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*));
01873 SOAP_FMAC1 void SOAP_FMAC2 soap_fcopy(struct soap *soap, int st, int tt, void *p, size_t, const void *q, size_t n);
01874
01875 SOAP_FMAC1 int SOAP_FMAC2 soap_size(const int *, int);
01876 SOAP_FMAC1 int SOAP_FMAC2 soap_getoffsets(const char *, const int *, int *, int);
01877 SOAP_FMAC1 int SOAP_FMAC2 soap_getsize(const char *, const char *, int *);
01878 SOAP_FMAC1 int SOAP_FMAC2 soap_getsizes(const char *, int *, int);
01879 SOAP_FMAC1 int SOAP_FMAC2 soap_getposition(const char *, int *);
01880
01881 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsize(struct soap*, const char *, int);
01882 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizesoffsets(struct soap*, const char *, const int *, const int *, int);
01883 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizes(struct soap*, const char *, const int *, int);
01884 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffset(struct soap*, int);
01885 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffsets(struct soap*, const int *, int);
01886
01887 SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap*);
01888
01889 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new(void);
01890 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new1(soap_mode);
01891 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new2(soap_mode, soap_mode);
01892 SOAP_FMAC1 void SOAP_FMAC2 soap_del(struct soap*);
01893 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy(struct soap*);
01894 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy_context(struct soap*, struct soap*);
01895 SOAP_FMAC1 void SOAP_FMAC2 soap_copy_stream(struct soap*, struct soap*);
01896 SOAP_FMAC1 void SOAP_FMAC2 soap_init(struct soap*);
01897 SOAP_FMAC1 void SOAP_FMAC2 soap_init1(struct soap*, soap_mode);
01898 SOAP_FMAC1 void SOAP_FMAC2 soap_init2(struct soap*, soap_mode, soap_mode);
01899 SOAP_FMAC1 void SOAP_FMAC2 soap_done(struct soap*);
01900 SOAP_FMAC1 void SOAP_FMAC2 soap_cleanup(struct soap*);
01901 SOAP_FMAC1 void SOAP_FMAC2 soap_begin(struct soap*);
01902 SOAP_FMAC1 void SOAP_FMAC2 soap_end(struct soap*);
01903 SOAP_FMAC1 void SOAP_FMAC2 soap_delete(struct soap*, void*);
01904
01905 #ifdef SOAP_DEBUG
01906 SOAP_FMAC1 void SOAP_FMAC2 soap_set_recv_logfile(struct soap*, const char*);
01907 SOAP_FMAC1 void SOAP_FMAC2 soap_set_sent_logfile(struct soap*, const char*);
01908 SOAP_FMAC1 void SOAP_FMAC2 soap_set_test_logfile(struct soap*, const char*);
01909 SOAP_FMAC1 void SOAP_FMAC2 soap_close_logfiles(struct soap*);
01910 SOAP_FMAC1 void SOAP_FMAC2 soap_open_logfile(struct soap*, int);
01911 #endif
01912
01913 SOAP_FMAC1 const char* SOAP_FMAC2 soap_value(struct soap*);
01914
01915 SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag(struct soap*, const char*, const char *);
01916 SOAP_FMAC1 int SOAP_FMAC2 soap_match_array(struct soap*, const char*);
01917
01918 SOAP_FMAC1 int SOAP_FMAC2 soap_element(struct soap*, const char*, int, const char*);
01919 SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_out(struct soap*, const char *tag, int id, const char *type);
01920 SOAP_FMAC1 int SOAP_FMAC2 soap_array_begin_out(struct soap*, const char *tag, int id, const char *type, const char *offset);
01921 SOAP_FMAC1 int SOAP_FMAC2 soap_element_ref(struct soap*, const char *tag, int id, int href);
01922 SOAP_FMAC1 int SOAP_FMAC2 soap_element_href(struct soap*, const char *tag, int id, const char *ref, const char *val);
01923 SOAP_FMAC1 int SOAP_FMAC2 soap_element_null(struct soap*, const char *tag, int id, const char *type);
01924 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);
01925 SOAP_FMAC1 int SOAP_FMAC2 soap_element_result(struct soap*, const char *tag);
01926 SOAP_FMAC1 void SOAP_FMAC2 soap_check_result(struct soap*, const char *tag);
01927 SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_out(struct soap*, const char *tag);
01928 SOAP_FMAC1 int SOAP_FMAC2 soap_element_start_end_out(struct soap*, const char *tag);
01929
01930 SOAP_FMAC1 int SOAP_FMAC2 soap_attribute(struct soap*, const char*, const char*);
01931
01932 SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_in(struct soap*, const char *tag, int nillable, const char *type);
01933
01934 SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_in(struct soap*, const char *tag);
01935
01936 SOAP_FMAC1 int SOAP_FMAC2 soap_peek_element(struct soap*);
01937
01938 SOAP_FMAC1 void SOAP_FMAC2 soap_retry(struct soap*);
01939 SOAP_FMAC1 void SOAP_FMAC2 soap_revert(struct soap*);
01940
01941 SOAP_FMAC1 char* SOAP_FMAC2 soap_strdup(struct soap*, const char*);
01942 SOAP_FMAC1 const char * SOAP_FMAC2 soap_strsearch(const char *big, const char *little);
01943
01944 SOAP_FMAC1 int SOAP_FMAC2 soap_string_out(struct soap*, const char *s, int flag);
01945 SOAP_FMAC1 char* SOAP_FMAC2 soap_string_in(struct soap*, int, long, long);
01946
01947 #ifndef WITH_LEANER
01948 SOAP_FMAC1 int SOAP_FMAC2 soap_wstring_out(struct soap*, const wchar_t *s, int flag);
01949 SOAP_FMAC1 wchar_t* SOAP_FMAC2 soap_wstring_in(struct soap*, int, long, long);
01950 #endif
01951
01952 SOAP_FMAC1 int SOAP_FMAC2 soap_match_namespace(struct soap*, const char *, const char*, int n1, int n2);
01953
01954 SOAP_FMAC1 int SOAP_FMAC2 soap_set_namespaces(struct soap*, const struct Namespace*);
01955 SOAP_FMAC1 void SOAP_FMAC2 soap_set_local_namespaces(struct soap*);
01956
01957 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_namespace(struct soap*);
01958 SOAP_FMAC1 int SOAP_FMAC2 soap_push_namespace(struct soap*, const char *,const char *);
01959 SOAP_FMAC1 const char* SOAP_FMAC2 soap_current_namespace(struct soap *soap, const char *tag);
01960
01961 SOAP_FMAC1 int SOAP_FMAC2 soap_store_lab(struct soap*, const char*, size_t);
01962 SOAP_FMAC1 int SOAP_FMAC2 soap_append_lab(struct soap*, const char*, size_t);
01963
01964 SOAP_FMAC1 int SOAP_FMAC2 soap_new_block(struct soap*);
01965 SOAP_FMAC1 void* SOAP_FMAC2 soap_push_block(struct soap*, size_t);
01966 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_block(struct soap*);
01967 SOAP_FMAC1 size_t SOAP_FMAC2 soap_size_block(struct soap*, size_t);
01968 SOAP_FMAC1 char* SOAP_FMAC2 soap_first_block(struct soap*);
01969 SOAP_FMAC1 char* SOAP_FMAC2 soap_next_block(struct soap*);
01970 SOAP_FMAC1 size_t SOAP_FMAC2 soap_block_size(struct soap*);
01971 SOAP_FMAC1 char* SOAP_FMAC2 soap_save_block(struct soap*, char*, int);
01972 SOAP_FMAC1 void SOAP_FMAC2 soap_end_block(struct soap*);
01973
01974 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_out(struct soap*);
01975 SOAP_FMAC1 int soap_envelope_end_out(struct soap*);
01976
01977 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in(struct soap*);
01978 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_in(struct soap*);
01979
01980 SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_out(struct soap*);
01981 SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_out(struct soap*);
01982
01983 SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in(struct soap*);
01984 SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_in(struct soap*);
01985
01986 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header(struct soap*);
01987
01988 SOAP_FMAC1 int SOAP_FMAC2 soap_response(struct soap*, int);
01989
01990 SOAP_FMAC1 int SOAP_FMAC2 soap_send_empty_response(struct soap*, int status);
01991 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_empty_response(struct soap*);
01992
01993 SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault(struct soap*);
01994 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_fault(struct soap*);
01995
01996 #ifndef WITH_NOSTDLIB
01997 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault(struct soap*, FILE*);
01998 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault_location(struct soap*, FILE*);
01999 #endif
02000
02001 SOAP_FMAC1 int SOAP_FMAC2 soap_s2byte(struct soap*, const char*, char*);
02002 SOAP_FMAC1 int SOAP_FMAC2 soap_s2short(struct soap*, const char*, short*);
02003 SOAP_FMAC1 int SOAP_FMAC2 soap_s2int(struct soap*, const char*, int*);
02004 SOAP_FMAC1 int SOAP_FMAC2 soap_s2long(struct soap*, const char*, long*);
02005 SOAP_FMAC1 int SOAP_FMAC2 soap_s2LONG64(struct soap*, const char*, LONG64*);
02006 SOAP_FMAC1 int SOAP_FMAC2 soap_s2float(struct soap*, const char*, float*);
02007 SOAP_FMAC1 int SOAP_FMAC2 soap_s2double(struct soap*, const char*, double*);
02008 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedByte(struct soap*, const char*, unsigned char*);
02009 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedShort(struct soap*, const char*, unsigned short*);
02010 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedInt(struct soap*, const char*, unsigned int*);
02011 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedLong(struct soap*, const char*, unsigned long*);
02012 SOAP_FMAC1 int SOAP_FMAC2 soap_s2ULONG64(struct soap*, const char*, ULONG64*);
02013 SOAP_FMAC1 int SOAP_FMAC2 soap_s2string(struct soap*, const char*, char**);
02014 SOAP_FMAC1 int SOAP_FMAC2 soap_s2QName(struct soap*, const char*, char**);
02015
02016 #ifndef WITH_LEAN
02017 SOAP_FMAC1 int SOAP_FMAC2 soap_s2wchar(struct soap*, const char*, wchar_t**);
02018 SOAP_FMAC1 int SOAP_FMAC2 soap_s2dateTime(struct soap*, const char*, time_t*);
02019 SOAP_FMAC1 char* SOAP_FMAC2 soap_s2base64(struct soap*, const unsigned char*, char*, int);
02020 SOAP_FMAC1 char* SOAP_FMAC2 soap_s2hex(struct soap*, const unsigned char*, char*, int);
02021 #endif
02022
02023 SOAP_FMAC1 const char* SOAP_FMAC2 soap_byte2s(struct soap*, char);
02024 SOAP_FMAC1 const char* SOAP_FMAC2 soap_short2s(struct soap*, short);
02025 SOAP_FMAC1 const char* SOAP_FMAC2 soap_int2s(struct soap*, int);
02026 SOAP_FMAC1 const char* SOAP_FMAC2 soap_long2s(struct soap*, long);
02027 SOAP_FMAC1 const char* SOAP_FMAC2 soap_LONG642s(struct soap*, LONG64);
02028 SOAP_FMAC1 const char* SOAP_FMAC2 soap_float2s(struct soap*, float);
02029 SOAP_FMAC1 const char* SOAP_FMAC2 soap_double2s(struct soap*, double);
02030 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedByte2s(struct soap*, unsigned char);
02031 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedShort2s(struct soap*, unsigned short);
02032 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedInt2s(struct soap*, unsigned int);
02033 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedLong2s(struct soap*, unsigned long);
02034 SOAP_FMAC1 const char* SOAP_FMAC2 soap_ULONG642s(struct soap*, ULONG64);
02035 SOAP_FMAC1 const char* SOAP_FMAC2 soap_QName2s(struct soap*, const char*);
02036
02037 #ifndef WITH_LEAN
02038 SOAP_FMAC1 const char* SOAP_FMAC2 soap_wchar2s(struct soap*, const wchar_t*);
02039 SOAP_FMAC1 const char* SOAP_FMAC2 soap_dateTime2s(struct soap*, time_t);
02040 SOAP_FMAC1 const char* SOAP_FMAC2 soap_base642s(struct soap*, const char*, char*, size_t, int*);
02041 SOAP_FMAC1 const char* SOAP_FMAC2 soap_hex2s(struct soap*, const char*, char*, size_t, int*);
02042 #endif
02043
02044
02045 SOAP_FMAC1 int* SOAP_FMAC2 soap_inint(struct soap*, const char *tag, int *p, const char *, int);
02046 SOAP_FMAC1 char* SOAP_FMAC2 soap_inbyte(struct soap*, const char *tag, char *p, const char *, int);
02047 SOAP_FMAC1 long* SOAP_FMAC2 soap_inlong(struct soap*, const char *tag, long *p, const char *, int);
02048 SOAP_FMAC1 LONG64* SOAP_FMAC2 soap_inLONG64(struct soap*, const char *tag, LONG64 *p, const char *, int);
02049 SOAP_FMAC1 short* SOAP_FMAC2 soap_inshort(struct soap*, const char *tag, short *p, const char *, int);
02050 SOAP_FMAC1 float* SOAP_FMAC2 soap_infloat(struct soap*, const char *tag, float *p, const char *, int);
02051 SOAP_FMAC1 double* SOAP_FMAC2 soap_indouble(struct soap*, const char *tag, double *p, const char *, int);
02052 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_inunsignedByte(struct soap*, const char *tag, unsigned char *p, const char *, int);
02053 SOAP_FMAC1 unsigned short* SOAP_FMAC2 soap_inunsignedShort(struct soap*, const char *tag, unsigned short *p, const char *, int);
02054 SOAP_FMAC1 unsigned int* SOAP_FMAC2 soap_inunsignedInt(struct soap*, const char *tag, unsigned int *p, const char *, int);
02055 SOAP_FMAC1 unsigned long* SOAP_FMAC2 soap_inunsignedLong(struct soap*, const char *tag, unsigned long *p, const char *, int);
02056 SOAP_FMAC1 ULONG64* SOAP_FMAC2 soap_inULONG64(struct soap*, const char *tag, ULONG64 *p, const char *, int);
02057 SOAP_FMAC1 char** SOAP_FMAC2 soap_instring(struct soap*, const char *tag, char **p, const char *, int, int, long, long);
02058 SOAP_FMAC1 char** SOAP_FMAC2 soap_inliteral(struct soap*, const char *tag, char **p);
02059
02060 #ifndef WITH_LEAN
02061 SOAP_FMAC1 time_t* SOAP_FMAC2 soap_indateTime(struct soap*, const char *tag, time_t *p, const char *, int);
02062 #endif
02063
02064 #ifndef WITH_LEANER
02065 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwstring(struct soap*, const char *tag, wchar_t **p, const char *, int, long, long);
02066 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwliteral(struct soap*, const char *tag, wchar_t **p);
02067 #endif
02068
02069 SOAP_FMAC1 int SOAP_FMAC2 soap_outbyte(struct soap*, const char *tag, int id, const char *p, const char *, int);
02070 SOAP_FMAC1 int SOAP_FMAC2 soap_outshort(struct soap*, const char *tag, int id, const short *p, const char *, int);
02071 SOAP_FMAC1 int SOAP_FMAC2 soap_outint(struct soap*, const char *tag, int id, const int *p, const char *, int);
02072 SOAP_FMAC1 int SOAP_FMAC2 soap_outlong(struct soap*, const char *tag, int id, const long *p, const char *, int);
02073 SOAP_FMAC1 int SOAP_FMAC2 soap_outLONG64(struct soap*, const char *tag, int id, const LONG64 *p, const char *, int);
02074 SOAP_FMAC1 int SOAP_FMAC2 soap_outfloat(struct soap*, const char *tag, int id, const float *p, const char *, int);
02075 SOAP_FMAC1 int SOAP_FMAC2 soap_outdouble(struct soap*, const char *tag, int id, const double *p, const char *, int);
02076 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedByte(struct soap*, const char *tag, int id, const unsigned char *p, const char *, int);
02077 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedShort(struct soap*, const char *tag, int id, const unsigned short *p, const char *, int);
02078 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedInt(struct soap*, const char *tag, int id, const unsigned int *p, const char *, int);
02079 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedLong(struct soap*, const char *tag, int id, const unsigned long *p, const char *, int);
02080 SOAP_FMAC1 int SOAP_FMAC2 soap_outULONG64(struct soap*, const char *tag, int id, const ULONG64 *p, const char *, int);
02081 SOAP_FMAC1 int SOAP_FMAC2 soap_outstring(struct soap*, const char *tag, int id, char *const*p, const char *, int);
02082 SOAP_FMAC1 int SOAP_FMAC2 soap_outliteral(struct soap*, const char *tag, char *const*p, const char *type);
02083
02084 #ifndef WITH_LEAN
02085 SOAP_FMAC1 int SOAP_FMAC2 soap_outdateTime(struct soap*, const char *tag, int id, const time_t *p, const char *, int);
02086 #endif
02087
02088 #ifndef WITH_LEANER
02089 SOAP_FMAC1 int SOAP_FMAC2 soap_outwstring(struct soap*, const char *tag, int id, wchar_t *const*p, const char *, int);
02090 SOAP_FMAC1 int SOAP_FMAC2 soap_outwliteral(struct soap*, const char *tag, wchar_t *const*p, const char *type);
02091 #endif
02092
02093 #ifndef WITH_LEANER
02094 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);
02095 SOAP_FMAC1 int SOAP_FMAC2 soap_move(struct soap*, long);
02096 SOAP_FMAC1 size_t SOAP_FMAC2 soap_tell(struct soap*);
02097 SOAP_FMAC1 char* SOAP_FMAC2 soap_dime_option(struct soap*, unsigned short, const char*);
02098 SOAP_FMAC1 int SOAP_FMAC2 soap_getdimehdr(struct soap*);
02099 SOAP_FMAC1 int SOAP_FMAC2 soap_getdime(struct soap*);
02100 SOAP_FMAC1 int SOAP_FMAC2 soap_putdimehdr(struct soap*);
02101 SOAP_FMAC1 int SOAP_FMAC2 soap_putdime(struct soap*);
02102 SOAP_FMAC1 int SOAP_FMAC2 soap_getmimehdr(struct soap*);
02103 SOAP_FMAC1 int SOAP_FMAC2 soap_getmime(struct soap*);
02104 SOAP_FMAC1 int SOAP_FMAC2 soap_putmimehdr(struct soap*, struct soap_multipart*);
02105 SOAP_FMAC1 int SOAP_FMAC2 soap_putmime(struct soap*);
02106 SOAP_FMAC1 void SOAP_FMAC2 soap_set_dime(struct soap*);
02107 SOAP_FMAC1 void SOAP_FMAC2 soap_set_mime(struct soap*, const char *boundary, const char *start);
02108 SOAP_FMAC1 void SOAP_FMAC2 soap_clr_dime(struct soap*);
02109 SOAP_FMAC1 void SOAP_FMAC2 soap_clr_mime(struct soap*);
02110 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);
02111 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);
02112 SOAP_FMAC1 void SOAP_FMAC2 soap_post_check_mime_attachments(struct soap *soap);
02113 SOAP_FMAC1 int SOAP_FMAC2 soap_check_mime_attachments(struct soap *soap);
02114 SOAP_FMAC1 struct soap_multipart* SOAP_FMAC2 soap_get_mime_attachment(struct soap *soap, void *handle);
02115 SOAP_FMAC1 struct soap_multipart* SOAP_FMAC2 soap_next_multipart(struct soap_multipart*);
02116 SOAP_FMAC1 int SOAP_FMAC2 soap_match_cid(struct soap*, const char*, const char*);
02117 #endif
02118
02119 SOAP_FMAC1 int SOAP_FMAC2 soap_register_plugin_arg(struct soap*, int (*fcreate)(struct soap*, struct soap_plugin*, void*), void*);
02120 SOAP_FMAC1 void* SOAP_FMAC2 soap_lookup_plugin(struct soap*, const char*);
02121
02122 SOAP_FMAC1 const char* SOAP_FMAC2 soap_attr_value(struct soap *soap, const char *name, int flag);
02123 SOAP_FMAC1 int SOAP_FMAC2 soap_set_attr(struct soap *soap, const char *name, const char *value);
02124 SOAP_FMAC1 void SOAP_FMAC2 soap_clr_attr(struct soap *soap);
02125
02126 #ifdef WITH_COOKIES
02127 SOAP_FMAC1 size_t SOAP_FMAC2 soap_encode_cookie(const char*, char*, size_t);
02128 SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_set_cookie(struct soap*, const char*, const char*, const char*, const char*);
02129 SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_cookie(struct soap*, const char*, const char*, const char*);
02130 SOAP_FMAC1 extern char* SOAP_FMAC2 soap_cookie_value(struct soap*, const char*, const char*, const char*);
02131 SOAP_FMAC1 extern char* SOAP_FMAC2 soap_env_cookie_value(struct soap*, const char*, const char*, const char*);
02132 SOAP_FMAC1 extern time_t SOAP_FMAC2 soap_cookie_expire(struct soap*, const char*, const char*, const char*);
02133 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_expire(struct soap*, const char*, long, const char*, const char*);
02134 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_session(struct soap*, const char*, const char*, const char*);
02135 SOAP_FMAC1 extern int SOAP_FMAC2 soap_clr_cookie_session(struct soap*, const char*, const char*, const char*);
02136 SOAP_FMAC1 extern void SOAP_FMAC2 soap_clr_cookie(struct soap*, const char*, const char*, const char*);
02137 SOAP_FMAC1 extern int SOAP_FMAC2 soap_getenv_cookies(struct soap*);
02138 SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_copy_cookies(struct soap*, struct soap*);
02139 SOAP_FMAC1 extern void SOAP_FMAC2 soap_free_cookies(struct soap*);
02140 #endif
02141
02142 #ifdef __cplusplus
02143 }
02144 #endif
02145
02146 #endif
02147