--- gvpe/src/connection.h 2004/01/17 01:18:36 1.12 +++ gvpe/src/connection.h 2005/03/18 01:53:05 1.22 @@ -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 + along with gvpe; if not, write to the Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef VPE_CONNECTION_H__ -#define VPE_CONNECTION_H__ +#ifndef GVPE_CONNECTION_H__ +#define GVPE_CONNECTION_H__ #include @@ -45,7 +47,7 @@ struct crypto_ctx; -struct hmac_packet:net_packet +struct hmac_packet : net_packet { u8 hmac[HMACLENGTH]; // each and every packet has a hmac field, but that is not (yet) checked everywhere @@ -111,6 +113,12 @@ ~pkt_queue (); }; +enum + { + FEATURE_COMPRESSION = 0x01, + FEATURE_ROHC = 0x02, + }; + struct connection { conf_node *conf; @@ -125,11 +133,18 @@ sliding_window iseqno; u8 protocol; + u8 features; pkt_queue data_queue, vpn_queue; crypto_ctx *octx, *ictx; +#if ENABLE_DNS + struct dns_connection *dns; + + void dnsv4_reset_connection (); +#endif + enum conf_node::connectmode connectmode; u8 prot_minor; // minor number of other side @@ -155,8 +170,8 @@ 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 (); const char *script_node_up (); @@ -164,7 +179,7 @@ void dump_status (); - connection(struct vpn *vpn_); + connection (struct vpn *vpn, conf_node *conf); ~connection (); };