LIBSSDP
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Macros
include
ssdp_message.h
Go to the documentation of this file.
1
7
#ifndef __SSDP_MESSAGE_H__
8
#define __SSDP_MESSAGE_H__
9
10
#include "
configuration.h
"
11
12
// TODO: move daemon port to daemon.h ?
14
#define DAEMON_PORT 43210
15
16
#define XML_BUFFER_SIZE 2048
17
18
#define DEVICE_INFO_SIZE 16384
19
20
#define MULTICAST_TIMEOUT 2
21
22
/* SSDP header types string representations */
23
#define SSDP_HEADER_HOST_STR "host"
24
#define SSDP_HEADER_ST_STR "st"
25
#define SSDP_HEADER_MAN_STR "man"
26
#define SSDP_HEADER_MX_STR "mx"
27
#define SSDP_HEADER_CACHE_STR "cache"
28
#define SSDP_HEADER_LOCATION_STR "location"
29
#define SSDP_HEADER_OPT_STR "opt"
30
#define SSDP_HEADER_01NLS_STR "01-nls"
31
#define SSDP_HEADER_NT_STR "nt"
32
#define SSDP_HEADER_NTS_STR "nts"
33
#define SSDP_HEADER_SERVER_STR "server"
34
#define SSDP_HEADER_XUSERAGENT_STR "x-user-agent"
35
#define SSDP_HEADER_USN_STR "usn"
36
#define SSDP_HEADER_UNKNOWN_STR "unknown"
37
38
//TODO: make enum
39
/* SSDP header types uchars */
40
#define SSDP_HEADER_HOST 1
41
#define SSDP_HEADER_ST 2
42
#define SSDP_HEADER_MAN 3
43
#define SSDP_HEADER_MX 4
44
#define SSDP_HEADER_CACHE 5
45
#define SSDP_HEADER_LOCATION 6
46
#define SSDP_HEADER_OPT 7
47
#define SSDP_HEADER_01NLS 8
48
#define SSDP_HEADER_NT 9
49
#define SSDP_HEADER_NTS 10
50
#define SSDP_HEADER_SERVER 11
51
#define SSDP_HEADER_XUSERAGENT 12
52
#define SSDP_HEADER_USN 13
53
#define SSDP_HEADER_UNKNOWN 0
54
56
typedef
struct
ssdp_header_struct
{
58
unsigned
char
type
;
60
char
*
unknown_type
;
62
char
*
contents
;
64
struct
ssdp_header_struct
*
first
;
66
struct
ssdp_header_struct
*
next
;
67
}
ssdp_header_s
;
68
70
typedef
struct
ssdp_custom_field_struct
{
72
char
*
name
;
74
char
*
contents
;
76
struct
ssdp_custom_field_struct
*
first
;
78
struct
ssdp_custom_field_struct
*
next
;
79
}
ssdp_custom_field_s
;
80
82
typedef
struct
ssdp_message_struct
{
84
char
*
mac
;
86
char
*
ip
;
88
int
message_length
;
90
char
*
datetime
;
95
char
*
request
;
97
char
*
protocol
;
99
char
*
answer
;
104
char
*
info
;
106
unsigned
char
header_count
;
108
struct
ssdp_header_struct
*
headers
;
110
unsigned
char
custom_field_count
;
112
struct
ssdp_custom_field_struct
*
custom_fields
;
113
}
ssdp_message_s
;
114
123
ssdp_custom_field_s
*
get_custom_field
(
const
ssdp_message_s
*ssdp_message,
124
const
char
*custom_field);
125
135
int
fetch_custom_fields
(
configuration_s
*
conf
,
ssdp_message_s
*ssdp_message);
136
144
const
char
*
get_header_string
(
const
unsigned
int
header_type,
145
const
ssdp_header_s
*header);
146
154
BOOL
init_ssdp_message
(
ssdp_message_s
**message_pointer);
155
167
BOOL
build_ssdp_message
(
ssdp_message_s
*message,
char
*ip,
char
*mac,
168
int
message_length,
const
char
*raw_message);
169
175
void
free_ssdp_message
(
ssdp_message_s
**message_pointer);
176
177
#endif
/* __SSDP_MESSAGE_H__ */
178
ssdp_message_struct::datetime
char * datetime
Definition:
ssdp_message.h:90
get_header_string
const char * get_header_string(const unsigned int header_type, const ssdp_header_s *header)
Definition:
ssdp_message.c:402
ssdp_message_struct::protocol
char * protocol
Definition:
ssdp_message.h:97
get_custom_field
ssdp_custom_field_s * get_custom_field(const ssdp_message_s *ssdp_message, const char *custom_field)
Definition:
ssdp_message.c:134
ssdp_message_struct::header_count
unsigned char header_count
Definition:
ssdp_message.h:106
ssdp_message_struct::custom_fields
struct ssdp_custom_field_struct * custom_fields
Definition:
ssdp_message.h:112
ssdp_header_struct::type
unsigned char type
Definition:
ssdp_message.h:58
ssdp_header_struct::next
struct ssdp_header_struct * next
Definition:
ssdp_message.h:66
ssdp_header_struct::contents
char * contents
Definition:
ssdp_message.h:62
ssdp_message_struct::headers
struct ssdp_header_struct * headers
Definition:
ssdp_message.h:108
free_ssdp_message
void free_ssdp_message(ssdp_message_s **message_pointer)
Definition:
ssdp_message.c:608
fetch_custom_fields
int fetch_custom_fields(configuration_s *conf, ssdp_message_s *ssdp_message)
Definition:
ssdp_message.c:157
build_ssdp_message
BOOL build_ssdp_message(ssdp_message_s *message, char *ip, char *mac, int message_length, const char *raw_message)
Definition:
ssdp_message.c:498
ssdp_custom_field_struct::name
char * name
Definition:
ssdp_message.h:72
ssdp_header_struct::unknown_type
char * unknown_type
Definition:
ssdp_message.h:60
ssdp_message_struct::mac
char * mac
Definition:
ssdp_message.h:84
ssdp_message_struct::custom_field_count
unsigned char custom_field_count
Definition:
ssdp_message.h:110
configuration.h
ssdp_custom_field_struct::contents
char * contents
Definition:
ssdp_message.h:74
ssdp_message_struct::message_length
int message_length
Definition:
ssdp_message.h:88
ssdp_custom_field_s
struct ssdp_custom_field_struct ssdp_custom_field_s
ssdp_message_struct::info
char * info
Definition:
ssdp_message.h:104
ssdp_header_s
struct ssdp_header_struct ssdp_header_s
ssdp_message_struct::ip
char * ip
Definition:
ssdp_message.h:86
ssdp_custom_field_struct
Definition:
ssdp_message.h:70
ssdp_custom_field_struct::first
struct ssdp_custom_field_struct * first
Definition:
ssdp_message.h:76
init_ssdp_message
BOOL init_ssdp_message(ssdp_message_s **message_pointer)
Definition:
ssdp_message.c:431
ssdp_header_struct::first
struct ssdp_header_struct * first
Definition:
ssdp_message.h:64
configuration_struct
Definition:
configuration.h:14
ssdp_message_struct::request
char * request
Definition:
ssdp_message.h:95
BOOL
int BOOL
Definition:
common_definitions.h:34
conf
static configuration_s conf
Definition:
main.c:73
ssdp_message_struct
Definition:
ssdp_message.h:82
ssdp_message_struct::answer
char * answer
Definition:
ssdp_message.h:99
ssdp_custom_field_struct::next
struct ssdp_custom_field_struct * next
Definition:
ssdp_message.h:78
ssdp_message_s
struct ssdp_message_struct ssdp_message_s
ssdp_header_struct
Definition:
ssdp_message.h:56
Generated on Mon Jun 12 2017 08:54:20 for LIBSSDP by
1.8.8