+#ifndef TINC_NODE_H
+#define TINC_NODE_H
+
/*
node.h -- header for node.c
Copyright (C) 2001-2013 Guus Sliepen <guus@tinc-vpn.org>,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef __TINC_NODE_H__
-#define __TINC_NODE_H__
-
#include "splay_tree.h"
#include "cipher.h"
#include "connection.h"
unsigned int udp_confirmed:1; /* 1 if the address is one that we received UDP traffic on */
unsigned int send_locally:1; /* 1 if the next UDP packet should be sent on the local network */
unsigned int udppacket:1; /* 1 if the most recently received packet was UDP */
- unsigned int validkey_in; /* 1 if we have sent a valid key to him */
- unsigned int unused:22;
+ unsigned int validkey_in:1; /* 1 if we have sent a valid key to him */
+ unsigned int has_address:1; /* 1 if we know an external address for this node */
+ unsigned int unused:20;
} node_status_t;
typedef struct node_t {
char *name; /* name of this node */
+ char *hostname; /* the hostname of its real ip */
node_id_t id; /* unique node ID (name hash) */
uint32_t options; /* options turned on for this node */
int sock; /* Socket to use for outgoing UDP packets */
sockaddr_t address; /* his real (internet) ip to send UDP packets to */
- char *hostname; /* the hostname of its real ip */
node_status_t status;
time_t last_state_change;
struct timeval mtu_ping_sent; /* Last time a MTU probe was sent */
+ struct timeval mtu_info_sent; /* Last time a MTU_INFO message was sent */
+ struct timeval udp_info_sent; /* Last time a UDP_INFO message was sent */
+
length_t maxrecentlen; /* Maximum size of recently received packets */
length_t mtu; /* Maximum size of packets to send to this node */
extern bool dump_traffic(struct connection_t *);
extern void update_node_udp(node_t *, const sockaddr_t *);
-#endif /* __TINC_NODE_H__ */
+#endif