Add Guus' name and shift out old protocol requests
[tinc] / src / protocol.h
index 01b601d..3a5c806 100644 (file)
@@ -1,6 +1,7 @@
 /*
     protocol.h -- header for protocol.c
-    Copyright (C) 1999 Ivo Timmermans <zarq@iname.com>
+    Copyright (C) 1999,2000 Ivo Timmermans <itimmermans@bigfoot.com>,
+                       2000 Guus Sliepen <guus@sliepen.warande.net>
 
     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,78 +61,25 @@ 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*, 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__ */
 
+