OpenVPN
block_dns.h
Go to the documentation of this file.
1 /*
2  * OpenVPN -- An application to securely tunnel IP networks
3  * over a single TCP/UDP port, with support for SSL/TLS-based
4  * session authentication and key exchange,
5  * packet encryption, packet authentication, and
6  * packet compression.
7  *
8  * Copyright (C) 2016-2023 Selva Nair <selva.nair@gmail.com>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License version 2
12  * as published by the Free Software Foundation.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write to the Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22  */
23 
24 #ifdef _WIN32
25 
26 #ifndef OPENVPN_BLOCK_DNS_H
27 #define OPENVPN_BLOCK_DNS_H
28 
29 /* Any value less than 5 should work fine. 3 is chosen without any real reason. */
30 #define BLOCK_DNS_IFACE_METRIC 3
31 
32 typedef void (*block_dns_msg_handler_t) (DWORD err, const char *msg);
33 
34 DWORD
35 delete_block_dns_filters(HANDLE engine);
36 
37 DWORD
38 add_block_dns_filters(HANDLE *engine, int iface_index, const WCHAR *exe_path,
39  block_dns_msg_handler_t msg_handler_callback);
40 
51 int
52 get_interface_metric(const NET_IFINDEX index, const ADDRESS_FAMILY family, int *is_auto);
53 
64 DWORD
65 set_interface_metric(const NET_IFINDEX index, const ADDRESS_FAMILY family,
66  const ULONG metric);
67 
68 #endif /* ifndef OPENVPN_BLOCK_DNS_H */
69 #endif /* ifdef _WIN32 */
set_interface_metric
DWORD set_interface_metric(const NET_IFINDEX index, const ADDRESS_FAMILY family, const ULONG metric)
Sets interface metric value for specified interface index.
Definition: block_dns.c:389
get_interface_metric
int get_interface_metric(const NET_IFINDEX index, const ADDRESS_FAMILY family, int *is_auto)
Return interface metric value for the specified interface index.
Definition: block_dns.c:350
add_block_dns_filters
DWORD add_block_dns_filters(HANDLE *engine, int iface_index, const WCHAR *exe_path, block_dns_msg_handler_t msg_handler_callback)
Definition: block_dns.c:174
delete_block_dns_filters
DWORD delete_block_dns_filters(HANDLE engine)
Definition: block_dns.c:325
block_dns_msg_handler_t
void(* block_dns_msg_handler_t)(DWORD err, const char *msg)
Definition: block_dns.h:32
msg
#define msg(flags,...)
Definition: error.h:150