X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol.h;h=7e0e898850ca29c7f0b1f642e7b645bacbbcf31a;hp=3021e2f79da53d1063209afbed6cd61b5b502fa2;hb=74157d3f4501f4d1ec913a986b7167d2b847e41e;hpb=1243156a5e03a666b36bc4400f1402243a85c9a7 diff --git a/src/protocol.h b/src/protocol.h index 3021e2f7..7e0e8988 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -1,6 +1,6 @@ /* protocol.h -- header for protocol.c - Copyright (C) 1999 Ivo Timmermans + Copyright (C) 1999,2000 Ivo Timmermans 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 @@ -15,6 +15,8 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. + + $Id: protocol.h,v 1.5.4.5 2000/08/07 16:27:29 guus Exp $ */ #ifndef __TINC_PROTOCOL_H__ @@ -27,6 +29,9 @@ enum { PROT_NOT_IN_USE, PROT_TOO_OLD = 2, PROT_3, + PROT_4, + PROT_ECHELON, + PROT_6, PROT_CURRENT, /* protocol currently in use */ }; @@ -54,71 +59,24 @@ enum { CALCULATE = 100, /* calculate the following numer^privkey and send me the result */ CALC_RES, /* result of the above */ ALMOST_KEY, /* this number^privkey is the shared key */ + PACKET = 110, /* TCP tunneled network packet */ REQ_KEY = 160, /* request public key */ ANS_KEY, /* answer to such request */ KEY_CHANGED, /* public key has changed */ }; -typedef struct add_host_t { - unsigned char type; - ip_t real_ip; - ip_t vpn_ip; - ip_t vpn_mask; - unsigned short portnr; -} add_host_t; - -typedef struct termreq_t { - unsigned char type; - ip_t vpn_ip; -} termreq_t; - -typedef struct basic_info_t { - unsigned char type; - unsigned char protocol; - unsigned short portnr; - ip_t vpn_ip; - ip_t vpn_mask; -} basic_info_t; - -typedef struct calculate_t { - unsigned char type; - unsigned short len; - char key; -} calculate_t; - -typedef struct public_key_t { - unsigned char type; - unsigned short len; - char key; -} public_key_t; - -typedef struct key_req_t { - unsigned char type; - ip_t from; - ip_t to; - time_t expiry; - short int len; /* 0 if requesting */ - char key; -} key_req_t; - -typedef struct key_changed_t { - unsigned char type; - ip_t from; -} key_changed_t; - -typedef struct del_host_t { - unsigned char type; - ip_t vpn_ip; -} del_host_t; - -extern int (*request_handlers[256])(conn_list_t*, unsigned char*, int); +extern int (*request_handlers[256])(conn_list_t*); extern int send_ping(conn_list_t*); extern int send_basic_info(conn_list_t *); extern int send_termreq(conn_list_t *); extern int send_timeout(conn_list_t *); extern int send_key_request(ip_t); -extern void send_key_changed2(void); +extern void send_key_changed_all(void); +extern int send_del_host(conn_list_t *, conn_list_t *); +extern int send_tcppacket(conn_list_t *, void *, int); +extern int notify_others(conn_list_t *, conn_list_t *, int (*function)(conn_list_t*, conn_list_t*)); #endif /* __TINC_PROTOCOL_H__ */ +