OpenVPN
push.h
Go to the documentation of this file.
1 /*
2  * OpenVPN -- An application to securely tunnel IP networks
3  * over a single TCP/UDP port, with support for SSL/TLS-based
4  * session authentication and key exchange,
5  * packet encryption, packet authentication, and
6  * packet compression.
7  *
8  * Copyright (C) 2002-2018 OpenVPN Inc <sales@openvpn.net>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License version 2
12  * as published by the Free Software Foundation.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write to the Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22  */
23 
24 #ifndef PUSH_H
25 #define PUSH_H
26 
27 #if P2MP
28 
29 #include "forward.h"
30 
31 #define PUSH_MSG_ERROR 0
32 #define PUSH_MSG_REQUEST 1
33 #define PUSH_MSG_REPLY 2
34 #define PUSH_MSG_REQUEST_DEFERRED 3
35 #define PUSH_MSG_AUTH_FAILURE 4
36 #define PUSH_MSG_CONTINUATION 5
37 #define PUSH_MSG_ALREADY_REPLIED 6
38 
40 
42  const struct buffer *buffer,
43  bool honor_received_options,
44  unsigned int permission_mask,
45  unsigned int *option_types_found);
46 
47 bool send_push_request(struct context *c);
48 
49 void receive_auth_failed(struct context *c, const struct buffer *buffer);
50 
51 void server_pushed_signal(struct context *c, const struct buffer *buffer, const bool restart, const int adv);
52 
53 void incoming_push_message(struct context *c, const struct buffer *buffer);
54 
55 #if P2MP_SERVER
56 void clone_push_list(struct options *o);
57 
58 void push_option(struct options *o, const char *opt, int msglevel);
59 
60 void push_options(struct options *o, char **p, int msglevel, struct gc_arena *gc);
61 
62 void push_reset(struct options *o);
63 
64 void push_remove_option(struct options *o, const char *p);
65 
67 
68 void send_auth_failed(struct context *c, const char *client_reason);
69 
70 void send_restart(struct context *c, const char *kill_msg);
71 
72 #endif
73 #endif /* if P2MP */
74 #endif /* ifndef PUSH_H */
void push_remove_option(struct options *o, const char *p)
Definition: push.c:615
void server_pushed_signal(struct context *c, const struct buffer *buffer, const bool restart, const int adv)
Definition: push.c:120
Contains all state information for one tunnel.
Definition: openvpn.h:500
void receive_auth_failed(struct context *c, const struct buffer *buffer)
Definition: push.c:51
void remove_iroutes_from_push_route_list(struct options *o)
Definition: push.c:798
void send_auth_failed(struct context *c, const char *client_reason)
Definition: push.c:209
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)
Definition: push.c:723
Interface functions to the internal and external multiplexers.
int process_incoming_push_request(struct context *c)
Definition: push.c:655
bool send_push_request(struct context *c)
Definition: push.c:310
void push_options(struct options *o, char **p, int msglevel, struct gc_arena *gc)
Definition: push.c:583
Wrapper structure for dynamically allocated memory.
Definition: buffer.h:60
void push_option(struct options *o, const char *opt, int msglevel)
Definition: push.c:561
void incoming_push_message(struct context *c, const struct buffer *buffer)
Definition: push.c:253
Garbage collection arena used to keep track of dynamically allocated memory.
Definition: buffer.h:116
void clone_push_list(struct options *o)
Definition: push.c:567
void push_reset(struct options *o)
Definition: push.c:609
void send_restart(struct context *c, const char *kill_msg)
Definition: push.c:240