28#define PUSH_MSG_ERROR 0
29#define PUSH_MSG_REQUEST 1
30#define PUSH_MSG_REPLY 2
31#define PUSH_MSG_REQUEST_DEFERRED 3
32#define PUSH_MSG_AUTH_FAILURE 4
33#define PUSH_MSG_CONTINUATION 5
34#define PUSH_MSG_ALREADY_REPLIED 6
35#define PUSH_MSG_UPDATE 7
37#define push_reply_cmd "PUSH_REPLY"
38#define push_update_cmd "PUSH_UPDATE"
41#define PUSH_OPT_TO_REMOVE (1 << 0)
42#define PUSH_OPT_OPTIONAL (1 << 1)
44#ifdef ENABLE_MANAGEMENT
78 unsigned int *option_types_found,
struct buffer *buf,
82 bool honor_received_options,
unsigned int permission_mask,
83 unsigned int *option_types_found);
120 const char *extra,
unsigned int timeout);
141#ifdef ENABLE_MANAGEMENT
Interface functions to the internal and external multiplexers.
int process_incoming_push_request(struct context *c)
void receive_auth_pending(struct context *c, const struct buffer *buffer)
Parses an AUTH_PENDING message and if in pull mode extends the timeout.
void receive_auth_failed(struct context *c, const struct buffer *buffer)
void send_restart(struct context *c, const char *kill_msg)
void push_option(struct options *o, const char *opt, int msglevel)
void server_pushed_signal(struct context *c, const struct buffer *buffer, const bool restart, const int adv)
void push_reset(struct options *o)
void receive_cr_response(struct context *c, const struct buffer *buffer)
void send_auth_failed(struct context *c, const char *client_reason)
void clone_push_list(struct options *o)
void receive_exit_message(struct context *c)
int send_push_update(struct multi_context *m, const void *target, const char *msg, const push_update_type type, const int push_bundle_size)
A function to send a PUSH_UPDATE control message from server to client(s).
bool management_callback_send_push_update_by_cid(void *arg, unsigned long cid, const char *options)
bool send_push_request(struct context *c)
bool send_auth_pending_messages(struct tls_multi *tls_multi, struct tls_session *session, const char *extra, unsigned int timeout)
Sends the auth pending control messages to a client.
void push_remove_option(struct options *o, const char *p)
bool management_callback_send_push_update_broadcast(void *arg, const char *options)
void incoming_push_message(struct context *c, const struct buffer *buffer)
void push_options(struct options *o, char **p, int msglevel, struct gc_arena *gc)
void remove_iroutes_from_push_route_list(struct options *o)
int process_incoming_push_msg(struct context *c, const struct buffer *buffer, bool honor_received_options, unsigned int permission_mask, unsigned int *option_types_found)
void server_pushed_info(const struct buffer *buffer, const int adv)
int process_incoming_push_update(struct context *c, unsigned int permission_mask, unsigned int *option_types_found, struct buffer *buf, bool msg_sender)
Handles the receiving of a push-update message and applies updates to the specified options.
void send_push_reply_auth_token(struct tls_multi *multi)
Sends a push reply message only containin the auth-token to update the auth-token on the client.
Wrapper structure for dynamically allocated memory.
Contains all state information for one tunnel.
Garbage collection arena used to keep track of dynamically allocated memory.
Main OpenVPN server state structure.
Security parameter state for a single VPN tunnel.
Security parameter state of a single session within a VPN tunnel.