OpenVPN
|
Go to the source code of this file.
Data Structures | |
struct | signal_info |
Macros | |
#define | SIG_SOURCE_SOFT 0 |
#define | SIG_SOURCE_HARD 1 |
#define | SIG_SOURCE_CONNECTION_FAILED 2 |
#define | IS_SIG(c) ((c)->sig->signal_received) |
Functions | |
int | parse_signal (const char *signame) |
const char * | signal_name (const int sig, const bool upper) |
const char * | signal_description (const int signum, const char *sigtext) |
void | throw_signal (const int signum) |
void | throw_signal_soft (const int signum, const char *signal_text) |
void | pre_init_signal_catch (void) |
void | post_init_signal_catch (void) |
void | restore_signal_state (void) |
void | print_signal (const struct signal_info *si, const char *title, int msglevel) |
void | print_status (const struct context *c, struct status_output *so) |
void | remap_signal (struct context *c) |
void | signal_restart_status (const struct signal_info *si) |
bool | process_signal (struct context *c) |
void | register_signal (struct context *c, int sig, const char *text) |
void | process_explicit_exit_notification_timer_wakeup (struct context *c) |
static void | get_signal (volatile int *sig) |
static void | halt_non_edge_triggered_signals (void) |
Variables | |
struct signal_info | siginfo_static |
#define IS_SIG | ( | c | ) | ((c)->sig->signal_received) |
Definition at line 50 of file sig.h.
Referenced by ce_management_query_proxy(), ce_management_query_remote(), do_init_crypto_tls(), inherit_context_child(), init_instance(), init_instance_handle_signals(), multi_create_instance(), multi_process_io_udp(), multi_process_post(), multi_tcp_action(), multi_tcp_dispatch(), multi_tcp_process_io(), next_connection_entry(), open_management(), openvpn_main(), process_io(), tunnel_point_to_point(), tunnel_server_tcp(), and tunnel_server_udp().
#define SIG_SOURCE_CONNECTION_FAILED 2 |
Definition at line 37 of file sig.h.
Referenced by print_signal(), and socket_connect().
#define SIG_SOURCE_HARD 1 |
Definition at line 33 of file sig.h.
Referenced by close_context(), do_close_link_socket(), ignore_restart_signals(), print_signal(), throw_signal(), and win32_signal_get().
#define SIG_SOURCE_SOFT 0 |
Definition at line 32 of file sig.h.
Referenced by init_instance(), print_signal(), signal_reset(), and throw_signal_soft().
|
inlinestatic |
Definition at line 89 of file sig.h.
References win32_signal_get().
Referenced by halt_non_edge_triggered_signals(), io_wait_dowork(), man_check_for_signals(), multi_tcp_process_io(), openvpn_connect(), openvpn_getaddrinfo(), recv_line(), recv_socks_reply(), socket_connect(), socket_listen_accept(), socks_handshake(), and socks_username_password_auth().
|
inlinestatic |
Definition at line 95 of file sig.h.
References get_signal(), siginfo_static, signal_info::signal_received, and win32_signal_close().
Referenced by process_explicit_exit_notification_init().
int parse_signal | ( | const char * | signame | ) |
Definition at line 63 of file sig.c.
References SIZE, signame::upper, and signame::value.
Referenced by man_signal().
void post_init_signal_catch | ( | void | ) |
Definition at line 249 of file sig.c.
References SIGHUP, SIGINT, signal_handler(), signal_mode, SIGTERM, SIGUSR1, SIGUSR2, and SM_POST_INIT.
Referenced by init_instance_handle_signals(), and restore_signal_state().
void pre_init_signal_catch | ( | void | ) |
Definition at line 235 of file sig.c.
References SIGHUP, SIGINT, signal_handler(), signal_mode, SIGTERM, SIGUSR1, SIGUSR2, and SM_PRE_INIT.
Referenced by init_instance_handle_signals(), openvpn_main(), and restore_signal_state().
void print_signal | ( | const struct signal_info * | si, |
const char * | title, | ||
int | msglevel | ||
) |
Definition at line 130 of file sig.c.
References ASSERT, msg, SIG_SOURCE_CONNECTION_FAILED, SIG_SOURCE_HARD, SIG_SOURCE_SOFT, SIGHUP, SIGINT, signal_name(), signal_info::signal_received, signal_info::signal_text, SIGTERM, SIGUSR1, and signal_info::source.
Referenced by multi_close_instance_on_signal(), and openvpn_main().
void print_status | ( | const struct context * | c, |
struct status_output * | so | ||
) |
Definition at line 282 of file sig.c.
References context::c1, context::c2, counter_format, gc_free(), gc_new(), context_2::link_read_bytes, context_2::link_read_bytes_auth, context_2::link_write_bytes, status_flush(), status_printf(), status_reset(), tap_win_getinfo(), time_string(), context_2::tun_read_bytes, context_2::tun_write_bytes, context_1::tuntap, and tuntap_defined().
Referenced by check_status_file(), management_callback_status_p2p(), and process_sigusr2().
void process_explicit_exit_notification_timer_wakeup | ( | struct context * | c | ) |
Definition at line 340 of file sig.c.
References ASSERT, context::c2, options::ce, ETT_DEFAULT, event_timeout_clear(), event_timeout_trigger(), connection_entry::explicit_exit_notification, context_2::explicit_exit_notification_interval, context_2::explicit_exit_notification_time_wait, now, OCC_EXIT, context_2::occ_op, context::options, context::sig, signal_info::signal_received, signal_info::signal_text, SIGTERM, and context_2::timeval.
Referenced by process_coarse_timers().
bool process_signal | ( | struct context * | c | ) |
Definition at line 426 of file sig.c.
References ignore_restart_signals(), process_sigterm(), process_sigusr2(), context::sig, SIGINT, signal_info::signal_received, SIGTERM, and SIGUSR2.
Referenced by process_signal_p2p().
void register_signal | ( | struct context * | c, |
int | sig, | ||
const char * | text | ||
) |
Definition at line 447 of file sig.c.
References context::sig, signal_info::signal_received, signal_info::signal_text, and SIGTERM.
Referenced by check_add_routes(), check_inactivity_timeout(), check_scheduled_exit(), check_server_poll_timeout(), check_tls(), check_tls_errors_co(), check_tls_errors_nco(), ignore_restart_signals(), incoming_push_message(), multi_client_generate_tls_keys(), process_incoming_link_part1(), process_outgoing_link(), read_incoming_link(), and read_incoming_tun().
void remap_signal | ( | struct context * | c | ) |
Definition at line 365 of file sig.c.
References context::options, options::remap_sigusr1, context::sig, signal_info::signal_received, and SIGUSR1.
Referenced by init_instance_handle_signals(), multi_close_instance_on_signal(), and process_signal_p2p().
void restore_signal_state | ( | void | ) |
Definition at line 264 of file sig.c.
References post_init_signal_catch(), pre_init_signal_catch(), signal_mode, SM_POST_INIT, and SM_PRE_INIT.
Referenced by possibly_become_daemon().
const char* signal_description | ( | const int | signum, |
const char * | sigtext | ||
) |
const char* signal_name | ( | const int | sig, |
const bool | upper | ||
) |
Definition at line 77 of file sig.c.
References signame::lower, SIZE, signame::upper, and signame::value.
Referenced by ignore_restart_signals(), man_signal(), print_signal(), signal_description(), and signal_restart_status().
void signal_restart_status | ( | const struct signal_info * | si | ) |
Definition at line 184 of file sig.c.
References management_set_state(), OPENVPN_STATE_EXITING, OPENVPN_STATE_RECONNECTING, SIGHUP, SIGINT, signal_name(), signal_info::signal_received, signal_info::signal_text, SIGTERM, and SIGUSR1.
Referenced by openvpn_main().
void throw_signal | ( | const int | signum | ) |
Definition at line 104 of file sig.c.
References SIG_SOURCE_HARD, siginfo_static, signal_info::signal_received, and signal_info::source.
Referenced by man_connect(), man_signal(), multi_process_timeout(), signal_handler(), and win_ctrl_handler().
void throw_signal_soft | ( | const int | signum, |
const char * | signal_text | ||
) |
Definition at line 111 of file sig.c.
References SIG_SOURCE_SOFT, siginfo_static, signal_info::signal_received, signal_info::signal_text, and signal_info::source.
Referenced by apply_pull_filter(), do_preresolve(), man_connect(), man_record_peer_info(), and man_reset_client_socket().
struct signal_info siginfo_static |
Definition at line 46 of file sig.c.
Referenced by halt_non_edge_triggered_signals(), openvpn_main(), throw_signal(), throw_signal_soft(), win32_signal_get(), and win_ctrl_handler().