--- gvpe/src/vpn.h 2003/10/14 03:22:09 1.9 +++ gvpe/src/vpn.h 2005/03/04 04:52:38 1.19 @@ -1,7 +1,10 @@ /* vpn.h -- header for vpn.C + 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. @@ -12,7 +15,7 @@ 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 */ @@ -26,7 +29,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; @@ -49,11 +52,11 @@ 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; @@ -65,6 +68,15 @@ bool send_icmpv4_packet (vpn_packet *pkt, const sockinfo &si, int tos); #endif +#if ENABLE_DNS + vector dns_sndpq; + sockinfo dns_forwarder; + + void dnsv4_ev (io_watcher &w, short revents); io_watcher dnsv4_ev_watcher; + struct dns_packet *dnsv4_server (struct dns_packet *pkt); + void dnsv4_client (struct dns_packet *pkt); +#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); @@ -81,5 +93,7 @@ const char *script_if_up (); }; +extern vpn network; // THE vpn + #endif