/*
node.h -- header for node.c
- Copyright (C) 2001-2002 Guus Sliepen <guus@sliepen.warande.net>,
- 2001-2002 Ivo Timmermans <itimmermans@bigfoot.com>
+ Copyright (C) 2001-2002 Guus Sliepen <guus@sliepen.eu.org>,
+ 2001-2002 Ivo Timmermans <ivo@o2w.nl>
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
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: node.h,v 1.1.2.12 2002/02/18 16:25:16 guus Exp $
+ $Id: node.h,v 1.1.2.17 2002/09/03 20:43:25 guus Exp $
*/
#ifndef __TINC_NODE_H__
#define __TINC_NODE_H__
+#ifdef HAVE_INTTYPES_H
+ #include <inttypes.h>
+#endif
+
#include <avl_tree.h>
#include "subnet.h"
int waitingforkey:1; /* 1 if we already sent out a request */
int visited:1; /* 1 if this node has been visited by one of the graph algorithms */
int reachable:1; /* 1 if this node is reachable in the graph */
- int unused:27;
+ int indirect:1; /* 1 if this node is not directly reachable by us */
+ int unused:26;
} node_status_t;
typedef struct node_t {
struct node_status_t status;
+ int distance; /* Distance from us to that node */
+
const EVP_CIPHER *cipher; /* Cipher type for UDP packets */
char *key; /* Cipher key and iv */
int keylength; /* Cipher key and iv length*/
avl_tree_t *subnet_tree; /* Pointer to a tree of subnets belonging to this node */
- avl_tree_t *edge_tree; /* Edges with this node as one of the endpoints */
-
struct connection_t *connection; /* Connection associated with this node (if a direct connection exists) */
- unsigned int sent_seqno; /* Sequence number last sent to this node */
- unsigned int received_seqno; /* Sequence number last received from this node */
+ uint32_t sent_seqno; /* Sequence number last sent to this node */
+ uint32_t received_seqno; /* Sequence number last received from this node */
} node_t;
extern struct node_t *myself;