LIBSSDP
 All Classes Files Functions Variables Typedefs Macros
Classes | Macros | Typedefs | Functions
ssdp_message.h File Reference
#include "configuration.h"
Include dependency graph for ssdp_message.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ssdp_header_struct
 
struct  ssdp_custom_field_struct
 
struct  ssdp_message_struct
 

Macros

#define DAEMON_PORT   43210
 
#define XML_BUFFER_SIZE   2048
 
#define DEVICE_INFO_SIZE   16384
 
#define MULTICAST_TIMEOUT   2
 
#define SSDP_HEADER_HOST_STR   "host"
 
#define SSDP_HEADER_ST_STR   "st"
 
#define SSDP_HEADER_MAN_STR   "man"
 
#define SSDP_HEADER_MX_STR   "mx"
 
#define SSDP_HEADER_CACHE_STR   "cache"
 
#define SSDP_HEADER_LOCATION_STR   "location"
 
#define SSDP_HEADER_OPT_STR   "opt"
 
#define SSDP_HEADER_01NLS_STR   "01-nls"
 
#define SSDP_HEADER_NT_STR   "nt"
 
#define SSDP_HEADER_NTS_STR   "nts"
 
#define SSDP_HEADER_SERVER_STR   "server"
 
#define SSDP_HEADER_XUSERAGENT_STR   "x-user-agent"
 
#define SSDP_HEADER_USN_STR   "usn"
 
#define SSDP_HEADER_UNKNOWN_STR   "unknown"
 
#define SSDP_HEADER_HOST   1
 
#define SSDP_HEADER_ST   2
 
#define SSDP_HEADER_MAN   3
 
#define SSDP_HEADER_MX   4
 
#define SSDP_HEADER_CACHE   5
 
#define SSDP_HEADER_LOCATION   6
 
#define SSDP_HEADER_OPT   7
 
#define SSDP_HEADER_01NLS   8
 
#define SSDP_HEADER_NT   9
 
#define SSDP_HEADER_NTS   10
 
#define SSDP_HEADER_SERVER   11
 
#define SSDP_HEADER_XUSERAGENT   12
 
#define SSDP_HEADER_USN   13
 
#define SSDP_HEADER_UNKNOWN   0
 

Typedefs

typedef struct ssdp_header_struct ssdp_header_s
 
typedef struct
ssdp_custom_field_struct 
ssdp_custom_field_s
 
typedef struct ssdp_message_struct ssdp_message_s
 

Functions

ssdp_custom_field_sget_custom_field (const ssdp_message_s *ssdp_message, const char *custom_field)
 
int fetch_custom_fields (configuration_s *conf, ssdp_message_s *ssdp_message)
 
const char * get_header_string (const unsigned int header_type, const ssdp_header_s *header)
 
BOOL init_ssdp_message (ssdp_message_s **message_pointer)
 
BOOL build_ssdp_message (ssdp_message_s *message, char *ip, char *mac, int message_length, const char *raw_message)
 
void free_ssdp_message (ssdp_message_s **message_pointer)
 

Detailed Description

Header file for ssdp_message.c.

Definition in file ssdp_message.h.

Macro Definition Documentation

#define DAEMON_PORT   43210

Port the daemon will listen on.

Definition at line 14 of file ssdp_message.h.

#define DEVICE_INFO_SIZE   16384

Size of the extra device info buffer.

Definition at line 18 of file ssdp_message.h.

#define MULTICAST_TIMEOUT   2

Timeout when waiting for nodes to resond to a SEARCH message.

Definition at line 20 of file ssdp_message.h.

#define XML_BUFFER_SIZE   2048

XML buffer/container string.

Definition at line 16 of file ssdp_message.h.

Typedef Documentation

SSDP custom field.

The SSDP message header.

SSDP message.

Function Documentation

BOOL build_ssdp_message ( ssdp_message_s message,
char *  ip,
char *  mac,
int  message_length,
const char *  raw_message 
)

Parse a SSDP message.

Parameters
messageThe location where the parsed result should be stored.
ipThe IP address of the sender.
macThe MAC address of the sender.
int*message_length The message length.
raw_messageThe message string to be parsed.
Returns
TRUE on success, FALSE otherwise.

Definition at line 498 of file ssdp_message.c.

int fetch_custom_fields ( configuration_s conf,
ssdp_message_s ssdp_message 
)

Fetches additional info from a UPnP message "Location" header and stores it in the custom_fields in the ssdp_message.

Parameters
confThe global configuration.
ssdp_messageThe message whos "Location" header to use.
Returns
The number of bytes received.

Definition at line 157 of file ssdp_message.c.

void free_ssdp_message ( ssdp_message_s **  message_pointer)

Frees all neccessary allocations in a ssdp_message_s.

Parameters
messageThe message to free allocations for.

Definition at line 608 of file ssdp_message.c.

ssdp_custom_field_s* get_custom_field ( const ssdp_message_s ssdp_message,
const char *  custom_field 
)

Searches the SSDP message custom-fields for the given custom-field name

Parameters
ssdp_messageThe SSDP message to search in
custom_fieldThe Custom Field to search for
Returns
Returns the found custom-field or NULL

Definition at line 134 of file ssdp_message.c.

const char* get_header_string ( const unsigned int  header_type,
const ssdp_header_s header 
)

Returns the appropriate string representation of the header type.

Parameters
header_typeThe header type (int) to be looked up.
Returns
A string representing the header type.

Definition at line 402 of file ssdp_message.c.

BOOL init_ssdp_message ( ssdp_message_s **  message_pointer)

Initializes (allocates neccessary memory) for a SSDP message.

Parameters
messageThe message to initialize.
Returns
TRUE on success, FALSE otherwise.

Definition at line 431 of file ssdp_message.c.