X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.h;h=6a981186baa6c8044fac9f87ffe660ee4772da1a;hp=5f3e2a8744a0dce7ec9f178e61d9de99052d59c7;hb=f93b1334e087dd7af1b87f475b2d398fdd4d56ab;hpb=dbc5b5bb5eb3096ad930aa6b590deaba2a103dfc diff --git a/src/net.h b/src/net.h index 5f3e2a87..6a981186 100644 --- a/src/net.h +++ b/src/net.h @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: net.h,v 1.9.4.40 2002/02/20 22:15:32 guus Exp $ + $Id: net.h,v 1.9.4.45 2002/03/01 13:18:54 guus Exp $ */ #ifndef __TINC_NET_H__ @@ -34,6 +34,7 @@ #define MAXSIZE 1600 /* MTU + header (seqno) and trailer (CBC padding and HMAC) */ #define MAXBUFSIZE 2048 /* Probably way too much, but it must fit every possible request. */ +#define MAXSOCKETS 128 /* Overkill... */ typedef struct mac_t { @@ -65,16 +66,15 @@ typedef union { struct sockaddr_in6 in6; } sockaddr_t; -#define SA_PORT(s) ((s.sa.sa_family==AF_INET)?s.in.sin_port:(s.sa.sa_family==AF_INET6)?s.in6.sin6_port:0) - -#ifdef HAVE_LINUX - #define SA_LEN(s) sizeof(sockaddr_t) +#ifdef SA_LEN +#define SALEN(s) SA_LEN(&s) #else - #define SA_LEN(s) (s.sa_len) +#define SALEN(s) (s.sa_family==AF_INET?sizeof(struct sockaddr_in):sizeof(struct sockaddr_in6)) #endif typedef struct vpn_packet_t { length_t len; /* the actual number of bytes in the `data' field */ + int priority; /* priority or TOS */ unsigned int seqno; /* 32 bits sequence number (network byte order of course) */ unsigned char data[MAXSIZE]; } vpn_packet_t; @@ -107,8 +107,9 @@ extern char *status_text[]; #include "connection.h" /* Yes, very strange placement indeed, but otherwise the typedefs get all tangled up */ -extern int tcp_socket; -extern int udp_socket; +extern int tcp_socket[MAXSOCKETS]; +extern int udp_socket[MAXSOCKETS]; +extern int listen_sockets; extern int keyexpires; extern int keylifetime; extern int do_prune; @@ -116,10 +117,10 @@ extern int do_purge; extern char *myport; extern void retry_outgoing(outgoing_t *); -extern void handle_incoming_vpn_data(void); +extern void handle_incoming_vpn_data(int); extern void finish_connecting(connection_t *); extern void do_outgoing_connection(connection_t *); -extern int handle_new_meta_connection(void); +extern int handle_new_meta_connection(int); extern int setup_listen_socket(sockaddr_t *); extern int setup_vpn_in_socket(sockaddr_t *); extern void send_packet(struct node_t *, vpn_packet_t *);