--- gvpe/src/vpn.h 2003/04/08 02:00:54 1.7 +++ gvpe/src/vpn.h 2005/03/01 06:27:20 1.15 @@ -1,5 +1,6 @@ /* vpn.h -- header for vpn.C + Copyright (C) 2003-2004 Marc Lehmann This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,8 +20,6 @@ #ifndef VPE_VPN_H__ #define VPE_VPN_H__ -#include - #include "global.h" #include "conf.h" #include "device.h" @@ -28,7 +27,7 @@ struct vpn { - int udpv4_fd, tcpv4_fd, ipv4_fd, icmpv4_fd; + int udpv4_fd, tcpv4_fd, ipv4_fd, icmpv4_fd, dnsv4_fd; int events; @@ -45,16 +44,17 @@ conns_vector conns; connection *find_router (); + connection *find_forwarder (); void reconnect_all (); void shutdown_all (); void tap_ev (io_watcher &w, short revents); io_watcher tap_ev_watcher; + void inject_data_packet (tap_packet *pkt, int dst); void send_connect_request (int id); void recv_vpn_packet (vpn_packet *pkt, const sockinfo &rsi); - bool send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos); #if ENABLE_TCP void tcpv4_ev (io_watcher &w, short revents); io_watcher tcpv4_ev_watcher; @@ -66,6 +66,10 @@ bool send_icmpv4_packet (vpn_packet *pkt, const sockinfo &si, int tos); #endif +#if ENABLE_DNS + void dnsv4_ev (io_watcher &w, short revents); io_watcher dnsv4_ev_watcher; +#endif + void udpv4_ev (io_watcher &w, short revents); io_watcher udpv4_ev_watcher; bool send_udpv4_packet (vpn_packet *pkt, const sockinfo &si, int tos); @@ -82,5 +86,7 @@ const char *script_if_up (); }; +extern vpn network; // THE vpn + #endif