… | |
… | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | GNU General Public License for more details. |
15 | GNU General Public License for more details. |
16 | |
16 | |
17 | You should have received a copy of the GNU General Public License |
17 | You should have received a copy of the GNU General Public License |
18 | along with gvpe; if not, write to the Free Software |
18 | along with gvpe; if not, write to the Free Software |
19 | Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 | */ |
20 | */ |
21 | |
21 | |
22 | #ifndef VPE_CONNECTION_H__ |
22 | #ifndef GVPE_CONNECTION_H__ |
23 | #define VPE_CONNECTION_H__ |
23 | #define GVPE_CONNECTION_H__ |
24 | |
24 | |
25 | #include <openssl/hmac.h> |
25 | #include <openssl/hmac.h> |
26 | |
26 | |
27 | #include "global.h" |
27 | #include "global.h" |
28 | #include "conf.h" |
28 | #include "conf.h" |
… | |
… | |
68 | PT_DATA_UNCOMPRESSED, |
68 | PT_DATA_UNCOMPRESSED, |
69 | PT_DATA_COMPRESSED, |
69 | PT_DATA_COMPRESSED, |
70 | PT_PING, PT_PONG, // wasting namespace space? ;) |
70 | PT_PING, PT_PONG, // wasting namespace space? ;) |
71 | PT_AUTH_REQ, // authentification request |
71 | PT_AUTH_REQ, // authentification request |
72 | PT_AUTH_RES, // authentification response |
72 | PT_AUTH_RES, // authentification response |
73 | PT_CONNECT_REQ, // want other host to contact me |
73 | PT_CONNECT_REQ, // want other node to contact me |
74 | PT_CONNECT_INFO, // request connection to some node |
74 | PT_CONNECT_INFO, // request connection to some node |
75 | PT_MAX |
75 | PT_MAX |
76 | }; |
76 | }; |
77 | |
77 | |
78 | u8 type; |
78 | u8 type; |
… | |
… | |
140 | crypto_ctx *octx, *ictx; |
140 | crypto_ctx *octx, *ictx; |
141 | |
141 | |
142 | #if ENABLE_DNS |
142 | #if ENABLE_DNS |
143 | struct dns_connection *dns; |
143 | struct dns_connection *dns; |
144 | |
144 | |
145 | bool send_dnsv4_packet (vpn_packet *pkt, const sockinfo &si, int tos); |
|
|
146 | void dnsv4_reset_connection (); |
145 | void dnsv4_reset_connection (); |
147 | #endif |
146 | #endif |
148 | |
147 | |
149 | enum conf_node::connectmode connectmode; |
148 | enum conf_node::connectmode connectmode; |
150 | u8 prot_minor; // minor number of other side |
149 | u8 prot_minor; // minor number of other side |
… | |
… | |
169 | void send_data_packet (tap_packet *pkt); |
168 | void send_data_packet (tap_packet *pkt); |
170 | |
169 | |
171 | void inject_data_packet (tap_packet *pkt, bool broadcast = false); |
170 | void inject_data_packet (tap_packet *pkt, bool broadcast = false); |
172 | void inject_vpn_packet (vpn_packet *pkt, int tos = 0); // for forwarding |
171 | void inject_vpn_packet (vpn_packet *pkt, int tos = 0); // for forwarding |
173 | |
172 | |
|
|
173 | void recv_vpn_packet (vpn_packet *pkt, const sockinfo &rsi); |
174 | void send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos = 0); |
174 | void send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos = 0); |
175 | void recv_vpn_packet (vpn_packet *pkt, const sockinfo &rsi); |
|
|
176 | |
175 | |
|
|
176 | void script_init_env (const char *ext); |
177 | void script_node (); |
177 | void script_init_connect_env (); |
178 | const char *script_node_up (); |
178 | const char *script_node_up (); |
179 | const char *script_node_down (); |
179 | const char *script_node_down (); |
180 | |
180 | |
181 | void dump_status (); |
181 | void dump_status (); |
182 | |
182 | |