37 #include "httpreadwrite.h"
38 #include "miniserver.h"
42 #include <sys/types.h>
52 #include <sys/socket.h>
53 #include <netinet/in_systm.h>
54 #include <netinet/ip.h>
55 #include <netinet/ip_icmp.h>
57 #include <arpa/inet.h>
62 typedef enum SsdpSearchType{
64 SSDP_ALL,SSDP_ROOTDEVICE,
72 typedef enum SsdpCmdType{
86 #define SSDP_IP "239.255.255.250"
87 #define SSDP_IPV6_LINKLOCAL "FF02::C"
88 #define SSDP_PORT 1900
91 #define THREAD_LIMIT 50
92 #define COMMAND_LEN 300
102 #define X_USER_AGENT "redsonic"
106 #define NO_ERROR_FOUND 0
107 #define E_REQUEST_INVALID -3
108 #define E_RES_EXPIRED -4
109 #define E_MEM_ALLOC -5
110 #define E_HTTP_SYNTEX -6
112 #define RQST_TIMEOUT 20
119 enum SsdpCmdType Cmd;
120 enum SsdpSearchType RequestType;
125 char DeviceType[LINE_SIZE];
126 char ServiceType[LINE_SIZE];
127 char Location[LINE_SIZE];
128 char HostAddr[LINE_SIZE];
131 char Date[LINE_SIZE];
132 struct sockaddr *DestAddr;
136 typedef void (* SsdpFunPtr)(
Event *);
145 struct sockaddr_storage DestAddr;
153 struct sockaddr_storage dest_addr;
163 enum SsdpSearchType requestType;
170 struct sockaddr_storage dest_addr;
176 CLIENTONLY(
extern SOCKET gSsdpReqSocket4;);
177 CLIENTONLY(
extern SOCKET gSsdpReqSocket6;);
179 typedef int (*ParserFun)(
char *,
Event *);
194 int Make_Socket_NoBlocking (
int sock);
210 #ifdef INCLUDE_DEVICE_APIS
211 void ssdp_handle_device_request(
213 IN
struct sockaddr* dest_addr );
215 static inline void ssdp_handle_device_request(
217 IN
struct sockaddr* dest_addr ) {}
240 void ssdp_handle_ctrlpt_msg(
242 IN
struct sockaddr* dest_addr,
261 int unique_service_name(
char * cmd,
SsdpEvent * Evt);
292 void readFromSSDPSocket(SOCKET socket);
308 enum SsdpSearchType ssdp_request_type1(IN
char *cmd);
326 int ssdp_request_type(IN
char * cmd, OUT
SsdpEvent * Evt);
344 int SearchByTarget(IN
int Mx, IN
char *St, IN
void *Cookie);
364 int DeviceAdvertisement(
370 IN
int AddressFamily);
399 IN
int AddressFamily);
420 IN
struct sockaddr *DestAddr,
448 IN
struct sockaddr *DestAddr,
473 int ServiceAdvertisement(
478 IN
int AddressFamily);
499 IN
struct sockaddr *DestAddr,
527 IN
int AddressFamily);
543 void *advertiseAndReplyThread(IN
void * data);
566 int AdvertiseAndReply(
569 IN
enum SsdpSearchType SearchType,
570 IN
struct sockaddr *DestAddr,
573 IN
char *ServiceType,
int Exp);
Definition: miniserver.h:43
Definition: httpparser.h:178
Definition: ssdplib.h:167
Definition: ssdplib.h:158
Definition: ssdplib.h:117
Definition: ssdplib.h:140
Provides a platform independent way to include TCP/IP types and functions.
int UpnpDevice_Handle
Returned when a device application registers with UpnpRegisterRootDevice or UpnpRegisterRootDevice2.
Definition: upnp.h:470
Definition: ssdplib.h:149
Definition: httpparser.h:206