OpenVPN
|
#include "syshead.h"
#include "multi.h"
#include <inttypes.h>
#include "forward.h"
#include "memdbg.h"
#include "ssl_pkt.h"
Go to the source code of this file.
Functions | |
static void | send_hmac_reset_packet (struct multi_context *m, struct tls_pre_decrypt_state *state, struct tls_auth_standalone *tas, struct session_id *sid, bool request_resend_wkc) |
static bool | do_pre_decrypt_check (struct multi_context *m, struct tls_pre_decrypt_state *state, struct mroute_addr addr) |
struct multi_instance * | multi_get_create_instance_udp (struct multi_context *m, bool *floated) |
Get, and if necessary create, the multi_instance associated with a packet's source address. More... | |
static void | multi_process_outgoing_link (struct multi_context *m, const unsigned int mpp_flags) |
static void | multi_process_io_udp (struct multi_context *m) |
static unsigned int | p2mp_iow_flags (const struct multi_context *m) |
void | tunnel_server_udp (struct context *top) |
Main event loop for OpenVPN in UDP server mode. More... | |
|
static |
Definition at line 67 of file mudp.c.
References ASSERT, BPTR, context_2::buf, buf_advance(), context::c2, calculate_session_id_hmac(), check_session_id_hmac(), CO_FORCE_TLSCRYPTV2_COOKIE, D_MULTI_DEBUG, D_MULTI_MEDIUM, link_socket_actual::dest, EARLY_NEG_MASK, EARLY_NEG_START, crypto_options::flags, context_2::from, gc_free(), gc_new(), options::handshake_window, packet_id_net::id, multi_context::initial_rate_limiter, msg, tls_wrap_ctx::opt, context::options, P_OPCODE_SHIFT, packet_id_read(), packet_opcode_name(), tls_pre_decrypt_state::peer_session_id, print_link_socket_actual(), reflect_filter_rate_limit_check(), send_hmac_reset_packet(), context_2::session_id_hmac, SID_SIZE, context_2::tls_auth_standalone, tls_pre_decrypt_lite(), tls_auth_standalone::tls_wrap, multi_context::top, VERDICT_VALID_ACK_V1, VERDICT_VALID_CONTROL_V1, VERDICT_VALID_RESET_V2, VERDICT_VALID_RESET_V3, and VERDICT_VALID_WKC_V1.
Referenced by multi_get_create_instance_udp().
|
static |
Definition at line 329 of file mudp.c.
References ASSERT, context::c2, DCO_READ, context_2::event_set_status, context_2::fast_io, FILE_CLOSED, IS_SIG, management_io(), MANAGEMENT_READ, MANAGEMENT_WRITE, MPP_CLOSE_ON_SIGNAL, MPP_CONDITIONAL_PRE_SELECT, MPP_PRE_SELECT, multi_process_incoming_dco(), multi_process_incoming_link(), multi_process_incoming_tun(), multi_process_outgoing_link(), multi_process_outgoing_tun(), read_incoming_link(), read_incoming_tun(), SOCKET_READ, SOCKET_WRITE, status, multi_context::top, TUN_READ, and TUN_WRITE.
Referenced by tunnel_server_udp().
|
inlinestatic |
Definition at line 308 of file mudp.c.
References context::c2, multi_context::hmac_reply, multi_context::hmac_reply_dest, buffer::len, msg_set_prefix(), multi_process_outgoing_link_dowork(), multi_process_outgoing_link_pre(), process_outgoing_link(), context_2::to_link, context_2::to_link_addr, and multi_context::top.
Referenced by multi_process_io_udp().
|
inlinestatic |
Definition at line 425 of file mudp.c.
References context::c1, multi_instance::context, multi_context::hmac_reply_dest, IOW_MBUF, IOW_READ, IOW_READ_TUN, IOW_TO_LINK, IOW_TO_TUN, IOW_WAIT_SIGNAL, LINK_OUT, multi_context::mbuf, mbuf_defined(), multi_context::pending, multi_context::top, TUN_OUT, context_1::tuntap, and tuntap_ring_empty().
Referenced by tunnel_server_udp().
|
static |
Definition at line 42 of file mudp.c.
References context_buffers::aux_buf, buf_copy(), buf_reset_len(), context_2::buffers, context::c2, D_MULTI_DEBUG, context_2::from, multi_context::hmac_reply, multi_context::hmac_reply_dest, packet_id_rec::initialized, msg, tls_wrap_ctx::opt, P_CONTROL_HARD_RESET_SERVER_V2, P_OPCODE_SHIFT, crypto_options::packet_id, tls_pre_decrypt_state::peer_session_id, packet_id::rec, reset_packet_id_send(), packet_id::send, tls_reset_standalone(), tls_pre_decrypt_state::tls_wrap_tmp, and multi_context::top.
Referenced by do_pre_decrypt_check().