--- gvpe/src/connection.h 2003/04/02 03:06:22 1.1 +++ gvpe/src/connection.h 2003/04/13 16:53:36 1.8 @@ -19,13 +19,7 @@ #ifndef VPE_CONNECTION_H__ #define VPE_CONNECTION_H__ -#include // for tos etc. - -#include #include -#include -#include -#include #include "global.h" #include "conf.h" @@ -81,7 +75,7 @@ u8 type; u8 srcdst, src1, dst1; - void set_hdr (ptype type, unsigned int dst); + void set_hdr (ptype type_, unsigned int dst); unsigned int src () const { @@ -104,13 +98,13 @@ // a very simple fifo pkt-queue class pkt_queue { - tap_packet *queue[QUEUEDEPTH]; + net_packet *queue[QUEUEDEPTH]; int i, j; public: - void put (tap_packet *p); - tap_packet *get (); + void put (net_packet *p); + net_packet *get (); pkt_queue (); ~pkt_queue (); @@ -131,36 +125,41 @@ u8 protocol; - pkt_queue queue; + pkt_queue data_queue, vpn_queue; crypto_ctx *octx, *ictx; enum conf_node::connectmode connectmode; u8 prot_minor; // minor number of other side - void reset_dstaddr (); + void reset_si (); + const sockinfo &forward_si (const sockinfo &si) const; void shutdown (); + void connection_established (); void reset_connection (); - void establish_connection_cb (tstamp &ts); time_watcher establish_connection; - void rekey_cb (tstamp &ts); time_watcher rekey; // next rekying (actually current reset + reestablishing) - void keepalive_cb (tstamp &ts); time_watcher keepalive; // next keepalive probe + 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 send_connect_request (int id); void send_auth_request (const sockinfo &si, bool initiate); void send_auth_response (const sockinfo &si, const rsaid &id, const rsachallenge &chg); void send_connect_info (int rid, const sockinfo &rsi, u8 rprotocols); void send_reset (const sockinfo &dsi); void send_ping (const sockinfo &dsi, u8 pong = 0); void send_data_packet (tap_packet *pkt, bool broadcast = false); + void inject_data_packet (tap_packet *pkt, bool broadcast = false); - void connect_request (int id); + void inject_vpn_packet (vpn_packet *pkt, int tos = 0); // for forwarding - void send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos = IPTOS_RELIABILITY); + void send_vpn_packet (vpn_packet *pkt, const sockinfo &si, int tos = 0); void recv_vpn_packet (vpn_packet *pkt, const sockinfo &rsi); void script_node (); - const char *script_node_up (int); - const char *script_node_down (int); + const char *script_node_up (); + const char *script_node_down (); void dump_status ();