Monero
Loading...
Searching...
No Matches
upnpglobalvars.h
Go to the documentation of this file.
1/* $Id: upnpglobalvars.h,v 1.48 2019/05/21 08:39:45 nanard Exp $ */
2/* vim: tabstop=4 shiftwidth=4 noexpandtab
3 * MiniUPnP project
4 * http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
5 * (c) 2006-2020 Thomas Bernard
6 * This software is subject to the conditions detailed
7 * in the LICENCE file provided within the distribution */
8
9#ifndef UPNPGLOBALVARS_H_INCLUDED
10#define UPNPGLOBALVARS_H_INCLUDED
11
12#include <time.h>
13#include "upnppermissions.h"
14#include "miniupnpdtypes.h"
15#include "config.h"
16
17/* name of the network interface used to access internet */
18extern const char * ext_if_name;
19
20#ifdef ENABLE_IPV6
21/* name of the network interface used to access internet - for IPv6*/
22extern const char * ext_if_name6;
23#endif
24
25/* stun host/port configuration */
26extern const char * ext_stun_host;
28
29/* file to store all leases */
30#ifdef ENABLE_LEASEFILE
31extern const char * lease_file;
32#endif
33
34/* forced ip address to use for this interface
35 * when NULL, getifaddr() is used */
36extern const char * use_ext_ip_addr;
37
38/* disallow all port forwarding requests when
39 * we are behind restrictive nat */
41
42/* parameters to return to upnp client when asked */
43extern unsigned long downstream_bitrate;
44extern unsigned long upstream_bitrate;
45
46/* statup time */
47extern time_t startup_time;
48#if defined(ENABLE_NATPMP) || defined(ENABLE_PCP)
49/* origin for "epoch time" sent into NATPMP and PCP responses */
50extern time_t epoch_origin;
51#endif /* defined(ENABLE_NATPMP) || defined(ENABLE_PCP) */
52
53extern unsigned long int min_lifetime;
54extern unsigned long int max_lifetime;
55
56/* runtime boolean flags */
57extern int runtime_flags;
58#define LOGPACKETSMASK 0x0001
59#define SYSUPTIMEMASK 0x0002
60#ifdef ENABLE_NATPMP
61#define ENABLENATPMPMASK 0x0004
62#endif
63#define CHECKCLIENTIPMASK 0x0008
64#define SECUREMODEMASK 0x0010
65
66#define ENABLEUPNPMASK 0x0020
67
68#ifdef PF_ENABLE_FILTER_RULES
69#define PFNOQUICKRULESMASK 0x0040
70#endif
71#ifdef ENABLE_IPV6
72#define IPV6DISABLEDMASK 0x0080
73#endif
74#ifdef ENABLE_6FC_SERVICE
75#define IPV6FCFWDISABLEDMASK 0x0100
76#define IPV6FCINBOUNDDISALLOWEDMASK 0x0200
77#endif
78#ifdef ENABLE_PCP
79#define PCP_ALLOWTHIRDPARTYMASK 0x0400
80#endif
81#ifdef IGD_V2
82#define FORCEIGDDESCV1MASK 0x0800
83#endif
84
85#define PERFORMSTUNMASK 0x1000
86
87#define SETFLAG(mask) runtime_flags |= mask
88#define GETFLAG(mask) (runtime_flags & mask)
89#define CLEARFLAG(mask) runtime_flags &= ~mask
90
91extern const char * pidfilename;
92
93extern char uuidvalue_igd[]; /* uuid of root device (IGD) */
94extern char uuidvalue_wan[]; /* uuid of WAN Device */
95extern char uuidvalue_wcd[]; /* uuid of WAN Connection Device */
96
97#define SERIALNUMBER_MAX_LEN (10)
98extern char serialnumber[];
99
100#define MODELNUMBER_MAX_LEN (48)
101extern char modelnumber[];
102
103#define PRESENTATIONURL_MAX_LEN (64)
104extern char presentationurl[];
105
106#ifdef ENABLE_MANUFACTURER_INFO_CONFIGURATION
107#define FRIENDLY_NAME_MAX_LEN (64)
108extern char friendly_name[];
109
110#define MANUFACTURER_NAME_MAX_LEN (64)
111extern char manufacturer_name[];
112
113#define MANUFACTURER_URL_MAX_LEN (64)
114extern char manufacturer_url[];
115
116#define MODEL_NAME_MAX_LEN (64)
117extern char model_name[];
118
119#define MODEL_DESCRIPTION_MAX_LEN (64)
120extern char model_description[];
121
122#define MODEL_URL_MAX_LEN (64)
123extern char model_url[];
124#endif
125
126/* UPnP permission rules : */
127extern struct upnpperm * upnppermlist;
128extern unsigned int num_upnpperm;
129
130#ifdef PCP_SADSCP
131extern struct dscp_values* dscp_values_list;
132extern unsigned int num_dscp_values;
133#endif
134
135/* For automatic removal of expired rules (with LeaseDuration) */
136extern unsigned int nextruletoclean_timestamp;
137
138#ifdef USE_PF
139extern const char * anchor_name;
140/* queue and tag for PF rules */
141extern const char * queue;
142extern const char * tag;
143#endif
144
145#ifdef ENABLE_NFQUEUE
146extern int nfqueue;
147extern int n_nfqix;
148extern unsigned nfqix[];
149#endif
150
151/* lan addresses to listen to SSDP traffic */
152extern struct lan_addr_list lan_addrs;
153
154#ifdef ENABLE_IPV6
155/* ipv6 address used for HTTP */
156extern char ipv6_addr_for_http_with_brackets[64];
157
158/* address used to bind local services */
159extern struct in6_addr ipv6_bind_addr;
160
161#endif /* ENABLE_IPV6 */
162
163extern const char * minissdpdsocketpath;
164
165/* BOOTID.UPNP.ORG and CONFIGID.UPNP.ORG */
166extern unsigned int upnp_bootid;
167extern unsigned int upnp_configid;
168
169#ifdef RANDOMIZE_URLS
170#define RANDOM_URL_MAX_LEN (16)
171extern char random_url[];
172#endif /* RANDOMIZE_URLS */
173
174#endif /* UPNPGLOBALVARS_H_INCLUDED */
struct lan_addr_list lan_addrs
Definition minissdpd.c:114
unsigned int upnp_configid
Definition minissdpd.c:111
unsigned int upnp_bootid
Definition minissdpd.c:110
unsigned short uint16_t
Definition stdint.h:125
Definition pcplearndscp.h:36
Definition upnppermissions.h:19
const char * ext_if_name
Definition testifacewatcher.c:11
int runtime_flags
Definition testipfrdr.c:12
time_t startup_time
Definition testnftpinhole.c:20
const char * use_ext_ip_addr
Definition testobsdrdr.c:22
const char * queue
Definition testobsdrdr.c:21
const char * tag
Definition testobsdrdr.c:19
const char * anchor_name
Definition testobsdrdr.c:20
char uuidvalue_igd[]
Definition testssdppktgen.c:13
char uuidvalue_wcd[]
Definition testupnpdescgen.c:26
char serialnumber[]
Definition testupnpdescgen.c:27
char presentationurl[]
Definition testupnpdescgen.c:29
char modelnumber[]
Definition testupnpdescgen.c:28
char uuidvalue_wan[]
Definition testupnpdescgen.c:25
unsigned int nextruletoclean_timestamp
Definition upnpglobalvars.c:103
unsigned int num_upnpperm
Definition upnpglobalvars.c:95
unsigned long downstream_bitrate
Definition upnpglobalvars.c:41
const char * minissdpdsocketpath
Definition upnpglobalvars.c:129
struct upnpperm * upnppermlist
Definition upnpglobalvars.c:94
const char * ext_stun_host
Definition upnpglobalvars.c:25
int disable_port_forwarding
Definition upnpglobalvars.c:39
unsigned long upstream_bitrate
Definition upnpglobalvars.c:42
uint16_t ext_stun_port
Definition upnpglobalvars.c:26
const char * pidfilename
Definition upnpglobalvars.c:60
unsigned long int max_lifetime
unsigned long int min_lifetime