#include <memory>
#include <strstream>
#include <cassert>
#include "ISAPI_Server.h"
#include "isapistream.h"
#include "ISAPI_HttpContext.h"
#include "ISAPI_SoapServerFactory.h"
|
static string | MakeDllName (EXTENSION_CONTROL_BLOCK *pECB, const char *pszDllName) |
|
helper function to build full path to dll.
More...
|
|
static int | mod_gsoap_plugin_copy (struct soap *soap, struct soap_plugin *dst, struct soap_plugin *src) |
|
static void | mod_gsoap_delete (struct soap *soap, struct soap_plugin *p) |
|
static int | mod_gsoap_plugin (struct soap *soap, struct soap_plugin *p, void *arg) |
|
static int | http_post_header (soap *soap, const char *key, const char *value) |
|
static int | http_response (soap *soap, int soap_error, size_t count) |
|
static int | fsend (soap *soap, const char *pBuf, size_t len) |
|
static size_t | frecv (soap *soap, char *pBuf, size_t len) |
|
static DWORD | serve (const mod_gsoap_interface *pInterface, ISAPI_HttpRequest &req, HttpResponse res, isapistream &is) |
|
static void | SendErrorMessage (isapistream &is, const char *pszError) |
|
|
static const char * | GSOAP_ID = "mod_gsoap isapi extension 0.0.2" |
|
static const char * | crlf = "\r\n" |
|
Implementation of the ISAPI_Server class
- Author
- Christian Aberger Copyright (C) 2001 WebWare (http://www.webware.at) Load a gosap server dll dynamically (if not already loaded) and serve the request. See http://www.aberger.at/SOAP for documentation.
static size_t frecv |
( |
soap * |
soap, |
|
|
char * |
pBuf, |
|
|
size_t |
len |
|
) |
| |
|
static |
gsoap function that requests the next piece of data from us
static int fsend |
( |
soap * |
soap, |
|
|
const char * |
pBuf, |
|
|
size_t |
len |
|
) |
| |
|
static |
gsoap function to append the data to send to our output buffer
static int http_post_header |
( |
soap * |
soap, |
|
|
const char * |
key, |
|
|
const char * |
value |
|
) |
| |
|
static |
Emits HTTP key: val header entries.
- Returns
- SOAP_OK, or a gSOAP error code. Built-in gSOAP function: http_post_header.
IIS handles most of the headers (Connection etc.) itself. The main thing we need to extract is SOAPAction.
static int http_response |
( |
soap * |
soap, |
|
|
int |
soap_error, |
|
|
size_t |
count |
|
) |
| |
|
static |
set the http - response code from the soap error message.
static string MakeDllName |
( |
EXTENSION_CONTROL_BLOCK * |
pECB, |
|
|
const char * |
pszDllName |
|
) |
| |
|
static |
helper function to build full path to dll.
Given a dllname make a fully qualified path to the dll in the current isapi directory
- Parameters
-
pECB | the Extension Control Block of the Request |
pszDllName | the unqualified dllname |
static void mod_gsoap_delete |
( |
struct soap * |
soap, |
|
|
struct soap_plugin * |
p |
|
) |
| |
|
static |
static int mod_gsoap_plugin |
( |
struct soap * |
soap, |
|
|
struct soap_plugin * |
p, |
|
|
void * |
arg |
|
) |
| |
|
static |
static int mod_gsoap_plugin_copy |
( |
struct soap * |
soap, |
|
|
struct soap_plugin * |
dst, |
|
|
struct soap_plugin * |
src |
|
) |
| |
|
static |
static void SendErrorMessage |
( |
isapistream & |
is, |
|
|
const char * |
pszError |
|
) |
| |
|
static |
const char* crlf = "\r\n" |
|
static |
const char* GSOAP_ID = "mod_gsoap isapi extension 0.0.2" |
|
static |