--- gvpe/src/connection.h 2005/03/02 05:49:31 1.16 +++ gvpe/src/connection.h 2007/11/10 05:14:22 1.28 @@ -1,8 +1,10 @@ /* connection.h -- header for connection.C - Copyright (C) 2003-2004 Marc Lehmann + Copyright (C) 2003-2005 Marc Lehmann - This program is free software; you can redistribute it and/or modify + This file is part of GVPE. + + GVPE is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. @@ -13,12 +15,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + along with gvpe; if not, write to the Free Software + Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef VPE_CONNECTION_H__ -#define VPE_CONNECTION_H__ +#ifndef GVPE_CONNECTION_H__ +#define GVPE_CONNECTION_H__ #include @@ -68,8 +70,9 @@ PT_PING, PT_PONG, // wasting namespace space? ;) PT_AUTH_REQ, // authentification request PT_AUTH_RES, // authentification response - PT_CONNECT_REQ, // want other host to contact me + PT_CONNECT_REQ, // want other node to contact me PT_CONNECT_INFO, // request connection to some node + PT_DATA_BRIDGED, // uncompressed packet with foreign mac pot. larger than path mtu PT_MAX }; @@ -115,6 +118,7 @@ { FEATURE_COMPRESSION = 0x01, FEATURE_ROHC = 0x02, + FEATURE_BRIDGING = 0x04, }; struct connection @@ -138,13 +142,9 @@ crypto_ctx *octx, *ictx; #if ENABLE_DNS - sockinfo dns_si; - - struct byte_stream *dns_rcvdq; int dns_rcvseq; - struct byte_stream *dns_snddq; int dns_sndseq; + struct dns_connection *dns; - void dnsv4_cb (time_watcher &w); time_watcher dnsv4_tw; - bool send_dnsv4_packet (vpn_packet *pkt, const sockinfo &si, int tos); + void dnsv4_reset_connection (); #endif enum conf_node::connectmode connectmode; @@ -157,9 +157,9 @@ void connection_established (); void reset_connection (); - void establish_connection_cb (time_watcher &w); time_watcher establish_connection; - void rekey_cb (time_watcher &w); time_watcher rekey; // next rekying (actually current reset + reestablishing) - void keepalive_cb (time_watcher &w); time_watcher keepalive; // next keepalive probe + void establish_connection_cb (ev::timer &w, int revents); ev::timer establish_connection; + void rekey_cb (ev::timer &w, int revents); ev::timer rekey; // next rekying (actually current reset + reestablishing) + void keepalive_cb (ev::timer &w, int revents); ev::timer keepalive; // next keepalive probe void send_connect_request (int id); void send_auth_request (const sockinfo &si, bool initiate); @@ -172,10 +172,11 @@ void inject_data_packet (tap_packet *pkt, bool broadcast = false); void inject_vpn_packet (vpn_packet *pkt, int tos = 0); // for forwarding - void send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos = 0); void recv_vpn_packet (vpn_packet *pkt, const sockinfo &rsi); + void send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos = 0); - void script_node (); + void script_init_env (const char *ext); + void script_init_connect_env (); const char *script_node_up (); const char *script_node_down ();