libUPnP  1.8.0
Macros | Functions | Variables
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"