00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifdef WITH_SOAPDEFS_H
00017 #include "soapdefs.h"
00018 #endif
00019
00020 #ifndef _THREAD_SAFE
00021 #define _THREAD_SAFE
00022 #endif
00023
00024 #ifndef _REENTRANT
00025 #define _REENTRANT
00026 #endif
00027
00028 #ifndef SOAP_FMAC1
00029 #define SOAP_FMAC1
00030 #endif
00031
00032 #ifndef SOAP_FMAC2
00033 #define SOAP_FMAC2
00034 #endif
00035
00036 #ifndef SOAP_CMAC
00037 #define SOAP_CMAC
00038 #endif
00039
00040 #ifdef UNDER_CE
00041 #ifndef WIN32
00042 #define WIN32
00043 #endif
00044 #endif
00045
00046 #ifdef __BORLANDC__
00047 #ifdef __WIN32__
00048 #ifndef WIN32
00049 #define WIN32
00050 #endif
00051 #endif
00052 #endif
00053
00054 #include <stdio.h>
00055 #include <stdlib.h>
00056 #include <string.h>
00057 #include <ctype.h>
00058 #include <limits.h>
00059
00060 #ifndef UNDER_CE
00061 #include <errno.h>
00062 #include <sys/types.h>
00063 #include <time.h>
00064 #endif
00065
00066 #if !defined(WIN32) && !defined(__APPLE__)
00067 #include <sys/time.h>
00068 #include <netinet/tcp.h>
00069 #include <arpa/inet.h>
00070 #endif
00071
00072 #ifdef WITH_FASTCGI
00073 #include <fcgi_stdio.h>
00074 #endif
00075
00076 #ifdef WITH_OPENSSL
00077 #include <openssl/ssl.h>
00078 #include <openssl/err.h>
00079 #ifndef ALLOW_OLD_VERSIONS
00080 #if (OPENSSL_VERSION_NUMBER < 0x00905100L)
00081 #error "Must use OpenSSL 0.9.6 or later"
00082 #endif
00083 #endif
00084 #endif
00085
00086 #include <math.h>
00087
00088 #ifndef STDSOAP
00089 #define STDSOAP
00090
00091 #define DEBUG
00092
00093 #ifdef __cplusplus
00094 extern "C" {
00095 #endif
00096
00097 #ifdef WIN32
00098 #ifndef UNDER_CE
00099 #include <io.h>
00100 #endif
00101 #include <winsock.h>
00102 #else
00103 #include <sys/socket.h>
00104 #include <netdb.h>
00105 #include <netinet/in.h>
00106 #include <unistd.h>
00107 #define closesocket(n) close(n)
00108 #endif
00109
00110 #ifndef _MATH_H
00111 #define isnan(_) (0)
00112 #else
00113 extern struct soap_double_nan { int n1, n2; } soap_double_nan;
00114 #endif
00115
00116 #ifndef WIN32
00117 #define LONG64 long long
00118 #define ULONG64 unsigned LONG64
00119 #endif
00120
00121 #ifdef __BORLANDC__
00122 #ifdef SYSMAC_H
00123 #define LONG64 ::LONG64
00124 #define ULONG64 ::ULONG64
00125 #endif
00126 #endif
00127
00128 #ifdef UNDER_CE
00129 #define soap_errno GetLastError()
00130 #define SOAP_EINTR WSAEINTR
00131 #else
00132 #define soap_errno errno
00133 #define SOAP_EINTR EINTR
00134 #endif
00135
00136 #define SOAP_BUFLEN 8192
00137 #define SOAP_PTRHASH 1024
00138 #define SOAP_IDHASH 16
00139 #define SOAP_BLKLEN 256
00140 #define SOAP_TAGLEN 256
00141 #define SOAP_MAXDIMS 16
00142
00143 #define SOAP_MAXLOGS 3
00144 #define SOAP_INDEX_RECV 0
00145 #define SOAP_INDEX_SENT 1
00146 #define SOAP_INDEX_TEST 2
00147
00148 #ifndef FLT_NAN
00149 #ifdef _MATH_H
00150 #define FLT_NAN (*(float*)&soap_double_nan)
00151 #else
00152 #define FLT_NAN (0.0)
00153 #endif
00154 #endif
00155 #ifndef FLT_PINFTY
00156 #ifdef HUGE_VAL
00157 #define FLT_PINFTY (float)HUGE_VAL
00158 #else
00159 #ifdef FLT_MAX
00160 #define FLT_PINFTY FLT_MAX
00161 #else
00162 #ifdef FLOAT_MAX
00163 #define FLT_PINFTY FLOAT_MAX
00164 #else
00165 #define FLT_PINFTY (3.40282347e+38)
00166 #endif
00167 #endif
00168 #endif
00169 #endif
00170 #ifndef FLT_NINFTY
00171 #define FLT_NINFTY (-FLT_PINFTY)
00172 #endif
00173
00174 #ifndef DBL_NAN
00175 #ifdef _MATH_H
00176 #define DBL_NAN (*(double*)&soap_double_nan)
00177 #else
00178 #define DBL_NAN (0.0)
00179 #endif
00180 #endif
00181 #ifndef DBL_PINFTY
00182 #ifdef HUGE_VAL
00183 #define DBL_PINFTY (double)HUGE_VAL
00184 #else
00185 #ifdef DBL_MAX
00186 #define DBL_PINFTY DBL_MAX
00187 #else
00188 #ifdef DOUBLE_MAX
00189 #define DBL_PINFTY DOUBLE_MAX
00190 #else
00191 #define DBL_PINFTY (1.7976931348623157e+308)
00192 #endif
00193 #endif
00194 #endif
00195 #endif
00196 #ifndef DBL_NINFTY
00197 #define DBL_NINFTY (-DBL_PINFTY)
00198 #endif
00199
00200
00201
00202 #define SOAP_EOF EOF
00203 #define SOAP_OK 0
00204 #define SOAP_CLI_FAULT 1
00205 #define SOAP_SVR_FAULT 2
00206 #define SOAP_TAG_MISMATCH 3
00207 #define SOAP_TYPE_MISMATCH 4
00208 #define SOAP_SYNTAX_ERROR 5
00209 #define SOAP_NO_TAG 6
00210 #define SOAP_IOB 7
00211 #define SOAP_MUSTUNDERSTAND 8
00212 #define SOAP_NAMESPACE 9
00213 #define SOAP_OBJ_MISMATCH 10
00214 #define SOAP_FATAL_ERROR 11
00215 #define SOAP_FAULT 12
00216 #define SOAP_NO_METHOD 13
00217 #define SOAP_EOM 14
00218 #define SOAP_NULL 15
00219 #define SOAP_MULTI_ID 16
00220 #define SOAP_MISSING_ID 17
00221 #define SOAP_HREF 18
00222 #define SOAP_TCP_ERROR 19
00223 #define SOAP_HTTP_ERROR 20
00224 #define SOAP_SSL_ERROR 21
00225 #define SOAP_VERSIONMISMATCH 22
00226
00227
00228
00229 #ifdef DEBUG
00230 #ifndef SOAP_MESSAGE
00231 #define SOAP_MESSAGE fprintf
00232 #endif
00233 #define DBGLOG(DBGFILE, DBGCMD) \
00234 { if (!soap->fdebug[SOAP_INDEX_##DBGFILE]) soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\
00235 if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
00236 { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\
00237 DBGCMD;\
00238 fflush(fdebug);\
00239 }\
00240 }
00241 #else
00242 #define DBGLOG(DBGFILE, DBGCMD)
00243 #endif
00244
00245 typedef long wchar;
00246
00247 struct Namespace
00248 { const char *id;
00249 const char *ns;
00250 const char *in;
00251 };
00252
00253 struct soap_nlist
00254 { struct soap_nlist *next;
00255 char *id;
00256 int level;
00257 int index;
00258 };
00259
00260 struct soap_blist
00261 { struct soap_blist *next;
00262 char *ptr;
00263 size_t size;
00264 };
00265
00266 struct soap_ilist
00267 { struct soap_ilist *next;
00268 int type;
00269 size_t size;
00270 void *link;
00271 void *copy;
00272 void *ptr;
00273 int level;
00274 char id[4];
00275 };
00276
00277 struct soap_plist
00278 { struct soap_plist *next;
00279 void *ptr;
00280 int type;
00281 int id;
00282 char mark1;
00283 char mark2;
00284 };
00285
00286 struct soap_clist
00287 { struct soap_clist *next;
00288 void *ptr;
00289 int type;
00290 size_t size;
00291 };
00292
00293 #ifdef WITH_COOKIES
00294 struct soap_cookie
00295 { char *name;
00296 char *value;
00297 char *domain;
00298 char *path;
00299 long expire;
00300 unsigned int version;
00301 short secure;
00302 short session;
00303 short env;
00304 short modified;
00305 struct soap_cookie *next;
00306 };
00307 #endif
00308
00309 struct soap
00310 { const char *float_format;
00311 const char *double_format;
00312 const char *http_version;
00313 const char *encodingStyle;
00314 const char *defaultNamespace;
00315 const char *actor;
00316 short keep_alive;
00317 short disable_href;
00318 short enable_embedding;
00319 short enable_null;
00320 short enable_utf_string;
00321 short disable_request_count;
00322 short disable_response_count;
00323 short enable_array_overflow;
00324 int recv_timeout;
00325 int send_timeout;
00326 struct Namespace *namespaces;
00327 struct soap_nlist *nlist;
00328 struct soap_blist *blist;
00329 struct soap_clist *clist;
00330 void *alist;
00331 struct soap_ilist *iht[SOAP_IDHASH];
00332 struct soap_plist *pht[SOAP_PTRHASH];
00333 struct SOAP_ENV__Header *header;
00334 struct SOAP_ENV__Fault *fault;
00335 void *user;
00336 int (*fpost)(struct soap*, const char*, const char*, const char*, const char*, size_t);
00337 int (*fresponse)(struct soap*, int, size_t);
00338 int (*fparse)(struct soap*);
00339 int (*fopen)(struct soap*, const char*, const char*, int);
00340 int (*fclose)(struct soap*);
00341 int (*fsend)(struct soap*, const char*, size_t);
00342 size_t (*frecv)(struct soap*, char*, size_t);
00343 int (*fignore)(struct soap*, const char*);
00344 int master;
00345 int socket;
00346 #ifndef UNDER_CE
00347 int sendfd;
00348 int recvfd;
00349 #else
00350 FILE *sendfd;
00351 FILE *recvfd;
00352 char errorstr[256];
00353 wchar_t werrorstr[256];
00354 #endif
00355 short buffering;
00356 int bufidx;
00357 int buflen;
00358 char buf[SOAP_BUFLEN];
00359 char msgbuf[1024];
00360 char tmpbuf1[256];
00361 char tmpbuf2[256];
00362 char tmpbuf3[256];
00363 char tagbuf[1024];
00364 size_t count;
00365 short counting;
00366 int level;
00367 short body;
00368 char tag[SOAP_TAGLEN];
00369 char id[SOAP_TAGLEN];
00370 char href[SOAP_TAGLEN];
00371 char type[SOAP_TAGLEN];
00372 char arrayType[SOAP_TAGLEN];
00373 char arraySize[SOAP_TAGLEN];
00374 char offset[SOAP_TAGLEN];
00375 short other;
00376 short root;
00377 short position;
00378 int positions[SOAP_MAXDIMS];
00379 int mustUnderstand;
00380 short null;
00381 short ns;
00382 short is_in_header;
00383 short chunked;
00384 short alloced;
00385 short peeked;
00386 short cdata;
00387 size_t chunksize;
00388 int chunkbuflen;
00389 char path[SOAP_TAGLEN];
00390 char host[SOAP_TAGLEN];
00391 char endpoint[SOAP_TAGLEN];
00392 char *action;
00393 int port;
00394 const char *proxy_host;
00395 int proxy_port;
00396 int error;
00397 int errmode;
00398 int errnum;
00399 int idnum;
00400 wchar ahead1;
00401 wchar ahead2;
00402 unsigned long ip;
00403 const char *logfile[SOAP_MAXLOGS];
00404 FILE *fdebug[SOAP_MAXLOGS];
00405 #ifdef WITH_COOKIES
00406 struct soap_cookie *cookies;
00407 const char *cookie_domain;
00408 const char *cookie_path;
00409 int cookie_max;
00410 #endif
00411 #ifdef WITH_OPENSSL
00412 BIO *bio;
00413 SSL *ssl;
00414 short require_server_auth;
00415 const char *keyfile;
00416 const char *password;
00417 const char *dhfile;
00418 const char *cafile;
00419 #endif
00420 short dot_net_bug;
00421 };
00422
00423 extern struct Namespace namespaces[];
00424
00425 SOAP_FMAC1 int SOAP_FMAC2 soap_serve(struct soap*);
00426 SOAP_FMAC1 int SOAP_FMAC2 soap_connect(struct soap*, const char*, const char*);
00427 SOAP_FMAC1 int SOAP_FMAC2 soap_bind(struct soap*, const char*, int, int);
00428 SOAP_FMAC1 int SOAP_FMAC2 soap_accept(struct soap*);
00429 SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_accept(struct soap*);
00430
00431 #ifndef WITH_NOGLOBAL
00432 SOAP_FMAC1 void* SOAP_FMAC2 soap_instantiate(struct soap*, int t, const char*, const char*);
00433 SOAP_FMAC1 void SOAP_FMAC2 soap_delete(struct soap*, void*, int, int);
00434 SOAP_FMAC1 void SOAP_FMAC2 soap_fault(struct soap*);
00435 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultcode(struct soap*);
00436 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultstring(struct soap*);
00437 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultdetail(struct soap*);
00438
00439 SOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader(struct soap*);
00440 SOAP_FMAC1 void SOAP_FMAC2 soap_putheader(struct soap*);
00441 SOAP_FMAC1 int SOAP_FMAC2 soap_getheader(struct soap*);
00442
00443 SOAP_FMAC1 void SOAP_FMAC2 soap_serializefault(struct soap*);
00444 SOAP_FMAC1 void SOAP_FMAC2 soap_putfault(struct soap*);
00445 SOAP_FMAC1 int SOAP_FMAC2 soap_getfault(struct soap*);
00446
00447 SOAP_FMAC1 void SOAP_FMAC2 soap_putindependent(struct soap*);
00448 SOAP_FMAC1 int SOAP_FMAC2 soap_getindependent(struct soap*);
00449 #endif
00450
00451 SOAP_FMAC1 int SOAP_FMAC2 soap_send(struct soap*, const char*);
00452 SOAP_FMAC1 int SOAP_FMAC2 soap_recv(struct soap*);
00453
00454 SOAP_FMAC1 int SOAP_FMAC2 soap_puthex(struct soap*, int);
00455 SOAP_FMAC1 int SOAP_FMAC2 soap_gethex(struct soap*);
00456
00457 SOAP_FMAC1 int SOAP_FMAC2 soap_putbase64(struct soap*, const unsigned char*, size_t);
00458 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_getbase64(struct soap*, int*, int);
00459
00460 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup(struct soap*, const void *p, int t, struct soap_plist**);
00461 SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup(struct soap*, const void *p, int n, int t, struct soap_plist**);
00462 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup_id(struct soap*, void *p, int t, struct soap_plist**);
00463 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_enter(struct soap*, const void *p, int t, struct soap_plist**);
00464 SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_enter(struct soap*, const void *p, int t, struct soap_plist**);
00465
00466 SOAP_FMAC1 void SOAP_FMAC2 soap_begin_count(struct soap*);
00467 SOAP_FMAC1 void SOAP_FMAC2 soap_begin_send(struct soap*);
00468 SOAP_FMAC1 int SOAP_FMAC2 soap_end_send(struct soap*);
00469
00470 SOAP_FMAC1 void SOAP_FMAC2 soap_embedded(struct soap*, const void *p, int t);
00471 SOAP_FMAC1 int SOAP_FMAC2 soap_reference(struct soap*, const void *p, int t);
00472 SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference(struct soap*, const void *p, int n, int t);
00473 SOAP_FMAC1 int SOAP_FMAC2 soap_embedded_id(struct soap*, int id, const void *p, int t);
00474 SOAP_FMAC1 int SOAP_FMAC2 soap_is_embedded(struct soap*, struct soap_plist*);
00475 SOAP_FMAC1 int SOAP_FMAC2 soap_is_single(struct soap*, struct soap_plist*);
00476 SOAP_FMAC1 int SOAP_FMAC2 soap_is_multi(struct soap*, struct soap_plist*);
00477 SOAP_FMAC1 void SOAP_FMAC2 soap_set_embedded(struct soap*, struct soap_plist*);
00478
00479 SOAP_FMAC1 int SOAP_FMAC2 soap_getline(struct soap*, char*, int);
00480 SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv(struct soap*);
00481 SOAP_FMAC1 int SOAP_FMAC2 soap_end_recv(struct soap*);
00482
00483 SOAP_FMAC1 void SOAP_FMAC2 soap_send_namespaces(struct soap*);
00484
00485 SOAP_FMAC1 void* SOAP_FMAC2 soap_malloc(struct soap*, size_t);
00486 SOAP_FMAC1 void SOAP_FMAC2 soap_dealloc(struct soap*, void *);
00487 SOAP_FMAC1 void SOAP_FMAC2 soap_free(struct soap*);
00488 SOAP_FMAC1 void SOAP_FMAC2 soap_destroy(struct soap*);
00489
00490 SOAP_FMAC1 int SOAP_FMAC2 soap_lookup_type(struct soap*, const char *id);
00491
00492 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_lookup(struct soap*, const char *id, void **p, int t, size_t n, int k);
00493 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_forward(struct soap*, const char *id, void *p, int t, size_t n);
00494 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_enter(struct soap*, const char *id, void *p, int t, size_t n, int k);
00495 SOAP_FMAC1 void* SOAP_FMAC2 soap_class_id_enter(struct soap*, const char*, void*, int, const char*, const char*);
00496
00497 SOAP_FMAC1 int SOAP_FMAC2 soap_size(const int *, int);
00498 SOAP_FMAC1 int SOAP_FMAC2 soap_getoffsets(const char *, const int *, int *, int);
00499 SOAP_FMAC1 int SOAP_FMAC2 soap_getsize(const char *, const char *, int *);
00500 SOAP_FMAC1 int SOAP_FMAC2 soap_getsizes(const char *, int *, int);
00501 SOAP_FMAC1 int SOAP_FMAC2 soap_getposition(const char *, int *);
00502
00503 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsize(struct soap*, const char *, int);
00504 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizesoffsets(struct soap*, const char *, const int *, const int *, int);
00505 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizes(struct soap*, const char *, const int *, int);
00506 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffset(struct soap*, int);
00507 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffsets(struct soap*, const int *, int);
00508 SOAP_FMAC1 char* SOAP_FMAC2 soap_putposition(struct soap*);
00509
00510 SOAP_FMAC1 int SOAP_FMAC2 soap_ignore_element(struct soap*);
00511
00512 SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap*);
00513
00514 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new();
00515 SOAP_FMAC1 void SOAP_FMAC2 soap_init(struct soap*);
00516 SOAP_FMAC1 void SOAP_FMAC2 soap_begin(struct soap*);
00517 SOAP_FMAC1 void SOAP_FMAC2 soap_end(struct soap*);
00518
00519 SOAP_FMAC1 void SOAP_FMAC2 soap_set_recv_logfile(struct soap*, const char*);
00520 SOAP_FMAC1 void SOAP_FMAC2 soap_set_sent_logfile(struct soap*, const char*);
00521 SOAP_FMAC1 void SOAP_FMAC2 soap_set_test_logfile(struct soap*, const char*);
00522 SOAP_FMAC1 void SOAP_FMAC2 soap_close_logfiles(struct soap*);
00523 SOAP_FMAC1 void SOAP_FMAC2 soap_open_logfile(struct soap*, int);
00524
00525 SOAP_FMAC1 char* SOAP_FMAC2 soap_value(struct soap*);
00526
00527 SOAP_FMAC1 wchar SOAP_FMAC2 soap_skip(struct soap*);
00528
00529 SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag(struct soap*, const char*, const char *);
00530
00531 SOAP_FMAC1 int SOAP_FMAC2 soap_match_array(struct soap*, const char*);
00532
00533 SOAP_FMAC1 void SOAP_FMAC2 soap_element_begin_out(struct soap*, const char *tag, int id, const char *type);
00534 SOAP_FMAC1 void SOAP_FMAC2 soap_array_begin_out(struct soap*, const char *tag, int id, const char *type, const char *offset);
00535
00536 SOAP_FMAC1 void SOAP_FMAC2 soap_element_end_out(struct soap*, const char *tag);
00537
00538 SOAP_FMAC1 void SOAP_FMAC2 soap_element_ref(struct soap*, const char *tag, int id, int href);
00539
00540 SOAP_FMAC1 void SOAP_FMAC2 soap_element_null(struct soap*, const char *tag, int id, const char *type);
00541
00542 SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_in(struct soap*, const char *tag);
00543
00544 SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_in(struct soap*, const char *tag);
00545
00546 SOAP_FMAC1 int SOAP_FMAC2 soap_peek_element(struct soap*);
00547
00548 SOAP_FMAC1 void SOAP_FMAC2 soap_revert(struct soap*);
00549
00550 SOAP_FMAC1 int SOAP_FMAC2 soap_ignore_element(struct soap*);
00551
00552 SOAP_FMAC1 void SOAP_FMAC2 soap_convert_string_out(struct soap*, const char *s);
00553
00554 SOAP_FMAC1 int SOAP_FMAC2 soap_match_namespace(struct soap*, const char *, const char*, int n1, int n2);
00555
00556 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_namespace(struct soap*);
00557 SOAP_FMAC1 int SOAP_FMAC2 soap_push_namespace(struct soap*, const char *,const char *);
00558
00559 SOAP_FMAC1 int SOAP_FMAC2 soap_new_block(struct soap*);
00560 SOAP_FMAC1 void* SOAP_FMAC2 soap_push_block(struct soap*, size_t);
00561 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_block(struct soap*);
00562 SOAP_FMAC1 void SOAP_FMAC2 soap_store_block(struct soap*, char *);
00563
00564 SOAP_FMAC1 void SOAP_FMAC2 soap_envelope_begin_out(struct soap*);
00565 SOAP_FMAC1 void soap_envelope_end_out(struct soap*);
00566
00567 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in(struct soap*);
00568 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_in(struct soap*);
00569
00570 SOAP_FMAC1 void SOAP_FMAC2 soap_body_begin_out(struct soap*);
00571 SOAP_FMAC1 void SOAP_FMAC2 soap_body_end_out(struct soap*);
00572
00573 SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in(struct soap*);
00574 SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_in(struct soap*);
00575
00576 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header(struct soap*);
00577
00578 SOAP_FMAC1 int SOAP_FMAC2 soap_response(struct soap*);
00579
00580 SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault(struct soap*);
00581
00582 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_fault(struct soap*);
00583
00584 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault(struct soap*, FILE*);
00585 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault_location(struct soap*, FILE*);
00586
00587 SOAP_FMAC1 void SOAP_FMAC2 soap_outint(struct soap*, const char *tag, int id, const int *p, const char *, int);
00588 SOAP_FMAC1 int* SOAP_FMAC2 soap_inint(struct soap*, const char *tag, int *p, const char *, int);
00589
00590 SOAP_FMAC1 void SOAP_FMAC2 soap_outbyte(struct soap*, const char *tag, int id, const char *p, const char *, int);
00591 SOAP_FMAC1 char* SOAP_FMAC2 soap_inbyte(struct soap*, const char *tag, char *p, const char *, int);
00592
00593 SOAP_FMAC1 void SOAP_FMAC2 soap_outlong(struct soap*, const char *tag, int id, const long *p, const char *, int);
00594 SOAP_FMAC1 long* SOAP_FMAC2 soap_inlong(struct soap*, const char *tag, long *p, const char *, int);
00595
00596 SOAP_FMAC1 void SOAP_FMAC2 soap_outLONG64(struct soap*, const char *tag, int id, const LONG64 *p, const char *, int);
00597 SOAP_FMAC1 LONG64* SOAP_FMAC2 soap_inLONG64(struct soap*, const char *tag, LONG64 *p, const char *, int);
00598
00599 SOAP_FMAC1 void SOAP_FMAC2 soap_outshort(struct soap*, const char *tag, int id, const short *p, const char *, int);
00600 SOAP_FMAC1 short* SOAP_FMAC2 soap_inshort(struct soap*, const char *tag, short *p, const char *, int);
00601
00602 SOAP_FMAC1 void soap_outfloat(struct soap*, const char *tag, int id, const float *p, const char *, int);
00603 SOAP_FMAC1 float* SOAP_FMAC2 soap_infloat(struct soap*, const char *tag, float *p, const char *, int);
00604
00605 SOAP_FMAC1 void SOAP_FMAC2 soap_outdouble(struct soap*, const char *tag, int id, const double *p, const char *, int);
00606 SOAP_FMAC1 double* SOAP_FMAC2 soap_indouble(struct soap*, const char *tag, double *p, const char *, int);
00607
00608 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedByte(struct soap*, const char *tag, int id, const unsigned char *p, const char *, int);
00609 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_inunsignedByte(struct soap*, const char *tag, unsigned char *p, const char *, int);
00610
00611 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedShort(struct soap*, const char *tag, int id, const unsigned short *p, const char *, int);
00612 SOAP_FMAC1 unsigned short* SOAP_FMAC2 soap_inunsignedShort(struct soap*, const char *tag, unsigned short *p, const char *, int);
00613
00614 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedInt(struct soap*, const char *tag, int id, const unsigned int *p, const char *, int);
00615 SOAP_FMAC1 unsigned int* SOAP_FMAC2 soap_inunsignedInt(struct soap*, const char *tag, unsigned int *p, const char *, int);
00616
00617 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedLong(struct soap*, const char *tag, int id, const unsigned long *p, const char *, int);
00618 SOAP_FMAC1 unsigned long* SOAP_FMAC2 soap_inunsignedLong(struct soap*, const char *tag, unsigned long *p, const char *, int);
00619
00620 SOAP_FMAC1 void SOAP_FMAC2 soap_outULONG64(struct soap*, const char *tag, int id, const ULONG64 *p, const char *, int);
00621 SOAP_FMAC1 ULONG64* SOAP_FMAC2 soap_inULONG64(struct soap*, const char *tag, ULONG64 *p, const char *, int);
00622
00623 SOAP_FMAC1 void SOAP_FMAC2 soap_outstring(struct soap*, const char *tag, int id, char *const*p, const char *, int);
00624 SOAP_FMAC1 char** SOAP_FMAC2 soap_instring(struct soap*, const char *tag, char **p, const char *, int);
00625
00626 SOAP_FMAC1 void SOAP_FMAC2 soap_outwstring(struct soap*, const char *tag, int id, wchar_t *const*p, const char *, int);
00627 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwstring(struct soap*, const char *tag, wchar_t **p, const char *, int);
00628
00629 SOAP_FMAC1 void SOAP_FMAC2 soap_outliteral(struct soap*, const char *tag, char *const*p);
00630 SOAP_FMAC1 char** SOAP_FMAC2 soap_inliteral(struct soap*, const char *tag, char **p);
00631
00632 SOAP_FMAC1 void SOAP_FMAC2 soap_outwliteral(struct soap*, const char *tag, wchar_t *const*p);
00633 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwliteral(struct soap*, const char *tag, wchar_t **p);
00634
00635 SOAP_FMAC1 void SOAP_FMAC2 soap_outdateTime(struct soap*, const char *tag, int id, const time_t *p, const char *, int);
00636 SOAP_FMAC1 time_t* SOAP_FMAC2 soap_indateTime(struct soap*, const char *tag, time_t *p, const char *, int);
00637
00638 #ifdef WITH_COOKIES
00639 SOAP_FMAC1 extern struct soap_cookie *SOAP_FMAC2 soap_set_cookie(struct soap*, const char*, const char*, const char*, const char*);
00640 SOAP_FMAC1 extern struct soap_cookie *SOAP_FMAC2 soap_cookie(struct soap*, const char*, const char*, const char*);
00641 SOAP_FMAC1 extern char* SOAP_FMAC2 soap_cookie_value(struct soap*, const char*, const char*, const char*);
00642 SOAP_FMAC1 extern long SOAP_FMAC2 soap_cookie_expire(struct soap*, const char*, const char*, const char*);
00643 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_expire(struct soap*, const char*, long, const char*, const char*);
00644 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_session(struct soap*, const char*, const char*, const char*);
00645 SOAP_FMAC1 extern int SOAP_FMAC2 soap_clr_cookie_session(struct soap*, const char*, const char*, const char*);
00646 SOAP_FMAC1 extern void SOAP_FMAC2 soap_clr_cookie(struct soap*, const char*, const char*, const char*);
00647 SOAP_FMAC1 extern int SOAP_FMAC2 soap_getenv_cookies(struct soap*);
00648 SOAP_FMAC1 extern void SOAP_FMAC2 soap_free_cookies(struct soap*);
00649 #endif
00650
00651 #ifdef __cplusplus
00652 }
00653 #endif
00654
00655 #endif
00656