|
OpenVPN
|
#include "syshead.h"#include <minwindef.h>#include <winsock2.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) |
| 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) |
| static WCHAR * | wide_cmd_line (const struct argv *a, struct gc_arena *gc) |
| 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 274 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 879 of file win32.c.
References check_malloc_return(), 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 1067 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().
| 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 1441 of file win32.c.
References status.
Referenced by plugin_in_trusted_dir(), and set_openssl_env_vars().
| char * get_win_sys_path | ( | void | ) |
Definition at line 1108 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 219 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 | ) |
Definition at line 150 of file win32.c.
References CLEAR, security_attributes::sa, and security_attributes::sd.
Referenced by semaphore_open(), tap_allow_nonadmin_access_handle(), and win32_signal_open().
| void init_win32 | ( | void | ) |
Definition at line 107 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 539 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 554 of file win32.c.
Referenced by win32_keyboard_get().
| void net_event_win32_close | ( | struct net_event_win32 * | ne | ) |
Definition at line 374 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 323 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 357 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 339 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 330 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 363 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 845 of file win32.c.
References netcmd_semaphore, and semaphore_close().
Referenced by uninit_win32().
| void netcmd_semaphore_init | ( | void | ) |
Definition at line 839 of file win32.c.
References netcmd_semaphore, and semaphore_open().
Referenced by netcmd_semaphore_lock().
| void netcmd_semaphore_lock | ( | void | ) |
Definition at line 851 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 867 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 994 of file win32.c.
References argv::argv, CLEAR, env_block(), es, gc, gc_free(), gc_new(), buffer::len, 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 185 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 169 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 198 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 1546 of file win32.c.
References get_openvpn_reg_value(), M_ERRNO, M_NONFATAL, M_WARN, and msg.
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 1601 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 259 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 819 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 770 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 746 of file win32.c.
References D_SEMAPHORE, dmsg, semaphore::hand, init_security_attributes_allow_all(), semaphore::locked, M_ERRNO, M_WARN, msg, semaphore::name, and security_attributes::sa.
Referenced by netcmd_semaphore_init().
| void semaphore_release | ( | struct semaphore * | s | ) |
Definition at line 804 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 1422 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 1461 of file win32.c.
References get_openvpn_reg_value(), i, 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 1115 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 1123 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 120 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 1619 of file win32.c.
References M_ERRNO, M_FATAL, M_NONFATAL, and msg.
Referenced by unprotect_user_pass().
Definition at line 940 of file win32.c.
References alloc_buf_gc(), BSTR, buf_printf(), CC_ANY, CC_CRLF, CC_DOUBLE_QUOTE, CC_PRINT, CC_SPACE, check_malloc_return(), gc, gc_malloc(), i, buffer::len, string_class(), string_mod(), and wide_string().
Referenced by openvpn_execve().
Definition at line 1287 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 571 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 676 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 1352 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 619 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 599 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 632 of file win32.c.
References win32_signal::mode, siginfo_static, signal_info::signal_received, 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 452 of file win32.c.
References CLEAR, win32_signal::console_mode_save, win32_signal::console_mode_save_defined, gc, gc_free(), gc_new(), HANDLE_DEFINED, win32_signal::in, init_security_attributes_allow_all(), 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 1502 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 1380 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 418 of file win32.c.
References D_LOW, msg, siginfo_static, signal_info::signal_received, throw_signal(), and win_trigger_event().
Referenced by win32_signal_open().
|
static |
|
static |
Definition at line 392 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 1202 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 1169 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 1152 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 1251 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 723 of file win32.c.
References alloc_buf_gc(), BSTR, buf_printf(), gc, gc_free(), gc_new(), and buffer::len.
Referenced by pre_setup().
| void window_title_restore | ( | const struct window_title * | wt | ) |
Definition at line 714 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 697 of file win32.c.
References window_title::old_window_title, and window_title::saved.
Referenced by pre_setup().
|
static |
Definition at line 57 of file win32.c.
Referenced by win_wfp_block(), and win_wfp_uninit().
| struct semaphore netcmd_semaphore |
Definition at line 94 of file win32.c.
Referenced by netcmd_semaphore_close(), netcmd_semaphore_init(), netcmd_semaphore_lock(), and netcmd_semaphore_release().
|
static |
Definition at line 73 of file win32.c.
Referenced by set_pause_exit_win32(), and uninit_win32().
|
static |
Definition at line 62 of file win32.c.
Referenced by win_wfp_block(), and win_wfp_uninit().
|
static |
Definition at line 63 of file win32.c.
Referenced by win_wfp_block(), and win_wfp_uninit().
| struct win32_signal win32_signal |
|
static |
Definition at line 99 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 68 of file win32.c.
Referenced by init_win32().