diff options
Diffstat (limited to 'libcsoap/csoapcall.c')
-rw-r--r-- | libcsoap/csoapcall.c | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/libcsoap/csoapcall.c b/libcsoap/csoapcall.c deleted file mode 100644 index 1756d29..0000000 --- a/libcsoap/csoapcall.c +++ /dev/null @@ -1,228 +0,0 @@ -/****************************************************************** - * $Id: csoapcall.c,v 1.2 2003/11/13 10:44:10 snowdrop Exp $ - * - * CSOAP Project: A SOAP client/server library in C - * Copyright (C) 2003 Ferhat Ayaz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Email: ayaz@jprogrammer.net - ******************************************************************/ -#include "libcsoap/csoapcall.h" -#include "libcsoap/csoaplog.h" -#include "libcsoap/csoaphttp.h" - -#include <stdarg.h> -#include <string.h> - -HSOAPCALL SoapCallCreate( - const char* url, - const char* uri, - const char* method) -{ - const char *FUNC = "SoapCallCreate"; - HSOAPCALL call; - - SoapTraceEnter(FUNC, "url=%s;uri=%s;method=%s", - url, uri, method); - call = (HSOAPCALL)malloc(sizeof(struct SOAPCALL)); - call->m_method = (char*)malloc(strlen(method)+1); - - call->m_env = SoapEnvCreate(uri, method); - call->m_url = SoapUrlCreate(url); - strcpy(call->m_method, method); - - SoapTraceLeave(FUNC, "call (%p)", call); - return call; -} - - -HSOAPPARAM SoapCallAddParam( - HSOAPCALL call, - const char* name, - const char* type, - const char* format, - ...) -{ - const char *FUNC = "SoapCallAddParam"; - HSOAPBODY body; - HSOAPMETHOD method; - HSOAPPARAM param, result; - va_list ap; - char buffer[SOAP_MAX_STRING_BUFFER]; - - SoapTraceEnter(FUNC, "name=%s;type=%s;format=%s", - name, type, format); - - va_start(ap, format); - vsprintf(buffer, format, ap); - va_end(ap); - - body = SoapEnvGetBody(call->m_env); - method = SoapBodyGetMethod(body, call->m_method); - param = SoapMethodParamContext(method); - result = SoapParamCreate(param, type, NULL, name, "%s", buffer); - - SoapTraceLeave(FUNC, "created param (%p)", result); - return result; -} - - -HSOAPPARAM SoapCallAddStringParam( - HSOAPCALL call, - const char* name, - const char* format, - ...) -{ - const char *FUNC = "SoapCallAddStringParam"; - HSOAPBODY body; - HSOAPMETHOD method; - HSOAPPARAM param, result; - va_list ap; - char buffer[SOAP_MAX_STRING_BUFFER]; - - SoapTraceEnter(FUNC, "name=%s;format=%s", - name, format); - - va_start(ap, format); - vsprintf(buffer, format, ap); - va_end(ap); - - body = SoapEnvGetBody(call->m_env); - method = SoapBodyGetMethod(body, call->m_method); - param = SoapMethodParamContext(method); - result = SoapParamCreateString(param, name, buffer); - SoapTraceLeave(FUNC, "created param (%p)", result); - return result; -} - - -HSOAPPARAM SoapCallAddIntParam( - HSOAPCALL call, - const char* name, - int value) -{ - const char *FUNC = "SoapCallAddIntParam"; - HSOAPBODY body; - HSOAPMETHOD method; - HSOAPPARAM param, result; - - SoapTraceEnter(FUNC, "name=%s;value=%d", - name, value); - - body = SoapEnvGetBody(call->m_env); - method = SoapBodyGetMethod(body, call->m_method); - param = SoapMethodParamContext(method); - result = SoapParamCreateInt(param, name, value); - SoapTraceLeave(FUNC, "created param (%p)", result); - return result; -} - -HSOAPPARAM SoapCallAddDoubleParam( - HSOAPCALL call, - const char* name, - double value) -{ - const char *FUNC = "SoapCallAddDoubleParam"; - HSOAPBODY body; - HSOAPMETHOD method; - HSOAPPARAM param, result; - - SoapTraceEnter(FUNC, "name=%s;value=%f", - name, value); - - body = SoapEnvGetBody(call->m_env); - method = SoapBodyGetMethod(body, call->m_method); - param = SoapMethodParamContext(method); - result = SoapParamCreateDouble(param, name, value); - SoapTraceLeave(FUNC, "created param (%p)", result); - return result; -} - - -HSOAPRES SoapCallInvoke(HSOAPCALL call) -{ - const char* FUNC = "SoapCallInvoke"; - const char* filename = "libcsoap/csoap-client.xml"; - char *buf; - CSOAP_STATUS status; - HSOAPENV env; - HSOAPRES res; - - SoapTraceEnter(FUNC,"%p", call); - - if (!call) { - SoapTraceLeaveWithError(FUNC, "Call is null!"); - return NULL; - } - - if (!call->m_env) { - SoapTraceLeaveWithError(FUNC, "Invalid envelope!"); - return NULL; - } - - if (!call->m_url) { - SoapTraceLeaveWithError(FUNC, "Invalid URL"); - return NULL; - } - -/* xmlSaveFormatFile(filename, ((xmlNodePtr)call->m_env)->doc, 1); - buffer = xmlBufferCreate(); - xmlNodeDump(buffer, ((xmlNodePtr)call->m_env)->doc, - (xmlNodePtr)call->m_env, 1 ,2); - printf("\n%s\n", (const char*)xmlBufferContent(buffer)); - xmlBufferFree(buffer); - - - printf("Sending ...\n"); -*/ - status = SoapHttpSend(call->m_url, call->m_env, &env); - if (status != CSOAP_OK) { - printf("can not send. code = %d\n", status); - } - /* - printf("Sending finished\n"); - - printf("Length: %d\nResponse: \n%s\n\n\r", strlen(buf), buf?buf:"null"); - */ - SoapEnvDump(env); - /* free(buf);*/ - /* SoapEnvFree(env);*/ - res = SoapResCreate(env, call->m_method); - SoapTraceLeave(FUNC, "res (%p)", res); - return res; -} - - -void SoapCallFree(HSOAPCALL call) -{ - const char* FUNC = "SoapCallFree"; - SoapTraceEnter(FUNC,"%p", call); - - if (!call) { - SoapTraceLeave(FUNC, "Call is null!"); - return; - } - - SoapEnvFree(call->m_env); - - if (call->m_url) SoapUrlFree(call->m_url); - if (call->m_method) free(call->m_method); - - free(call); - SoapTraceLeave(FUNC, "Call destroyed"); -} - |