/* soapServer.c Generated by gSOAP 2.8.83 for sc.h gSOAP XML Web services tools Copyright (C) 2000-2018, Robert van Engelen, Genivia Inc. All Rights Reserved. The soapcpp2 tool and its generated software are released under the GPL. This program is released under the GPL with the additional exemption that compiling, linking, and/or using OpenSSL is allowed. -------------------------------------------------------------------------------- A commercial use license is available from Genivia Inc., contact@genivia.com -------------------------------------------------------------------------------- */ #if defined(__BORLANDC__) #pragma option push -w-8060 #pragma option push -w-8004 #endif #include "soapH.h" #ifdef __cplusplus extern "C" { #endif SOAP_SOURCE_STAMP("@(#) soapServer.c ver 2.8.83 2019-07-04 00:58:17 GMT") SOAP_FMAC5 int SOAP_FMAC6 soap_serve(struct soap *soap) { #ifndef WITH_FASTCGI soap->keep_alive = soap->max_keep_alive + 1; #endif do { #ifndef WITH_FASTCGI if (soap->keep_alive > 0 && soap->max_keep_alive > 0) soap->keep_alive--; #endif if (soap_begin_serve(soap)) { if (soap->error >= SOAP_STOP) continue; return soap->error; } if ((soap_serve_request(soap) || (soap->fserveloop && soap->fserveloop(soap))) && soap->error && soap->error < SOAP_STOP) { #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:invoke")) return soap_serve_ns1__invoke(soap); return soap->error = SOAP_NO_METHOD; } #endif SOAP_FMAC5 int SOAP_FMAC6 soap_serve_ns1__invoke(struct soap *soap) { struct ns1__invoke soap_tmp_ns1__invoke; struct ns1__invokeResponse soap_tmp_ns1__invokeResponse; char * soap_tmp_SOAP_ENC__string; soap_default_ns1__invokeResponse(soap, &soap_tmp_ns1__invokeResponse); soap_tmp_SOAP_ENC__string = NULL; soap_tmp_ns1__invokeResponse._invokeReturn = &soap_tmp_SOAP_ENC__string; soap_default_ns1__invoke(soap, &soap_tmp_ns1__invoke); if (!soap_get_ns1__invoke(soap, &soap_tmp_ns1__invoke, "ns1:invoke", 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__invoke(soap, soap_tmp_ns1__invoke._xmlData, soap_tmp_ns1__invokeResponse._invokeReturn); if (soap->error) return soap->error; soap->encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"; /* use SOAP encoding style */ soap_serializeheader(soap); soap_serialize_ns1__invokeResponse(soap, &soap_tmp_ns1__invokeResponse); 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__invokeResponse(soap, &soap_tmp_ns1__invokeResponse, "ns1:invokeResponse", "") || 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__invokeResponse(soap, &soap_tmp_ns1__invokeResponse, "ns1:invokeResponse", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap) || soap_end_send(soap)) return soap->error; return soap_closesock(soap); } #ifdef __cplusplus } #endif #if defined(__BORLANDC__) #pragma option pop #pragma option pop #endif /* End of soapServer.c */