42#include "VirtualDir.h"
45#define MAX_INTERFACES 256
51#define DEFAULT_MAXAGE 1800
53#define DEFAULT_SOAP_CONTENT_LENGTH 64000
55#define DEFAULT_MAX_HEADER_SIZE 16384
60extern size_t g_maxHeaderSize;
65#define UPNP_TIMEOUT 30
87#ifdef INCLUDE_DEVICE_APIS
102 int RegistrationState;
120#ifdef INCLUDE_CLIENT_APIS
137 #pragma GCC diagnostic push
138 #pragma GCC diagnostic ignored "-Wunused-function"
146static void HandleUnlock(
const char *file,
int line)
153static void HandleReadLock(
const char *file,
int line)
160static void HandleWriteLock(
const char *file,
int line)
167static void HandleLock(
const char *file,
int line)
169 HandleWriteLock(file, line);
172 #pragma GCC diagnostic pop
184 int *client_handle_out,
201 int *device_handle_out,
218 int *device_handle_out,
222 service_info **serv_info);
225extern char gIF_IPV4[INET_ADDRSTRLEN];
227extern char gIF_IPV6[INET6_ADDRSTRLEN];
266 char VarName[NAME_SIZE];
267 char NewVal[NAME_SIZE];
268 char DevType[NAME_SIZE];
269 char DevId[NAME_SIZE];
270 char ServiceType[NAME_SIZE];
271 char ServiceVer[NAME_SIZE];
278 struct DevDesc *Devdesc;
290#define E_HTTP_SYNTAX -6
321 const struct in_addr *v4_addr,
322 const struct in_addr *v4_netmask,
325 char *out_v4_netmask,
326 size_t out_v4_netmask_len,
327 int valid_v6_addr_found,
328 const struct in6_addr *v6_addr,
int(* Upnp_FunPtr)(Upnp_EventType EventType, void *Event, void *Cookie)
Definition Callback.h:145
Header file for GenlibClientSubscription methods.
struct s_GenlibClientSubscription GenlibClientSubscription
Definition GenlibClientSubscription.h:27
struct LINKEDLIST LinkedList
struct THREADPOOL ThreadPool
A thread pool similar to the thread pool in the UPnP SDK.
struct TIMERTHREAD TimerThread
WebCallback_HostValidate gWebCallback_HostValidate
Definition upnpapi.c:161
unsigned gIF_IPV6_ULA_GUA_PREFIX_LENGTH
Definition upnpapi.c:190
char Upnp_SID[44]
Holds the subscription identifier for a subscription between a client and a device.
Definition upnp.h:448
struct VirtualDirCallbacks virtualDirCallback
Definition upnpapi.c:126
void UpnpThreadDistribution(struct UpnpNonblockParam *Param)
Schedule async functions in threadpool.
Definition upnpapi.c:4195
ThreadPool gSendThreadPool
Definition upnpapi.c:149
char gIF_IPV6_ULA_GUA[INET6_ADDRSTRLEN]
Definition upnpapi.c:187
void UpnpSetIfAddrStrings(int valid_v4_addr_found, const struct in_addr *v4_addr, const struct in_addr *v4_netmask, char *out_v4, size_t out_v4_len, char *out_v4_netmask, size_t out_v4_netmask_len, int valid_v6_addr_found, const struct in6_addr *v6_addr, char *out_v6, size_t out_v6_len)
Format the discovered v4/v6 interface addresses into their output string buffers, but only for the ad...
Definition upnpapi.c:3729
ThreadPool gRecvThreadPool
Definition upnpapi.c:152
unsigned short LOCAL_PORT_V6_ULA_GUA
Definition upnpapi.c:202
int gAllowLiteralHostRedirection
Definition upnpapi.c:167
int PrintHandleInfo(UpnpClient_Handle Hnd)
Print handle info.
Definition upnpapi.c:4463
Upnp_Handle_Type GetDeviceHandleInfoForPath(const char *path, int AddressFamily, int *device_handle_out, struct Handle_Info **HndInfo, service_info **serv_info)
Retrieves the device handle and information of the first device of the address family specified,...
Definition upnpapi.c:4374
unsigned gIF_IPV6_PREFIX_LENGTH
Definition upnpapi.c:183
void * gWebCallback_HostValidateCookie
Definition upnpapi.c:164
size_t g_maxContentLength
Definition upnpapi.c:216
int UpnpClient_Handle
Returned when a control point application registers with UpnpRegisterClient.
Definition upnp.h:429
virtualDirList * pVirtualDirList
Definition upnpapi.c:129
int g_UpnpSdkEQMaxLen
Definition upnpapi.c:223
char gIF_NAME[(size_t) 180]
Definition upnpapi.c:170
int UpnpGetIfInfo(const char *IfName)
Retrieve interface information and keep it in global variables. If NULL, we'll find the first suitabl...
Definition upnpapi.c:3753
unsigned short LOCAL_PORT_V6
Definition upnpapi.c:199
unsigned short LOCAL_PORT_V4
Definition upnpapi.c:196
ithread_rwlock_t GlobalHndRWLock
Definition upnpapi.c:137
int UpnpDevice_Handle
Returned when a device application registers with UpnpRegisterRootDevice, UpnpRegisterRootDevice2,...
Definition upnp.h:439
Upnp_Handle_Type GetDeviceHandleInfo(UpnpDevice_Handle start, int AddressFamily, int *device_handle_out, struct Handle_Info **HndInfo)
Retrieves the device handle and information of the first device of the address family specified....
Definition upnpapi.c:4337
char gIF_IPV4[INET_ADDRSTRLEN]
Definition upnpapi.c:173
TimerThread gTimerThread
Definition upnpapi.c:146
unsigned gIF_INDEX
Definition upnpapi.c:193
ThreadPool gMiniServerThreadPool
Definition upnpapi.c:155
char gIF_IPV4_NETMASK[INET_ADDRSTRLEN]
Definition upnpapi.c:176
int g_UpnpSdkEQMaxAge
Definition upnpapi.c:233
char gIF_IPV6[INET6_ADDRSTRLEN]
Definition upnpapi.c:180
Upnp_Handle_Type GetHandleInfo(int Hnd, struct Handle_Info **HndInfo)
Definition upnpapi.c:4420
Upnp_Handle_Type GetClientHandleInfo(int *client_handle_out, struct Handle_Info **HndInfo)
Get client handle info.
Definition upnpapi.c:4317
WebServerState bWebServerState
Definition upnpapi.c:158
struct _IXML_NodeList IXML_NodeList
Data structure representing a list of nodes.
struct _IXML_Document IXML_Document
Data structure representing the DOM Document.
Upnp_Handle_Type HType
Definition upnpapi.h:78
IXML_NodeList * ServiceList
Definition upnpapi.h:108
int aliasInstalled
Definition upnpapi.h:84
GenlibClientSubscription * ClientSubList
Definition upnpapi.h:122
service_table ServiceTable
Definition upnpapi.h:110
char DescURL[(size_t) 180]
Definition upnpapi.h:89
char DescXML[(size_t) 180]
Definition upnpapi.h:94
IXML_Document * DescDocument
Definition upnpapi.h:104
char LowerDescURL[(size_t) 180]
Definition upnpapi.h:92
char * Cookie
Definition upnpapi.h:82
Upnp_FunPtr Callback
Definition upnpapi.h:80
int MaxSubscriptionTimeOut
Definition upnpapi.h:114
int MaxSubscriptions
Definition upnpapi.h:112
LinkedList SsdpSearchList
Definition upnpapi.h:124
IXML_NodeList * DeviceList
Definition upnpapi.h:106
int DeviceAf
Definition upnpapi.h:116
Definition VirtualDir.h:11
static enum Upnp_LogLevel_e debug_handle
Get handle information.
Definition upnpapi.h:135
void AutoAdvertise(void *input)
This function is a timer thread scheduled by UpnpSendAdvertisement to the send advetisement again.
void UpnpPrintf(Upnp_LogLevel DLevel, Dbg_Module Module, const char *DbgFileName, int DbgLineNo, const char *FmtStr,...)
Prints the debug statement either on the standard output or log file along with the information from ...
Definition upnpdebug.c:264