diff options
Diffstat (limited to 'dep/gsoap/soapServer.cpp')
-rw-r--r-- | dep/gsoap/soapServer.cpp | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/dep/gsoap/soapServer.cpp b/dep/gsoap/soapServer.cpp new file mode 100644 index 00000000000..e3eeb8fb3d7 --- /dev/null +++ b/dep/gsoap/soapServer.cpp @@ -0,0 +1,127 @@ +/* soapServer.cpp + Generated by gSOAP 2.7.10 from stub.h + Copyright(C) 2000-2008, Robert van Engelen, Genivia Inc. All Rights Reserved. + This part of the software is released under one of the following licenses: + GPL, the gSOAP public license, or Genivia's license for commercial use. +*/ +#include "soapH.h" + +SOAP_SOURCE_STAMP("@(#) soapServer.cpp ver 2.7.10 2010-02-18 18:41:56 GMT") + + +SOAP_FMAC5 int SOAP_FMAC6 soap_serve(struct soap *soap) +{ +#ifndef WITH_FASTCGI + unsigned int k = soap->max_keep_alive; +#endif + + do + { +#ifdef WITH_FASTCGI + if (FCGI_Accept() < 0) + { + soap->error = SOAP_EOF; + return soap_send_fault(soap); + } +#endif + + soap_begin(soap); + +#ifndef WITH_FASTCGI + if (soap->max_keep_alive > 0 && !--k) + soap->keep_alive = 0; +#endif + + if (soap_begin_recv(soap)) + { if (soap->error < SOAP_STOP) + { +#ifdef WITH_FASTCGI + soap_send_fault(soap); +#else + return soap_send_fault(soap); +#endif + } + soap_closesock(soap); + + continue; + } + + if (soap_envelope_begin_in(soap) + || soap_recv_header(soap) + || soap_body_begin_in(soap) + || soap_serve_request(soap) + || (soap->fserveloop && soap->fserveloop(soap))) + { +#ifdef WITH_FASTCGI + soap_send_fault(soap); +#else + return soap_send_fault(soap); +#endif + } + +#ifdef WITH_FASTCGI + soap_destroy(soap); + soap_end(soap); + } while (1); +#else + } while (soap->keep_alive); +#endif + return SOAP_OK; +} + +#ifndef WITH_NOSERVEREQUEST +SOAP_FMAC5 int SOAP_FMAC6 soap_serve_request(struct soap *soap) +{ + soap_peek_element(soap); + if (!soap_match_tag(soap, soap->tag, "ns1:executeCommand")) + return soap_serve_ns1__executeCommand(soap); + return soap->error = SOAP_NO_METHOD; +} +#endif + +SOAP_FMAC5 int SOAP_FMAC6 soap_serve_ns1__executeCommand(struct soap *soap) +{ struct ns1__executeCommand soap_tmp_ns1__executeCommand; + struct ns1__executeCommandResponse soap_tmp_ns1__executeCommandResponse; + char * soap_tmp_string; + soap_default_ns1__executeCommandResponse(soap, &soap_tmp_ns1__executeCommandResponse); + soap_tmp_string = NULL; + soap_tmp_ns1__executeCommandResponse.result = &soap_tmp_string; + soap_default_ns1__executeCommand(soap, &soap_tmp_ns1__executeCommand); + soap->encodingStyle = NULL; + if (!soap_get_ns1__executeCommand(soap, &soap_tmp_ns1__executeCommand, "ns1:executeCommand", NULL)) + return soap->error; + if (soap_body_end_in(soap) + || soap_envelope_end_in(soap) + || soap_end_recv(soap)) + return soap->error; + soap->error = ns1__executeCommand(soap, soap_tmp_ns1__executeCommand.command, &soap_tmp_string); + if (soap->error) + return soap->error; + soap_serializeheader(soap); + soap_serialize_ns1__executeCommandResponse(soap, &soap_tmp_ns1__executeCommandResponse); + if (soap_begin_count(soap)) + return soap->error; + if (soap->mode & SOAP_IO_LENGTH) + { if (soap_envelope_begin_out(soap) + || soap_putheader(soap) + || soap_body_begin_out(soap) + || soap_put_ns1__executeCommandResponse(soap, &soap_tmp_ns1__executeCommandResponse, "ns1:executeCommandResponse", "") + || soap_body_end_out(soap) + || soap_envelope_end_out(soap)) + return soap->error; + }; + if (soap_end_count(soap) + || soap_response(soap, SOAP_OK) + || soap_envelope_begin_out(soap) + || soap_putheader(soap) + || soap_body_begin_out(soap) + || soap_put_ns1__executeCommandResponse(soap, &soap_tmp_ns1__executeCommandResponse, "ns1:executeCommandResponse", "") + || soap_body_end_out(soap) + || soap_envelope_end_out(soap) + || soap_end_send(soap)) + return soap->error; + return soap_closesock(soap); +} + +/* End of soapServer.cpp */ + |