X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol.h;h=3a5c80690e80fca9fd7c0606fcc74e6ab6057bdd;hp=2713df978f1261b821f63486b809088475988d06;hb=9926dae4646a96ee647a2ca7d728e91600dd1cca;hpb=ca73b722cbad5a08ec9bb5026ed5129da9a24bd8 diff --git a/src/protocol.h b/src/protocol.h index 2713df97..3a5c8069 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -1,6 +1,7 @@ /* protocol.h -- header for protocol.c - Copyright (C) 1999 Ivo Timmermans + Copyright (C) 1999,2000 Ivo Timmermans , + 2000 Guus Sliepen 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 +16,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.6 2000/09/10 21:57:11 zarq Exp $ */ #ifndef __TINC_PROTOCOL_H__ @@ -27,19 +30,23 @@ enum { PROT_NOT_IN_USE, PROT_TOO_OLD = 2, PROT_3, + PROT_4, + PROT_ECHELON, + PROT_6, PROT_CURRENT, /* protocol currently in use */ }; enum { ACK = 1, /* acknowledged */ - AUTH_S_INIT = 10, /* initiate authentication */ +/* These requests are obsolete. + AUTH_S_INIT = 10, AUTH_C_INIT, - AUTH_S_SPP, /* send passphrase */ + AUTH_S_SPP, AUTH_C_SPP, - AUTH_S_SKEY, /* send g^k */ + AUTH_S_SKEY, AUTH_C_SKEY, - AUTH_S_SACK, /* send ack */ - AUTH_C_RACK, /* waiting for ack */ + AUTH_S_SACK, + AUTH_C_RACK, */ TERMREQ = 30, /* terminate connection */ PINGTIMEOUT, /* terminate due to ping t.o. */ DEL_HOST, /* forward a termreq to others */ @@ -54,70 +61,13 @@ 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; - char unused1; - 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; - char unused1; - 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; - char unused1; - unsigned short len; - char key; -} calculate_t; - -typedef struct public_key_t { - unsigned char type; - char unused1; - unsigned short len; - char key; -} public_key_t; - -typedef struct key_req_t { - unsigned char type; - char unused1; - 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; - char unused1; - ip_t from; -} key_changed_t; - -typedef struct del_host_t { - unsigned char type; - char unused1; - ip_t vpn_ip; -} del_host_t; - extern int (*request_handlers[256])(conn_list_t*); extern int send_ping(conn_list_t*); @@ -125,7 +75,11 @@ 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__ */ +