|
libUPnP 1.14.31
|
#include "UpnpInet.h"#include "httpparser.h"#include "httpreadwrite.h"#include "miniserver.h"#include <errno.h>#include <setjmp.h>#include <signal.h>#include <sys/types.h>#include <syslog.h>#include <netinet/in_systm.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>#include <sys/time.h>

Go to the source code of this file.
Data Structures | |
| struct | SsdpEventStruct |
| struct | TData |
| struct | ssdpsearchreply |
| struct | ssdpsearcharg |
| struct | ssdpsearchexparg |
| struct | ssdp_thread_data |
Typedefs | |
| typedef enum SsdpSearchType | SType |
Enumerations | |
| enum | SsdpSearchType { SSDP_SERROR = -1 , SSDP_ALL , SSDP_ROOTDEVICE , SSDP_DEVICEUDN , SSDP_DEVICETYPE , SSDP_SERVICE } |
Functions | |
SSDP Server Functions | |
| int | AdvertiseAndReply (int AdFlag, UpnpDevice_Handle Hnd, enum SsdpSearchType SearchType, struct sockaddr *DestAddr, char *DeviceType, char *DeviceUDN, char *ServiceType, int Exp) |
| Sends SSDP advertisements, replies and shutdown messages. | |
| int | unique_service_name (char *cmd, SsdpEvent *Evt) |
| Fills the fields of the event structure like DeviceType, Device UDN and Service Type. | |
| enum SsdpSearchType | ssdp_request_type1 (char *cmd) |
| This function figures out the type of the SSDP search in the in the request. | |
| int | ssdp_request_type (char *cmd, SsdpEvent *Evt) |
| Starts filling the SSDP event structure based upon the request received. | |
| int | readFromSSDPSocket (SOCKET socket) |
| This function reads the data from the ssdp socket. | |
| int | get_ssdp_sockets (MiniServerSockArray *out) |
| Creates the IPv4 and IPv6 ssdp sockets required by the control point and device operation. | |
SSDP Control Point Functions | |
| void | ssdp_handle_ctrlpt_msg (http_message_t *hmsg, struct sockaddr_storage *dest_addr, int timeout) |
| This function handles the ssdp messages from the devices. These messages includes the search replies, advertisement of device coming alive and bye byes. | |
| int | SearchByTarget (int Hnd, int Mx, char *St, void *Cookie) |
| Creates and send the search request for a specific URL. | |
SSDP Device Functions | |
| void | advertiseAndReplyThread (void *data) |
| Wrapper function to reply the search request coming from the control point. | |
| void | ssdp_handle_device_request (http_message_t *hmsg, struct sockaddr_storage *dest_addr) |
| Handles the search request. It does the sanity checks of the request and then schedules a thread to send a random time reply (random within maximum time given by the control point to reply). | |
| int | DeviceAdvertisement (char *DevType, int RootDev, char *Udn, char *Location, int Duration, int AddressFamily, int PowerState, int SleepPeriod, int RegistrationState) |
| Creates the device advertisement request based on the input parameter, and send it to the multicast channel. | |
| int | SendReply (struct sockaddr *DestAddr, char *DevType, int RootDev, char *Udn, char *Location, int Duration, int ByType, int PowerState, int SleepPeriod, int RegistrationState) |
| Creates the reply packet based on the input parameter, and send it to the client addesss given in its input parameter DestAddr. | |
| int | DeviceReply (struct sockaddr *DestAddr, char *DevType, int RootDev, char *Udn, char *Location, int Duration, int PowerState, int SleepPeriod, int RegistrationState) |
| Creates the reply packet based on the input parameter, and send it to the client address given in its input parameter DestAddr. | |
| int | ServiceAdvertisement (char *Udn, char *ServType, char *Location, int Duration, int AddressFamily, int PowerState, int SleepPeriod, int RegistrationState) |
| Creates the advertisement packet based on the input parameter, and send it to the multicast channel. | |
| int | ServiceReply (struct sockaddr *DestAddr, char *ServType, char *Udn, char *Location, int Duration, int PowerState, int SleepPeriod, int RegistrationState) |
| Creates the advertisement packet based on the input parameter, and send it to the multicast channel. | |
| int | ServiceShutdown (char *Udn, char *ServType, char *Location, int Duration, int AddressFamily, int PowerState, int SleepPeriod, int RegistrationState) |
| Creates a HTTP service shutdown request packet and sends it to the multicast channel through RequestHandler. | |
| int | DeviceShutdown (char *DevType, int RootDev, char *Udn, char *Location, int Duration, int AddressFamily, int PowerState, int SleepPeriod, int RegistrationState) |
| Creates a HTTP device shutdown request packet and send it to the multicast channel through RequestHandler. | |
X_USER_AGENT | |
can be overwritten by configure CFLAGS argument. The {\tt X_USER_AGENT} constant specifies the value of the X-User-Agent: HTTP header. The value "redsonic" is needed for the DSM-320. See https://sourceforge.net/forum/message.php?msg_id=3166856 for more information | |
| #define | X_USER_AGENT "redsonic" |
| #define | NO_ERROR_FOUND 0 |
| #define | E_REQUEST_INVALID -3 |
| #define | E_RES_EXPIRED -4 |
| #define | E_MEM_ALLOC -5 |
| #define | E_HTTP_SYNTEX -6 |
| #define | E_SOCKET -7 |
| #define | RQST_TIMEOUT 20 |
| typedef struct SsdpEventStruct | SsdpEvent |
| typedef void(* | SsdpFunPtr) (SsdpEvent *) |
| typedef struct TData | ThreadData |
| typedef struct ssdpsearchreply | SsdpSearchReply |
| typedef struct ssdpsearcharg | SsdpSearchArg |
| typedef struct ssdpsearchexparg | SsdpSearchExpArg |
| typedef int(* | ParserFun) (char *, SsdpEvent *) |
| SOCKET | gSsdpReqSocket4 |