Miniupnpd: update from 1.8 (20140422) to 1.9 (20141209)
[tomato.git] / release / src / router / miniupnpd / upnpglobalvars.h
blob6e60e38d4e18944da9afc6ac4e60d9649b7989a6
1 /* $Id: upnpglobalvars.h,v 1.41 2014/05/22 07:51:08 nanard Exp $ */
2 /* MiniUPnP project
3 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4 * (c) 2006-2014 Thomas Bernard
5 * This software is subject to the conditions detailed
6 * in the LICENCE file provided within the distribution */
8 #ifndef UPNPGLOBALVARS_H_INCLUDED
9 #define UPNPGLOBALVARS_H_INCLUDED
11 #include <time.h>
12 #include "upnppermissions.h"
13 #include "miniupnpdtypes.h"
14 #include "config.h"
16 /* name of the network interface used to acces internet */
17 extern const char * ext_if_name;
19 /* file to store all leases */
20 #ifdef ENABLE_LEASEFILE
21 extern const char * lease_file;
22 #endif
24 /* forced ip address to use for this interface
25 * when NULL, getifaddr() is used */
26 extern const char * use_ext_ip_addr;
28 /* parameters to return to upnp client when asked */
29 extern unsigned long downstream_bitrate;
30 extern unsigned long upstream_bitrate;
32 /* statup time */
33 extern time_t startup_time;
35 extern unsigned long int min_lifetime;
36 extern unsigned long int max_lifetime;
38 /* runtime boolean flags */
39 extern int runtime_flags;
40 #define LOGPACKETSMASK 0x0001
41 #define SYSUPTIMEMASK 0x0002
42 #ifdef ENABLE_NATPMP
43 #define ENABLENATPMPMASK 0x0004
44 #endif
45 #define CHECKCLIENTIPMASK 0x0008
46 #define SECUREMODEMASK 0x0010
48 #define ENABLEUPNPMASK 0x0020
50 #ifdef PF_ENABLE_FILTER_RULES
51 #define PFNOQUICKRULESMASK 0x0040
52 #endif
53 #ifdef ENABLE_IPV6
54 #define IPV6DISABLEDMASK 0x0080
55 #endif
56 #ifdef ENABLE_6FC_SERVICE
57 #define IPV6FCFWDISABLEDMASK 0x0100
58 #define IPV6FCINBOUNDDISALLOWEDMASK 0x0200
59 #endif
60 #ifdef ENABLE_PCP
61 #define PCP_ALLOWTHIRDPARTYMASK 0x0400
62 #endif
64 #define SETFLAG(mask) runtime_flags |= mask
65 #define GETFLAG(mask) (runtime_flags & mask)
66 #define CLEARFLAG(mask) runtime_flags &= ~mask
68 extern const char * pidfilename;
70 extern char uuidvalue_igd[]; /* uuid of root device (IGD) */
71 extern char uuidvalue_wan[]; /* uuid of WAN Device */
72 extern char uuidvalue_wcd[]; /* uuid of WAN Connection Device */
74 #define SERIALNUMBER_MAX_LEN (10)
75 extern char serialnumber[];
77 #define MODELNUMBER_MAX_LEN (48)
78 extern char modelnumber[];
80 #define PRESENTATIONURL_MAX_LEN (64)
81 extern char presentationurl[];
83 #ifdef ENABLE_MANUFACTURER_INFO_CONFIGURATION
84 #define FRIENDLY_NAME_MAX_LEN (64)
85 extern char friendly_name[];
87 #define MANUFACTURER_NAME_MAX_LEN (64)
88 extern char manufacturer_name[];
90 #define MANUFACTURER_URL_MAX_LEN (64)
91 extern char manufacturer_url[];
93 #define MODEL_NAME_MAX_LEN (64)
94 extern char model_name[];
96 #define MODEL_DESCRIPTION_MAX_LEN (64)
97 extern char model_description[];
99 #define MODEL_URL_MAX_LEN (64)
100 extern char model_url[];
101 #endif
103 /* UPnP permission rules : */
104 extern struct upnpperm * upnppermlist;
105 extern unsigned int num_upnpperm;
107 #ifdef PCP_SADSCP
108 extern struct dscp_values* dscp_values_list;
109 extern unsigned int num_dscp_values;
110 #endif
112 /* For automatic removal of expired rules (with LeaseDuration) */
113 extern unsigned int nextruletoclean_timestamp;
115 #ifdef USE_PF
116 extern const char * anchor_name;
117 /* queue and tag for PF rules */
118 extern const char * queue;
119 extern const char * tag;
120 #endif
122 #ifdef USE_NETFILTER
123 extern const char * miniupnpd_nat_chain;
124 extern const char * miniupnpd_peer_chain;
125 extern const char * miniupnpd_forward_chain;
126 #ifdef ENABLE_UPNPPINHOLE
127 extern const char * miniupnpd_v6_filter_chain;
128 #endif
129 #endif
131 #ifdef ENABLE_NFQUEUE
132 extern int nfqueue;
133 extern int n_nfqix;
134 extern unsigned nfqix[];
135 #endif
137 /* lan addresses to listen to SSDP traffic */
138 extern struct lan_addr_list lan_addrs;
140 #ifdef ENABLE_IPV6
141 /* ipv6 address used for HTTP */
142 extern char ipv6_addr_for_http_with_brackets[64];
144 /* address used to bind local services */
145 extern struct in6_addr ipv6_bind_addr;
147 #endif
149 extern const char * minissdpdsocketpath;
151 /* BOOTID.UPNP.ORG and CONFIGID.UPNP.ORG */
152 extern unsigned int upnp_bootid;
153 extern unsigned int upnp_configid;
155 #endif