1/* $Id: upnpglobalvars.h,v 1.38 2014/03/10 11:04:53 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 */ 7 8#ifndef UPNPGLOBALVARS_H_INCLUDED 9#define UPNPGLOBALVARS_H_INCLUDED 10 11#include <time.h> 12#include "upnppermissions.h" 13#include "miniupnpdtypes.h" 14#include "config.h" 15 16/* name of the network interface used to acces internet */ 17extern const char * ext_if_name; 18 19/* file to store all leases */ 20#ifdef ENABLE_LEASEFILE 21extern const char * lease_file; 22#endif 23 24/* forced ip address to use for this interface 25 * when NULL, getifaddr() is used */ 26extern const char * use_ext_ip_addr; 27 28/* parameters to return to upnp client when asked */ 29extern unsigned long downstream_bitrate; 30extern unsigned long upstream_bitrate; 31 32/* statup time */ 33extern time_t startup_time; 34 35extern unsigned long int min_lifetime; 36extern unsigned long int max_lifetime; 37 38/* runtime boolean flags */ 39extern 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 47 48#define ENABLEUPNPMASK 0x0020 49 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 63 64#define SETFLAG(mask) runtime_flags |= mask 65#define GETFLAG(mask) (runtime_flags & mask) 66#define CLEARFLAG(mask) runtime_flags &= ~mask 67 68extern const char * pidfilename; 69 70extern char uuidvalue_igd[]; /* uuid of root device (IGD) */ 71extern char uuidvalue_wan[]; /* uuid of WAN Device */ 72extern char uuidvalue_wcd[]; /* uuid of WAN Connection Device */ 73 74#define SERIALNUMBER_MAX_LEN (48) 75extern char serialnumber[]; 76 77#define MODELNUMBER_MAX_LEN (48) 78extern char modelnumber[]; 79 80#define PRESENTATIONURL_MAX_LEN (64) 81extern char presentationurl[]; 82 83#ifdef ENABLE_MANUFACTURER_INFO_CONFIGURATION 84#define FRIENDLY_NAME_MAX_LEN (64) 85extern char friendly_name[]; 86 87#define MANUFACTURER_NAME_MAX_LEN (64) 88extern char manufacturer_name[]; 89 90#define MANUFACTURER_URL_MAX_LEN (64) 91extern char manufacturer_url[]; 92 93#define MODEL_NAME_MAX_LEN (64) 94extern char model_name[]; 95 96#define MODEL_DESCRIPTION_MAX_LEN (64) 97extern char model_description[]; 98 99#define MODEL_URL_MAX_LEN (64) 100extern char model_url[]; 101#endif 102 103/* UPnP permission rules : */ 104extern struct upnpperm * upnppermlist; 105extern unsigned int num_upnpperm; 106 107#ifdef PCP_SADSCP 108extern struct dscp_values* dscp_values_list; 109extern unsigned int num_dscp_values; 110#endif 111 112/* For automatic removal of expired rules (with LeaseDuration) */ 113extern unsigned int nextruletoclean_timestamp; 114 115#ifdef USE_PF 116extern const char * anchor_name; 117/* queue and tag for PF rules */ 118extern const char * queue; 119extern const char * tag; 120#endif 121 122#ifdef USE_NETFILTER 123extern const char * miniupnpd_nat_chain; 124extern const char * miniupnpd_peer_chain; 125extern const char * miniupnpd_forward_chain; 126#ifdef ENABLE_UPNPPINHOLE 127extern const char * miniupnpd_v6_filter_chain; 128#endif 129#endif 130 131#ifdef ENABLE_NFQUEUE 132extern int nfqueue; 133extern int n_nfqix; 134extern unsigned nfqix[]; 135#endif 136 137/* lan addresses to listen to SSDP traffic */ 138extern struct lan_addr_list lan_addrs; 139 140#ifdef ENABLE_IPV6 141/* ipv6 address used for HTTP */ 142extern char ipv6_addr_for_http_with_brackets[64]; 143 144/* address used to bind local services */ 145extern struct in6_addr ipv6_bind_addr; 146 147#endif 148 149extern const char * minissdpdsocketpath; 150 151/* BOOTID.UPNP.ORG and CONFIGID.UPNP.ORG */ 152extern unsigned int upnp_bootid; 153extern unsigned int upnp_configid; 154 155#endif 156 157