1 /* $Id: upnpglobalvars.h,v 1.34 2012/09/27 15:47:15 nanard Exp $ */
3 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4 * (c) 2006-2012 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
12 #include "upnppermissions.h"
13 #include "miniupnpdtypes.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
;
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
;
33 extern time_t startup_time
;
35 /* runtime boolean flags */
36 extern int runtime_flags
;
37 #define LOGPACKETSMASK 0x0001
38 #define SYSUPTIMEMASK 0x0002
40 #define ENABLENATPMPMASK 0x0004
42 #define CHECKCLIENTIPMASK 0x0008
43 #define SECUREMODEMASK 0x0010
45 #define ENABLEUPNPMASK 0x0020
47 #ifdef PF_ENABLE_FILTER_RULES
48 #define PFNOQUICKRULESMASK 0x0040
51 #define SETFLAG(mask) runtime_flags |= mask
52 #define GETFLAG(mask) (runtime_flags & mask)
53 #define CLEARFLAG(mask) runtime_flags &= ~mask
55 extern const char * pidfilename
;
57 extern char uuidvalue
[];
59 #define SERIALNUMBER_MAX_LEN (10)
60 extern char serialnumber
[];
62 #define MODELNUMBER_MAX_LEN (48)
63 extern char modelnumber
[];
65 #define PRESENTATIONURL_MAX_LEN (64)
66 extern char presentationurl
[];
68 #define FRIENDLY_NAME_MAX_LEN (64)
69 extern char friendly_name
[];
71 /* UPnP permission rules : */
72 extern struct upnpperm
* upnppermlist
;
73 extern unsigned int num_upnpperm
;
78 extern unsigned int nextnatpmptoclean_timestamp
;
79 extern unsigned short nextnatpmptoclean_eport
;
80 extern unsigned short nextnatpmptoclean_proto
;
84 /* For automatic removal of expired rules (with LeaseDuration) */
85 extern unsigned int nextruletoclean_timestamp
;
88 extern const char * anchor_name
;
89 /* queue and tag for PF rules */
90 extern const char * queue
;
91 extern const char * tag
;
95 extern const char * miniupnpd_nat_chain
;
96 extern const char * miniupnpd_forward_chain
;
97 #ifdef ENABLE_6FC_SERVICE
98 extern const char * miniupnpd_v6_filter_chain
;
102 #ifdef ENABLE_NFQUEUE
105 extern unsigned nfqix
[];
108 /* lan addresses to listen to SSDP traffic */
109 extern struct lan_addr_list lan_addrs
;
112 /* ipv6 address used for HTTP */
113 extern char ipv6_addr_for_http_with_brackets
[64];
116 extern const char * minissdpdsocketpath
;
118 /* BOOTID.UPNP.ORG and CONFIGID.UPNP.ORG */
119 extern unsigned int upnp_bootid
;
120 extern unsigned int upnp_configid
;
122 #ifdef ENABLE_6FC_SERVICE
123 extern int ipv6fc_firewall_enabled
;
124 extern int ipv6fc_inbound_pinhole_allowed
;