miniupnp/miniupnpd/options.h
Sven Auhagen 0b3f3e4029
NFTables make tables name configurable
Right now the table names are hardcoded and do not integrate with an overall
firewall strategy.
NFTables has restrictions on how packets are evaluated against chains.
For example if multiple forward chains are evaluated with different prioity,
all packets that pass the first one will be reevaluated again in the second chain.
To have an overall firewall concept with miniupnpd it is necessary to use existing
tables and hence to configure them in miniupnpd.

Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
2021-11-27 21:49:21 +01:00

111 lines
3.0 KiB
C

/* $Id: options.h,v 1.32 2020/04/09 18:40:42 nanard Exp $ */
/* vim: tabstop=4 shiftwidth=4 noexpandtab
* MiniUPnP project
* http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
* author: Ryan Wagoner
* (c) 2006-2021 Thomas Bernard
* This software is subject to the conditions detailed
* in the LICENCE file provided within the distribution */
#ifndef OPTIONS_H_INCLUDED
#define OPTIONS_H_INCLUDED
#include "config.h"
#ifndef DISABLE_CONFIG_FILE
/* enum of option available in the miniupnpd.conf */
enum upnpconfigoptions {
UPNP_INVALID = 0,
UPNPEXT_IFNAME = 1, /* ext_ifname */
#ifdef ENABLE_IPV6
UPNPEXT_IFNAME6, /* ext_ifname6 */
#endif
UPNPEXT_IP, /* ext_ip */
UPNPEXT_PERFORM_STUN, /* ext_perform_stun */
UPNPEXT_STUN_HOST, /* ext_stun_host */
UPNPEXT_STUN_PORT, /* ext_stun_port */
UPNPLISTENING_IP, /* listening_ip */
#ifdef ENABLE_IPV6
UPNPIPV6_LISTENING_IP, /* listening address for IPv6 */
UPNPIPV6_DISABLE, /* ipv6_disable */
#endif /* ENABLE_IPV6 */
UPNPPORT, /* "port" / "http_port" */
#ifdef ENABLE_HTTPS
UPNPHTTPSPORT, /* "https_port" */
#endif
UPNPBITRATE_UP, /* "bitrate_up" */
UPNPBITRATE_DOWN, /* "bitrate_down" */
UPNPPRESENTATIONURL, /* presentation_url */
#ifdef ENABLE_MANUFACTURER_INFO_CONFIGURATION
UPNPFRIENDLY_NAME, /* "friendly_name" */
UPNPMANUFACTURER_NAME, /* "manufacturer_name" */
UPNPMANUFACTURER_URL, /* "manufacturer_url" */
UPNPMODEL_NAME, /* "model_name" */
UPNPMODEL_DESCRIPTION, /* "model_description" */
UPNPMODEL_URL, /* "model_url" */
#endif
UPNPNOTIFY_INTERVAL, /* notify_interval */
UPNPSYSTEM_UPTIME, /* "system_uptime" */
UPNPPACKET_LOG, /* "packet_log" */
UPNPUUID, /* uuid */
UPNPSERIAL, /* serial */
UPNPMODEL_NUMBER, /* model_number */
UPNPCLEANTHRESHOLD, /* clean_ruleset_threshold */
UPNPCLEANINTERVAL, /* clean_ruleset_interval */
UPNPENABLENATPMP, /* enable_natpmp */
UPNPPCPMINLIFETIME, /* minimum lifetime for PCP mapping */
UPNPPCPMAXLIFETIME, /* maximum lifetime for PCP mapping */
UPNPPCPALLOWTHIRDPARTY, /* allow third-party requests */
#ifdef USE_NETFILTER
UPNPTABLENAME,
UPNPNATTABLENAME,
UPNPFORWARDCHAIN,
UPNPNATCHAIN,
UPNPNATPOSTCHAIN,
#endif
#ifdef USE_PF
UPNPANCHOR, /* anchor */
UPNPQUEUE, /* queue */
UPNPTAG, /* tag */
#endif
#ifdef PF_ENABLE_FILTER_RULES
UPNPQUICKRULES, /* quickrules */
#endif
UPNPSECUREMODE, /* secure_mode */
#ifdef ENABLE_LEASEFILE
UPNPLEASEFILE, /* lease_file */
#ifdef ENABLE_UPNPPINHOLE
UPNPLEASEFILE6, /* lease_file v6 */
#endif
#endif
UPNPMINISSDPDSOCKET, /* minissdpdsocket */
#ifdef IGD_V2
UPNPFORCEIGDDESCV1,
#endif
UPNPENABLE /* enable_upnp */
};
/* readoptionsfile()
* parse and store the option file values
* returns: 0 success, -1 failure */
int
readoptionsfile(const char * fname, int debug_flag);
/* freeoptions()
* frees memory allocated to option values */
void
freeoptions(void);
struct option
{
enum upnpconfigoptions id;
const char * value;
};
extern struct option * ary_options;
extern unsigned int num_options;
#endif /* DISABLE_CONFIG_FILE */
#endif /* OPTIONS_H_INCLUDED */