From 23629635c0d544c4fbbc0bd5d01dd75413942a3f Mon Sep 17 00:00:00 2001 From: m0gg Date: Mon, 1 Jan 2007 18:58:05 +0000 Subject: WSDL via HTTP GET re-enabled --- libcsoap/soap-nhttp.c | 30 ++++++++++++++---------------- libcsoap/soap-server.h | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 18 deletions(-) (limited to 'libcsoap') diff --git a/libcsoap/soap-nhttp.c b/libcsoap/soap-nhttp.c index d43de46..833b78f 100644 --- a/libcsoap/soap-nhttp.c +++ b/libcsoap/soap-nhttp.c @@ -1,5 +1,5 @@ /****************************************************************** -* $Id: soap-nhttp.c,v 1.11 2006/12/16 16:09:45 m0gg Exp $ +* $Id: soap-nhttp.c,v 1.12 2007/01/01 18:58:05 m0gg Exp $ * * CSOAP Project: A SOAP client/server library in C * Copyright (C) 2003 Ferhat Ayaz @@ -59,6 +59,8 @@ #include "soap-transport.h" #include "soap-addressing.h" #include "soap-xml.h" +#include "soap-router.h" +#include "soap-server.h" #include "soap-admin.h" #include "soap-wsil.h" @@ -146,25 +148,21 @@ soap_nhttp_process(httpd_conn_t * conn, struct hrequest_t * req) struct SoapCtx *response; herror_t err; - /* if (req->method == HTTP_REQUEST_GET && router->wsdl) + if (req->method == HTTP_REQUEST_GET) { - _soap_nhttp_send_document(conn, router->wsdl); - return; - } */ + struct SoapRouter *router; + + router = soap_server_find_router(req->path); + if (router && router->description) + { + _soap_nhttp_send_document(conn, router->description); + return; + } + } if (req->method != HTTP_REQUEST_POST) { - httpd_send_header(conn, 200, HTTP_STATUS_200_REASON_PHRASE); - http_output_stream_write_string(conn->out, - "" - "" - "" - "" - "

Sorry!

" - "
" - "
I only speak with 'POST' method.
" - "" - ""); + httpd_send_not_implemented(conn, "I only speak with 'POST' method."); return; } diff --git a/libcsoap/soap-server.h b/libcsoap/soap-server.h index 2b3d9c0..359458d 100644 --- a/libcsoap/soap-server.h +++ b/libcsoap/soap-server.h @@ -1,5 +1,5 @@ /****************************************************************** - * $Id: soap-server.h,v 1.24 2006/12/13 08:18:53 m0gg Exp $ + * $Id: soap-server.h,v 1.25 2007/01/01 18:58:05 m0gg Exp $ * * CSOAP Project: A SOAP client/server library in C * Copyright (C) 2003 Ferhat Ayaz @@ -113,7 +113,22 @@ /** @page csoap_page cSOAP * - * T.B.D. + * @section csoap_sec cSOAP + * + * cSOAP is a C-based implementation of the Simple Object Access Protocol (SOAP) + * version 1.1. + * + * SOAP is a lightweight protocol for exchange of information in a decentralized, + * distributed environment. It is an XML based protocol that consists of three + * parts: + * - an envelope that defines a framework for describing what is in a message and + * how to process it, + * - a set of encoding rules for expressing instances of application-defined + * datatypes, + * - and a convention for representing remote procedure calls and responses. + * SOAP can potentially be used in combination with a variety of other protocols; + * however, the only bindings defined in this document describe how to use SOAP + * in combination with HTTP and HTTP Extension Framework. * * @section soap_howto_sec HOWTOs and coding examples * @@ -121,6 +136,16 @@ * - @subpage csoap_server_page * - @subpage csoap_mime_page * + * @version 1.2 + * + * @author Ferhat Ayaz + * @author Michael Rans + * @author Matt Campbell + * @author Heiko Ronsdorf + * + * @see http://www.w3.org/TR/soap/ + * @see http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ + * */ /** @page csoap_server_page Howto write a SOAP server @@ -137,6 +162,10 @@ * @section soap_server_init_sec Server initialization * * @code + * static const char const *url = "/csoapserver"; + * static const char const *urn = "urn:examples"; + * static const char const *method = "sayHello"; + * * int main(int argc, char **argv) * { * herror_t err; -- cgit v1.1-32-gdbae