upnptools.c File Reference
`#include "config.h"`
`#include "upnp.h"`
`#include "upnptools.h"`
`#include "ThreadPool.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.
void | UpnpSetMaxJobsTotal (int mjt)
| Sets the maximum number of jobs in the internal thread pool. This option is intended for server applications to avoid an overflow of jobs when serving e.g. many web requests.
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_Document * | makeAction (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_Document * | UpnpMakeAction (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_Document * | UpnpMakeActionResponse (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_Document * | UpnpCreatePropertySet (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.

Referenced by addToAction(), and makeAction().

## Function Documentation

## addToAction()

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] | response | flag to tell if the ActionDoc is for response or request.
  [in,out] | ActionDoc | Request or response document.
  [in] | ActionName | Name of the action request or response.
  [in] | ServType | Service type.
  [in] | ArgName | Name of the argument.
  [in] | ArgValue | Value 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()

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] | response | flag to tell if the ActionDoc is for response or request.
  [in] | ActionName | Name of the action request or response.
  [in] | ServType | Service type.
  [in] | NumArg | Number of arguments in the action request or response.
  [in] | Arg | pointer to the first argument.
  [in] | ArgList | Argument 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().