soap_device.c File Reference
`#include "config.h"`
`#include "ActionRequest.h"`
`#include "httpparser.h"`
`#include "httpreadwrite.h"`
`#include "parsetools.h"`
`#include "soaplib.h"`
`#include "ssdplib.h"`
`#include "statcodes.h"`
`#include "unixutil.h"`
`#include "upnpapi.h"`
Include dependency graph for soap_device.c:

## Macros

#define | SOAP_BODY "Body"
#define | SOAP_URN "http:/""/schemas.xmlsoap.org/soap/envelope/"
#define | QUERY_STATE_VAR_URN "urn:schemas-upnp-org:control-1-0"
#define | SOAP_TIMEOUT UPNP_TIMEOUT
#define | SREQ_HDR_NOT_FOUND -1
#define | SREQ_BAD_HDR_FORMAT -2
#define | SOAP_INVALID_ACTION 401
#define | SOAP_INVALID_ARGS 402
#define | SOAP_OUT_OF_SYNC 403
#define | SOAP_INVALID_VAR 404
#define | SOAP_ACTION_FAILED 501

## Functions

static UPNP_INLINE int | get_request_type (IN http_message_t *request, OUT memptr *action_name)
static void | send_error_response (IN SOCKINFO *info, IN int error_code, IN const char *err_msg, IN http_message_t *hmsg)
static UPNP_INLINE void | send_var_query_response (IN SOCKINFO *info, IN const char *var_value, IN http_message_t *hmsg)
static UPNP_INLINE int | get_action_node (IN IXML_Document *TempDoc, IN char *NodeName, OUT IXML_Document **RespNode)
static int | check_soap_body (IN IXML_Document *doc, IN const char *urn, IN const char *actionName)
static int | check_soap_action_header (IN http_message_t *request, IN const char *urn, OUT char **actionName)
static int | get_device_info (IN http_message_t *request, IN int isQuery, IN IXML_Document *actionDoc, IN int AddressFamily, OUT UpnpString *device_udn, OUT UpnpString *service_id, OUT Upnp_FunPtr *callback, OUT void **cookie)
static UPNP_INLINE void | send_action_response (IN SOCKINFO *info, IN IXML_Document *action_resp, IN http_message_t *request)
static UPNP_INLINE int | get_var_name (IN IXML_Document *TempDoc, OUT char *VarName)
static UPNP_INLINE void | handle_query_variable (IN SOCKINFO *info, IN http_message_t *request, IN IXML_Document *xml_doc)
static void | handle_invoke_action (IN SOCKINFO *info, IN http_message_t *request, IN memptr action_name, IN IXML_Document *xml_doc)
void | soap_device_callback (IN http_parser_t *parser, IN http_message_t *request, INOUT SOCKINFO *info)

## Variables

static const char * | Soap_Invalid_Action = "Invalid Action"
static const char * | Soap_Action_Failed = "Action Failed"
static const char * | Soap_Invalid_Var = "Invalid Var"
const char * | ContentTypeHeader

## Macro Definition Documentation

#define SOAP_TIMEOUT UPNP_TIMEOUT

timeout duration in secs for transmission/reception

## Variable Documentation

const char* ContentTypeHeader

Initial value:
=
"CONTENT-TYPE: text/xml; charset=\"utf-8\"\r\n"