|
OpenVPN
|
#include "syshead.h"#include <minwindef.h>#include <winsock2.h>#include <accctrl.h>#include <aclapi.h>#include "buffer.h"#include "error.h"#include "mtu.h"#include "run_command.h"#include "sig.h"#include "win32-util.h"#include "win32.h"#include "openvpn-msg.h"#include "memdbg.h"#include <versionhelpers.h>#include "wfp_block.h"
Go to the source code of this file.
Typedefs | |
| typedef LONG(WINAPI * | RtlGetVersionPtr) (PRTL_OSVERSIONINFOW) |
Enumerations | |
| enum | arch_t { ARCH_X86 , ARCH_AMD64 , ARCH_ARM64 , ARCH_NATIVE , ARCH_UNKNOWN } |
Functions | |
| static void | set_openssl_env_vars (void) |
| Set OpenSSL environment variables to a safe directory. | |
| void | init_win32 (void) |
| void | uninit_win32 (void) |
| void | set_pause_exit_win32 (void) |
| bool | init_security_attributes_allow_all (struct security_attributes *obj) |
| Initializes security attributes with a NULL DACL, allowing unrestricted access to the resulting object. | |
| static bool | init_security_attributes_allow_user (struct security_attributes *obj) |
| Initializes security attributes with a DACL restricted to the current process user. | |
| static void | free_security_attributes (struct security_attributes *obj) |
| Releases resources allocated by init_security_attributes_allow_user(). | |
| void | overlapped_io_init (struct overlapped_io *o, const struct frame *frame, BOOL event_state) |
| void | overlapped_io_close (struct overlapped_io *o) |
| char * | overlapped_io_state_ascii (const struct overlapped_io *o) |
| void | init_net_event_win32 (struct rw_handle *event, long network_events, socket_descriptor_t sd, unsigned int flags) |
| long | reset_net_event_win32 (struct rw_handle *event, socket_descriptor_t sd) |
| void | close_net_event_win32 (struct rw_handle *event, socket_descriptor_t sd, unsigned int flags) |
| void | net_event_win32_init (struct net_event_win32 *ne) |
| void | net_event_win32_start (struct net_event_win32 *ne, long network_events, socket_descriptor_t sd) |
| void | net_event_win32_reset_write (struct net_event_win32 *ne) |
| void | net_event_win32_reset (struct net_event_win32 *ne) |
| void | net_event_win32_stop (struct net_event_win32 *ne) |
| void | net_event_win32_close (struct net_event_win32 *ne) |
| static void | win_trigger_event (struct win32_signal *ws) |
| static bool WINAPI | win_ctrl_handler (DWORD signum) |
| void | win32_signal_clear (struct win32_signal *ws) |
| void | win32_signal_open (struct win32_signal *ws, int force, const char *exit_event_name, bool exit_event_initial_state) |
| static bool | keyboard_input_available (struct win32_signal *ws) |
| static unsigned int | keyboard_ir_to_key (INPUT_RECORD *ir) |
| static unsigned int | win32_keyboard_get (struct win32_signal *ws) |
| void | win32_signal_close (struct win32_signal *ws) |
| bool | win32_service_interrupt (struct win32_signal *ws) |
| int | win32_signal_get (struct win32_signal *ws) |
| void | win32_pause (struct win32_signal *ws) |
| void | window_title_clear (struct window_title *wt) |
| void | window_title_save (struct window_title *wt) |
| void | window_title_restore (const struct window_title *wt) |
| void | window_title_generate (const char *title) |
| void | semaphore_clear (struct semaphore *s) |
| void | semaphore_open (struct semaphore *s, const char *name) |
| bool | semaphore_lock (struct semaphore *s, int timeout_milliseconds) |
| void | semaphore_release (struct semaphore *s) |
| void | semaphore_close (struct semaphore *s) |
| void | netcmd_semaphore_init (void) |
| void | netcmd_semaphore_close (void) |
| void | netcmd_semaphore_lock (void) |
| void | netcmd_semaphore_release (void) |
| static char * | env_block (const struct env_set *es) |
| int | openvpn_execve (const struct argv *a, const struct env_set *es, const unsigned int flags) |
| void | fork_to_self (const char *cmdline) |
| char * | get_win_sys_path (void) |
| void | set_win_sys_path (const char *newpath, struct env_set *es) |
| void | set_win_sys_path_via_env (struct env_set *es) |
| static bool | win_get_exe_path (PWCHAR path, DWORD size) |
| static void | win_wfp_msg_handler (DWORD err, const char *msg) |
| static bool | win_wfp_block_service (bool add, bool dns_only, int index, const HANDLE pipe) |
| bool | win_wfp_block (const NET_IFINDEX index, const HANDLE msg_channel, BOOL dns_only) |
| bool | win_wfp_uninit (const NET_IFINDEX index, const HANDLE msg_channel) |
| static void | win32_get_arch (arch_t *process_arch, arch_t *host_arch) |
| static void | win32_print_arch (arch_t arch, struct buffer *out) |
| const char * | win32_version_string (struct gc_arena *gc) |
| Get Windows version string with architecture info. | |
| bool | send_msg_iservice (HANDLE pipe, const void *data, DWORD size, ack_message_t *ack, const char *context) |
Send the size bytes in buffer data to the interactive service pipe and read the result in ack. | |
| bool | get_openvpn_reg_value (const WCHAR *key, WCHAR *value, DWORD size) |
| Fetches a registry value for OpenVPN registry key. | |
| void | win32_sleep (const int n) |
| bool | plugin_in_trusted_dir (const WCHAR *plugin_path) |
| Checks if a plugin is located in a trusted directory. | |
| bool | protect_buffer_win32 (char *buf, DWORD len) |
| Encrypt a region of memory using CryptProtectMemory() with access restricted to the current process. | |
| bool | unprotect_buffer_win32 (char *buf, DWORD len) |
| Decrypt a previously encrypted region of memory using CryptUnProtectMemory() with access restricted to the current process. | |
Variables | |
| static HANDLE | m_hEngineHandle = NULL |
| static int | tap_metric_v4 = -1 |
| static int | tap_metric_v6 = -1 |
| static struct WSAData | wsa_state |
| static bool | pause_exit_enabled = false |
| struct win32_signal | win32_signal |
| struct window_title | window_title |
| struct semaphore | netcmd_semaphore |
| static char * | win_sys_path = NULL |
| typedef LONG(WINAPI * RtlGetVersionPtr) (PRTL_OSVERSIONINFOW) |
| enum arch_t |
| void close_net_event_win32 | ( | struct rw_handle * | event, |
| socket_descriptor_t | sd, | ||
| unsigned int | flags | ||
| ) |
Definition at line 370 of file win32.c.
References M_ERRNO, M_WARN, msg, NE32_PERSIST_EVENT, rw_handle::read, socket_defined(), and rw_handle::write.
Referenced by link_socket_close(), net_event_win32_close(), and net_event_win32_stop().
|
static |
Definition at line 977 of file win32.c.
References check_malloc_return(), checked_snprintf(), env_allowed(), es, get_win_sys_path(), env_set::list, M_INFO, M_WARN, msg, env_item::next, and env_item::string.
Referenced by openvpn_execve().
| void fork_to_self | ( | const char * | cmdline | ) |
Definition at line 1114 of file win32.c.
References CLEAR, M_ERRNO, M_WARN, msg, status, and string_alloc().
Referenced by fork_dhcp_action(), and fork_register_dns_action().
|
static |
Releases resources allocated by init_security_attributes_allow_user().
| obj | Security attributes structure to release. |
Definition at line 255 of file win32.c.
References security_attributes::dacl.
Referenced by semaphore_open(), and win32_signal_open().
| bool get_openvpn_reg_value | ( | const WCHAR * | key, |
| WCHAR * | value, | ||
| DWORD | size | ||
| ) |
Fetches a registry value for OpenVPN registry key.
| key | Registry value name to fetch. |
| value | Buffer to store the fetched string value. |
| size | Size of value buffer in bytes. |
true if successful, false otherwise. Definition at line 1488 of file win32.c.
References PACKAGE_NAME, and status.
Referenced by plugin_in_trusted_dir(), and set_openssl_env_vars().
| char * get_win_sys_path | ( | void | ) |
Definition at line 1155 of file win32.c.
References ASSERT, and win_sys_path.
Referenced by add_route(), delete_route(), do_dns_domain_pwsh(), do_ifconfig_ipv6(), env_block(), HandleEnableDHCPMessage(), ipconfig_register_dns(), netsh_delete_address_dns(), netsh_enable_dhcp(), netsh_ifconfig(), netsh_ifconfig_options(), netsh_set_dns6_servers(), netsh_wins_cmd(), and RegisterDNS().
| void init_net_event_win32 | ( | struct rw_handle * | event, |
| long | network_events, | ||
| socket_descriptor_t | sd, | ||
| unsigned int | flags | ||
| ) |
Definition at line 315 of file win32.c.
References M_ERR, M_ERRNO, M_FATAL, msg, NE32_PERSIST_EVENT, NE32_WRITE_EVENT, rw_handle::read, and rw_handle::write.
Referenced by net_event_win32_start(), and socket_listen_event_handle().
| bool init_security_attributes_allow_all | ( | struct security_attributes * | obj | ) |
Initializes security attributes with a NULL DACL, allowing unrestricted access to the resulting object.
| obj | Security attributes structure to initialize. |
Definition at line 159 of file win32.c.
References CLEAR, security_attributes::sa, and security_attributes::sd.
Referenced by tap_allow_nonadmin_access_handle().
|
static |
Initializes security attributes with a DACL restricted to the current process user.
The resulting DACL grants GENERIC_ALL access to the calling user only, so the created object cannot be opened, signaled or otherwise accessed by other users on the system. The allocated DACL must be released with free_security_attributes() once the security attributes are no longer needed.
| obj | Security attributes structure to initialize. |
Definition at line 191 of file win32.c.
References CLEAR, security_attributes::dacl, security_attributes::sa, and security_attributes::sd.
Referenced by semaphore_open(), and win32_signal_open().
| void init_win32 | ( | void | ) |
Definition at line 109 of file win32.c.
References M_ERR, msg, set_openssl_env_vars(), win32_signal_clear(), window_title_clear(), and wsa_state.
Referenced by init_static().
|
static |
Definition at line 636 of file win32.c.
References ASSERT, HANDLE_DEFINED, win32_signal::in, win32_signal::mode, rw_handle::read, and WSO_MODE_CONSOLE.
Referenced by win32_keyboard_get().
|
static |
Definition at line 651 of file win32.c.
Referenced by win32_keyboard_get().
| void net_event_win32_close | ( | struct net_event_win32 * | ne | ) |
Definition at line 470 of file win32.c.
References close_net_event_win32(), net_event_win32::handle, net_event_win32_defined(), net_event_win32_init(), and net_event_win32::sd.
Referenced by man_connection_close().
| void net_event_win32_init | ( | struct net_event_win32 * | ne | ) |
Definition at line 419 of file win32.c.
References CLEAR, net_event_win32::sd, and SOCKET_UNDEFINED.
Referenced by man_connection_init(), and net_event_win32_close().
| void net_event_win32_reset | ( | struct net_event_win32 * | ne | ) |
Definition at line 453 of file win32.c.
References net_event_win32::event_mask, net_event_win32::handle, reset_net_event_win32(), and net_event_win32::sd.
Referenced by management_io().
| void net_event_win32_reset_write | ( | struct net_event_win32 * | ne | ) |
Definition at line 435 of file win32.c.
References net_event_win32::event_mask, net_event_win32::handle, M_ERRNO, M_WARN, msg, status, and rw_handle::write.
Referenced by management_socket_set().
| void net_event_win32_start | ( | struct net_event_win32 * | ne, |
| long | network_events, | ||
| socket_descriptor_t | sd | ||
| ) |
Definition at line 426 of file win32.c.
References ASSERT, net_event_win32::event_mask, net_event_win32::handle, init_net_event_win32(), NE32_PERSIST_EVENT, NE32_WRITE_EVENT, net_event_win32::sd, and socket_defined().
Referenced by man_start_ne32().
| void net_event_win32_stop | ( | struct net_event_win32 * | ne | ) |
Definition at line 459 of file win32.c.
References close_net_event_win32(), net_event_win32::event_mask, net_event_win32::handle, NE32_PERSIST_EVENT, net_event_win32_defined(), net_event_win32::sd, and SOCKET_UNDEFINED.
Referenced by man_stop_ne32().
| void netcmd_semaphore_close | ( | void | ) |
Definition at line 943 of file win32.c.
References netcmd_semaphore, and semaphore_close().
Referenced by uninit_win32().
| void netcmd_semaphore_init | ( | void | ) |
Definition at line 937 of file win32.c.
References netcmd_semaphore, PACKAGE, and semaphore_open().
Referenced by netcmd_semaphore_lock().
| void netcmd_semaphore_lock | ( | void | ) |
Definition at line 949 of file win32.c.
References semaphore::hand, M_FATAL, msg, netcmd_semaphore, netcmd_semaphore_init(), and semaphore_lock().
Referenced by add_route(), delete_route(), exec_command(), and ipconfig_register_dns().
| void netcmd_semaphore_release | ( | void | ) |
Definition at line 965 of file win32.c.
References netcmd_semaphore, semaphore_close(), and semaphore_release().
Referenced by add_route(), delete_route(), exec_command(), and ipconfig_register_dns().
Definition at line 1041 of file win32.c.
References argv::argv, CLEAR, env_block(), es, gc, gc_free(), gc_new(), M_ERRNO, M_WARN, msg, openvpn_execve_allowed(), OPENVPN_EXECVE_ERROR, OPENVPN_EXECVE_NOT_ALLOWED, script_security(), SCRIPT_SECURITY_WARNING, SSEC_SCRIPTS, wide_cmd_line(), and wide_string().
Referenced by openvpn_execve_check().
| void overlapped_io_close | ( | struct overlapped_io * | o | ) |
Definition at line 281 of file win32.c.
References overlapped_io::buf_init, free_buf(), M_ERRNO, M_WARN, msg, and overlapped_io::overlapped.
Referenced by close_tun_handle(), and link_socket_close().
| void overlapped_io_init | ( | struct overlapped_io * | o, |
| const struct frame * | frame, | ||
| BOOL | event_state | ||
| ) |
Definition at line 265 of file win32.c.
References alloc_buf_sock_tun(), overlapped_io::buf_init, CLEAR, M_ERR, msg, and overlapped_io::overlapped.
Referenced by init_tun_post(), and socket_frame_init().
| char * overlapped_io_state_ascii | ( | const struct overlapped_io * | o | ) |
Definition at line 294 of file win32.c.
References overlapped_io::iostate, IOSTATE_IMMEDIATE_RETURN, IOSTATE_INITIAL, and IOSTATE_QUEUED.
Referenced by socket_stat(), and tun_stat().
| bool plugin_in_trusted_dir | ( | const WCHAR * | plugin_path | ) |
Checks if a plugin is located in a trusted directory.
Verifies the plugin's path against a trusted directory, which is:
UNC paths are explicitly disallowed.
| plugin_path | Normalized path to the plugin. |
true if the plugin is in a trusted directory and not a UNC path; false otherwise. Definition at line 1593 of file win32.c.
References get_openvpn_reg_value(), M_ERRNO, M_NONFATAL, M_WARN, msg, and win_path_in_dir().
Referenced by plugin_init_item().
| bool protect_buffer_win32 | ( | char * | buf, |
| DWORD | len | ||
| ) |
Encrypt a region of memory using CryptProtectMemory() with access restricted to the current process.
Definition at line 1647 of file win32.c.
References M_ERRNO, M_NONFATAL, and msg.
Referenced by protect_user_pass().
| long reset_net_event_win32 | ( | struct rw_handle * | event, |
| socket_descriptor_t | sd | ||
| ) |
Definition at line 355 of file win32.c.
References M_ERRNO, M_FATAL, msg, and rw_handle::read.
Referenced by net_event_win32_reset(), and socket_reset_listen_persistent().
| void semaphore_clear | ( | struct semaphore * | s | ) |
| void semaphore_close | ( | struct semaphore * | s | ) |
Definition at line 917 of file win32.c.
References D_SEMAPHORE, dmsg, semaphore::hand, semaphore::locked, semaphore::name, and semaphore_release().
Referenced by netcmd_semaphore_close(), and netcmd_semaphore_release().
| bool semaphore_lock | ( | struct semaphore * | s, |
| int | timeout_milliseconds | ||
| ) |
Definition at line 868 of file win32.c.
References ASSERT, D_SEMAPHORE, D_SEMAPHORE_LOW, dmsg, semaphore::hand, semaphore::locked, M_ERR, msg, semaphore::name, and status.
Referenced by netcmd_semaphore_lock().
| void semaphore_open | ( | struct semaphore * | s, |
| const char * | name | ||
| ) |
Definition at line 843 of file win32.c.
References D_SEMAPHORE, dmsg, free_security_attributes(), semaphore::hand, init_security_attributes_allow_user(), semaphore::locked, M_ERR, msg, semaphore::name, and security_attributes::sa.
Referenced by netcmd_semaphore_init().
| void semaphore_release | ( | struct semaphore * | s | ) |
Definition at line 902 of file win32.c.
References ASSERT, D_SEMAPHORE, dmsg, semaphore::hand, semaphore::locked, M_ERRNO, M_WARN, msg, and semaphore::name.
Referenced by netcmd_semaphore_release(), and semaphore_close().
| bool send_msg_iservice | ( | HANDLE | pipe, |
| const void * | data, | ||
| DWORD | size, | ||
| ack_message_t * | ack, | ||
| const char * | context | ||
| ) |
Send the size bytes in buffer data to the interactive service pipe and read the result in ack.
The string in context is used to prefix error messages.
Definition at line 1469 of file win32.c.
References gc, gc_free(), gc_new(), M_WARN, msg, and strerror_win32().
Referenced by do_address_service(), do_create_adapter_service(), do_dns_domain_service(), do_dns_service(), do_route_service(), do_set_mtu_service(), do_wins_service(), register_dns_service(), run_up_down_service(), service_enable_dhcp(), tuntap_set_ip_addr(), and win_wfp_block_service().
|
static |
Set OpenSSL environment variables to a safe directory.
Definition at line 1508 of file win32.c.
References get_openvpn_reg_value(), and SIZE.
Referenced by init_win32().
| void set_pause_exit_win32 | ( | void | ) |
| void set_win_sys_path | ( | const char * | newpath, |
| struct env_set * | es | ||
| ) |
Definition at line 1162 of file win32.c.
References es, setenv_str(), string_alloc(), SYS_PATH_ENV_VAR_NAME, and win_sys_path.
Referenced by add_option(), and set_win_sys_path_via_env().
| void set_win_sys_path_via_env | ( | struct env_set * | es | ) |
Definition at line 1170 of file win32.c.
References es, M_ERR, M_FATAL, msg, set_win_sys_path(), status, and SYS_PATH_ENV_VAR_NAME.
Referenced by openvpn_main().
| void uninit_win32 | ( | void | ) |
Definition at line 122 of file win32.c.
References win32_signal::mode, netcmd_semaphore_close(), pause_exit_enabled, win32_pause(), win32_signal_close(), win32_signal_open(), win_sys_path, window_title_restore(), WSO_FORCE_CONSOLE, and WSO_MODE_UNDEF.
Referenced by openvpn_exit().
| bool unprotect_buffer_win32 | ( | char * | buf, |
| DWORD | len | ||
| ) |
Decrypt a previously encrypted region of memory using CryptUnProtectMemory() with access restricted to the current process.
Definition at line 1665 of file win32.c.
References M_ERRNO, M_FATAL, M_NONFATAL, and msg.
Referenced by unprotect_user_pass().
Definition at line 1334 of file win32.c.
References ARCH_AMD64, ARCH_ARM64, ARCH_NATIVE, ARCH_UNKNOWN, and ARCH_X86.
Referenced by win32_version_string().
|
static |
Definition at line 668 of file win32.c.
References ASSERT, HANDLE_DEFINED, win32_signal::in, keyboard_input_available(), keyboard_ir_to_key(), win32_signal::mode, rw_handle::read, and WSO_MODE_CONSOLE.
Referenced by win32_pause(), and win32_signal_get().
| void win32_pause | ( | struct win32_signal * | ws | ) |
Definition at line 773 of file win32.c.
References HANDLE_DEFINED, win32_signal::in, M_INFO, M_NOPREFIX, win32_signal::mode, msg, rw_handle::read, win32_keyboard_get(), and WSO_MODE_CONSOLE.
Referenced by uninit_win32().
Definition at line 1399 of file win32.c.
References ARCH_AMD64, ARCH_ARM64, ARCH_UNKNOWN, ARCH_X86, and buf_printf().
Referenced by win32_version_string().
| bool win32_service_interrupt | ( | struct win32_signal * | ws | ) |
Definition at line 716 of file win32.c.
References HANDLE_DEFINED, win32_signal::in, win32_signal::mode, rw_handle::read, and WSO_MODE_SERVICE.
Referenced by get_console_input_win32(), and win32_signal_get().
| void win32_signal_clear | ( | struct win32_signal * | ws | ) |
| void win32_signal_close | ( | struct win32_signal * | ws | ) |
Definition at line 696 of file win32.c.
References CLEAR, win32_signal::console_mode_save, win32_signal::console_mode_save_defined, HANDLE_DEFINED, win32_signal::in, M_ERR, win32_signal::mode, msg, rw_handle::read, and WSO_MODE_SERVICE.
Referenced by halt_non_edge_triggered_signals(), and uninit_win32().
| int win32_signal_get | ( | struct win32_signal * | ws | ) |
Definition at line 729 of file win32.c.
References win32_signal::mode, SIGHUP, siginfo_static, signal_info::signal_received, SIGTERM, SIGUSR1, SIGUSR2, throw_signal(), win32_keyboard_get(), win32_service_interrupt(), WSO_MODE_CONSOLE, and WSO_MODE_SERVICE.
Referenced by get_signal(), and win32_sleep().
| void win32_signal_open | ( | struct win32_signal * | ws, |
| int | force, | ||
| const char * | exit_event_name, | ||
| bool | exit_event_initial_state | ||
| ) |
Definition at line 548 of file win32.c.
References CLEAR, win32_signal::console_mode_save, win32_signal::console_mode_save_defined, free_security_attributes(), gc, gc_free(), gc_new(), HANDLE_DEFINED, win32_signal::in, init_security_attributes_allow_user(), M_ERR, M_ERRNO, M_FATAL, M_WARN, win32_signal::mode, msg, rw_handle::read, security_attributes::sa, wide_string(), win_ctrl_handler(), rw_handle::write, WSO_FORCE_CONSOLE, WSO_FORCE_SERVICE, WSO_MODE_CONSOLE, WSO_MODE_SERVICE, WSO_MODE_UNDEF, and WSO_NOFORCE.
Referenced by pre_setup(), and uninit_win32().
| void win32_sleep | ( | const int | n | ) |
Definition at line 1549 of file win32.c.
References HANDLE_DEFINED, win32_signal::in, now, rw_handle::read, status, update_time(), and win32_signal_get().
Referenced by management_sleep().
| const char * win32_version_string | ( | struct gc_arena * | gc | ) |
Get Windows version string with architecture info.
| gc | gc arena to allocate string. |
Definition at line 1427 of file win32.c.
References alloc_buf_gc(), ARCH_NATIVE, buf_printf(), buffer::data, gc, buffer::len, win32_get_arch(), and win32_print_arch().
Referenced by push_peer_info(), and show_windows_version().
|
static |
Definition at line 514 of file win32.c.
References D_LOW, msg, siginfo_static, signal_info::signal_received, SIGTERM, throw_signal(), and win_trigger_event().
Referenced by win32_signal_open().
|
static |
|
static |
Definition at line 488 of file win32.c.
References CLEAR, HANDLE_DEFINED, win32_signal::in, M_ERRNO, M_WARN, win32_signal::mode, msg, rw_handle::read, and WSO_MODE_SERVICE.
Referenced by win_ctrl_handler().
| bool win_wfp_block | ( | const NET_IFINDEX | index, |
| const HANDLE | msg_channel, | ||
| BOOL | dns_only | ||
| ) |
Definition at line 1249 of file win32.c.
References add_wfp_block_filters(), D_LOW, dmsg, get_interface_metric(), m_hEngineHandle, set_interface_metric(), status, tap_metric_v4, tap_metric_v6, WFP_BLOCK_IFACE_METRIC, win_get_exe_path(), win_wfp_block_service(), and win_wfp_msg_handler().
Referenced by add_wfp_block().
|
static |
Definition at line 1216 of file win32.c.
References ack_message_t::error_number, gc, gc_free(), gc_new(), wfp_block_message_t::header, wfp_block_message_t::iface, interface_t::index, M_INFO, M_WARN, msg, msg_add_wfp_block, msg_del_wfp_block, send_msg_iservice(), strerror_win32(), wfp_block_dns, and wfp_block_local.
Referenced by win_wfp_block(), and win_wfp_uninit().
|
static |
Definition at line 1199 of file win32.c.
References gc, gc_free(), gc_new(), M_INFO, M_WARN, msg, and strerror_win32().
Referenced by win_wfp_block().
| bool win_wfp_uninit | ( | const NET_IFINDEX | index, |
| const HANDLE | msg_channel | ||
| ) |
Definition at line 1298 of file win32.c.
References D_LOW, delete_wfp_block_filters(), dmsg, m_hEngineHandle, msg, set_interface_metric(), tap_metric_v4, tap_metric_v6, and win_wfp_block_service().
Referenced by del_wfp_block().
| void window_title_clear | ( | struct window_title * | wt | ) |
| void window_title_generate | ( | const char * | title | ) |
Definition at line 820 of file win32.c.
References alloc_buf_gc(), BSTR, buf_printf(), gc, gc_free(), gc_new(), buffer::len, PACKAGE_NAME, and PACKAGE_VERSION.
Referenced by pre_setup().
| void window_title_restore | ( | const struct window_title * | wt | ) |
Definition at line 811 of file win32.c.
References window_title::old_window_title, and window_title::saved.
Referenced by uninit_win32().
| void window_title_save | ( | struct window_title * | wt | ) |
Definition at line 794 of file win32.c.
References window_title::old_window_title, and window_title::saved.
Referenced by pre_setup().
|
static |
Definition at line 59 of file win32.c.
Referenced by win_wfp_block(), and win_wfp_uninit().
| struct semaphore netcmd_semaphore |
Definition at line 96 of file win32.c.
Referenced by netcmd_semaphore_close(), netcmd_semaphore_init(), netcmd_semaphore_lock(), and netcmd_semaphore_release().
|
static |
Definition at line 75 of file win32.c.
Referenced by set_pause_exit_win32(), and uninit_win32().
|
static |
Definition at line 64 of file win32.c.
Referenced by win_wfp_block(), and win_wfp_uninit().
|
static |
Definition at line 65 of file win32.c.
Referenced by win_wfp_block(), and win_wfp_uninit().
| struct win32_signal win32_signal |
|
static |
Definition at line 101 of file win32.c.
Referenced by get_win_sys_path(), set_win_sys_path(), and uninit_win32().
| struct window_title window_title |
|
static |
Definition at line 70 of file win32.c.
Referenced by init_win32().