12#ifndef OPENVPN_TUN_BUILDER_BASE_H
13#define OPENVPN_TUN_BUILDER_BASE_H
103 const std::string &gateway,
433 virtual bool tun_builder_dco_available()
444 virtual int tun_builder_dco_enable(
const std::string &dev_name)
459 virtual void tun_builder_dco_new_peer(uint32_t peer_id,
460 uint32_t transport_fd,
475 virtual void tun_builder_dco_set_peer(uint32_t peer_id,
int keepalive_interval,
int keepalive_timeout)
485 virtual void tun_builder_dco_del_peer(uint32_t peer_id)
496 virtual void tun_builder_dco_get_peer(uint32_t peer_id,
bool sync)
506 virtual void tun_builder_dco_new_key(
unsigned int key_slot,
const KoRekey::KeyConfig *kc)
516 virtual void tun_builder_dco_swap_keys(uint32_t peer_id)
526 virtual void tun_builder_dco_del_key(uint32_t peer_id,
unsigned int key_slot)
535 virtual void tun_builder_dco_establish()
TunBuilder methods, loosely based on the Android VpnService.Builder abstraction.
virtual bool tun_builder_set_dns_options(const DnsOptions &dns)
Callback to set DNS related options to VPN interface.
virtual bool tun_builder_add_address(const std::string &address, int prefix_length, const std::string &gateway, bool ipv6, bool net30)
Callback to add a network address to the VPN interface.
virtual bool tun_builder_add_route(const std::string &address, int prefix_length, int metric, bool ipv6)
Callback to add a route to the VPN interface.
virtual ~TunBuilderBase()=default
Virtual destructor for the TunBuilderBase class.
virtual bool tun_builder_set_route_metric_default(int metric)
Optional callback to set default value for route metric.
virtual void tun_builder_establish_lite()
Indicates a reconnection with persisted TUN state.
virtual bool tun_builder_persist()
Determines if the TUN interface can be persisted.
virtual void tun_builder_teardown(bool disconnect)
Indicates that tunnel is being torn down.
virtual bool tun_builder_set_proxy_http(const std::string &host, int port)
Callback to set the HTTP proxy.
virtual bool tun_builder_reroute_gw(bool ipv4, bool ipv6, unsigned int flags)
Callback to reroute the default gateway to the VPN interface.
virtual int tun_builder_establish()
Callback to establish the VPN tunnel.
virtual bool tun_builder_add_wins_server(const std::string &address)
Callback to add a Windows WINS server to the VPN interface.
virtual bool tun_builder_set_layer(int layer)
Optional callback that indicates OSI layer to be used.
virtual std::vector< std::string > tun_builder_get_local_networks(bool ipv6)
Retrieves a list of local networks to exclude from the VPN network.
virtual bool tun_builder_add_proxy_bypass(const std::string &bypass_host)
Callback to add a host which should bypass the proxy.
virtual bool tun_builder_set_allow_family(int af, bool allow)
Indicates whether traffic of a certain address family (AF_INET or AF_INET6) should be blocked or allo...
virtual bool tun_builder_set_proxy_https(const std::string &host, int port)
Set the HTTPS proxy for the TunBuilder session.
virtual bool tun_builder_exclude_route(const std::string &address, int prefix_length, int metric, bool ipv6)
Callback to exclude route from VPN interface.
virtual bool tun_builder_set_allow_local_dns(bool allow)
Optional callback that indicates whether local DNS traffic should be blocked or allowed to prevent DN...
virtual bool tun_builder_set_mtu(int mtu)
Callback to set the MTU of the VPN interface.
virtual bool tun_builder_set_remote_address(const std::string &address, bool ipv6)
Callback to set the address of the remote server.
virtual bool tun_builder_set_proxy_auto_config_url(const std::string &url)
Callback to set the proxy "Auto Config URL".
virtual bool tun_builder_set_session_name(const std::string &name)
Sets the session name for the TunBuilder.
virtual bool tun_builder_new()
Callback to construct a new TunBuilder. This function should be called first.
Support deferred server-side state creation when client connects.
All DNS options set with the –dns or –dhcp-option directive.