LIBSSDP
 All Classes Files Functions Variables Typedefs Macros
Functions
ssdp_message.c File Reference
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <arpa/inet.h>
#include "common_definitions.h"
#include "configuration.h"
#include "net_definitions.h"
#include "net_utils.h"
#include "socket_helpers.h"
#include "ssdp_message.h"
#include "ssdp_static_defs.h"
#include "string_utils.h"
#include "log.h"
Include dependency graph for ssdp_message.c:

Go to the source code of this file.

Functions

static unsigned char get_header_type (const char *header_string)
 
static void build_ssdp_header (ssdp_header_s *header, const char *raw_header)
 
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

SSDP message

Definition in file ssdp_message.c.

Function Documentation

static void build_ssdp_header ( ssdp_header_s header,
const char *  raw_header 
)
static

Parse a single SSDP header.

Parameters
headerThe location where the parsed result should be stored.
raw_headerThe header string to be parsed.

Definition at line 86 of file ssdp_message.c.

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.

static unsigned char get_header_type ( const char *  header_string)
static

Returns the appropriate unsigned char (number) representation of the header string.

Parameters
header_stringThe header string to be looked up.
Returns
A unsigned char representing the header type.

Definition at line 33 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.