libUPnP 1.14.19
Data Structures | Macros | Functions | Variables
upnptools.c File Reference
#include "config.h"
#include "upnp.h"
#include "upnptools.h"
#include "uri.h"
#include <stdarg.h>
#include <stdio.h>
#include "posix_overwrites.h"
Include dependency graph for upnptools.c:

Data Structures

struct  ErrorString
 Structure to maintain a error code and string associated with the error code. More...
 

Macros

#define HEADER_LENGTH   2000
 

Functions

const char * UpnpGetErrorMessage (int rc)
 Converts an SDK error code into a string error message suitable for display. The memory returned from this function should NOT be freed.
 
int UpnpResolveURL (const char *BaseURL, const char *RelURL, char *AbsURL)
 Combines a base URL and a relative URL into a single absolute URL.
 
int UpnpResolveURL2 (const char *BaseURL, const char *RelURL, char **AbsURL)
 Combines a base URL and a relative URL into a single absolute URL.
 
static int addToAction (int response, IXML_Document **ActionDoc, const char *ActionName, const char *ServType, const char *ArgName, const char *ArgValue)
 Adds the argument in the action request or response.
 
static IXML_DocumentmakeAction (int response, const char *ActionName, const char *ServType, int NumArg, const char *Arg, va_list ArgList)
 Creates the action request or response from the argument list.
 
IXML_DocumentUpnpMakeAction (const char *ActionName, const char *ServType, int NumArg, const char *Arg,...)
 Creates an action request packet based on its input parameters (status variable name and value pair).
 
IXML_DocumentUpnpMakeActionResponse (const char *ActionName, const char *ServType, int NumArg, const char *Arg,...)
 Ceates an action response packet based on its output parameters (status variable name and value pair).
 
int UpnpAddToAction (IXML_Document **ActionDoc, const char *ActionName, const char *ServType, const char *ArgName, const char *ArgValue)
 Adds the argument in the action request.
 
int UpnpAddToActionResponse (IXML_Document **ActionResponse, const char *ActionName, const char *ServType, const char *ArgName, const char *ArgValue)
 Creates an action response packet based on its output parameters (status variable name and value pair).
 
IXML_DocumentUpnpCreatePropertySet (int NumArg, const char *Arg,...)
 Creates a property set message packet.
 
int UpnpAddToPropertySet (IXML_Document **PropSet, const char *ArgName, const char *ArgValue)
 Can be used when an application needs to transfer the status of many variables at once.
 

Variables

struct ErrorString ErrorMessages []
 Array of error structures.
 

Macro Definition Documentation

◆ HEADER_LENGTH

#define HEADER_LENGTH   2000

Maximum action header buffer length.

Function Documentation

◆ addToAction()

static int addToAction ( int  response,
IXML_Document **  ActionDoc,
const char *  ActionName,
const char *  ServType,
const char *  ArgName,
const char *  ArgValue 
)
static

Adds the argument in the action request or response.

This function creates the action request or response if it is a first argument, otherwise it will add the argument in the document.

Returns
UPNP_E_SUCCESS if successful, otherwise the appropriate error.
Parameters
[in]responseflag to tell if the ActionDoc is for response or request.
[in,out]ActionDocRequest or response document.
[in]ActionNameName of the action request or response.
[in]ServTypeService type.
[in]ArgNameName of the argument.
[in]ArgValueValue of the argument.

References HEADER_LENGTH, ixmlDocument_createElement(), ixmlDocument_createTextNode(), ixmlNode_appendChild(), ixmlNode_getFirstChild(), ixmlParseBufferEx(), ErrorString::rc, UPNP_E_INVALID_DESC, UPNP_E_INVALID_PARAM, UPNP_E_OUTOF_MEMORY, and UPNP_E_SUCCESS.

Referenced by UpnpAddToAction(), and UpnpAddToActionResponse().

◆ makeAction()

static IXML_Document * makeAction ( int  response,
const char *  ActionName,
const char *  ServType,
int  NumArg,
const char *  Arg,
va_list  ArgList 
)
static

Creates the action request or response from the argument list.

Returns
Action request or response document if successful, otherwise returns NULL
Parameters
[in]responseflag to tell if the ActionDoc is for response or request.
[in]ActionNameName of the action request or response.
[in]ServTypeService type.
[in]NumArgNumber of arguments in the action request or response.
[in]Argpointer to the first argument.
[in]ArgListArgument list.

References HEADER_LENGTH, ixmlDocument_createElement(), ixmlDocument_createTextNode(), ixmlNode_appendChild(), ixmlNode_getFirstChild(), ixmlParseBufferEx(), and ErrorString::rc.

Referenced by UpnpMakeAction(), and UpnpMakeActionResponse().

Variable Documentation

◆ ErrorMessages

struct ErrorString ErrorMessages[]

Array of error structures.

Referenced by UpnpGetErrorMessage().