Ensure tinc compiles with gcc -std=c99.
We use a lot of C99 features already, but also some extensions which are not in the standard.
This commit is contained in:
		
							parent
							
								
									f52ea0a7eb
								
							
						
					
					
						commit
						9b394bc887
					
				
					 5 changed files with 23 additions and 29 deletions
				
			
		| 
						 | 
				
			
			@ -21,7 +21,7 @@ AC_DEFINE([__USE_BSD], 1, [Enable BSD extensions])
 | 
			
		|||
ALL_LINGUAS="nl"
 | 
			
		||||
 | 
			
		||||
dnl Checks for programs.
 | 
			
		||||
AC_PROG_CC
 | 
			
		||||
AC_PROG_CC_C99
 | 
			
		||||
AC_PROG_CPP
 | 
			
		||||
AC_PROG_INSTALL
 | 
			
		||||
AC_PROG_LN_S
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ connection_t *broadcast;
 | 
			
		|||
 | 
			
		||||
static int connection_compare(const connection_t *a, const connection_t *b)
 | 
			
		||||
{
 | 
			
		||||
	return (void *)a - (void *)b;
 | 
			
		||||
	return a - b;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void init_connections(void)
 | 
			
		||||
| 
						 | 
				
			
			@ -144,7 +144,7 @@ void dump_connections(void)
 | 
			
		|||
	for(node = connection_tree->head; node; node = node->next) {
 | 
			
		||||
		c = node->data;
 | 
			
		||||
		logger(LOG_DEBUG, _(" %s at %s options %lx socket %d status %04x outbuf %d/%d/%d"),
 | 
			
		||||
			   c->name, c->hostname, c->options, c->socket, c->status.value,
 | 
			
		||||
			   c->name, c->hostname, c->options, c->socket, *(uint32_t *)&c->status,
 | 
			
		||||
			   c->outbufsize, c->outbufstart, c->outbuflen);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,20 +32,17 @@
 | 
			
		|||
#define OPTION_TCPONLY		0x0002
 | 
			
		||||
#define OPTION_PMTU_DISCOVERY	0x0004
 | 
			
		||||
 | 
			
		||||
typedef union connection_status_t {
 | 
			
		||||
	struct {
 | 
			
		||||
		int pinged:1;				/* sent ping */
 | 
			
		||||
		int active:1;				/* 1 if active.. */
 | 
			
		||||
		int connecting:1;			/* 1 if we are waiting for a non-blocking connect() to finish */
 | 
			
		||||
		int termreq:1;				/* the termination of this connection was requested */
 | 
			
		||||
		int remove:1;				/* Set to 1 if you want this connection removed */
 | 
			
		||||
		int timeout:1;				/* 1 if gotten timeout */
 | 
			
		||||
		int encryptout:1;			/* 1 if we can encrypt outgoing traffic */
 | 
			
		||||
		int decryptin:1;			/* 1 if we have to decrypt incoming traffic */
 | 
			
		||||
		int mst:1;				/* 1 if this connection is part of a minimum spanning tree */
 | 
			
		||||
		int unused:23;
 | 
			
		||||
	};
 | 
			
		||||
	uint32_t value;
 | 
			
		||||
typedef struct connection_status_t {
 | 
			
		||||
	int pinged:1;				/* sent ping */
 | 
			
		||||
	int active:1;				/* 1 if active.. */
 | 
			
		||||
	int connecting:1;			/* 1 if we are waiting for a non-blocking connect() to finish */
 | 
			
		||||
	int termreq:1;				/* the termination of this connection was requested */
 | 
			
		||||
	int remove:1;				/* Set to 1 if you want this connection removed */
 | 
			
		||||
	int timeout:1;				/* 1 if gotten timeout */
 | 
			
		||||
	int encryptout:1;			/* 1 if we can encrypt outgoing traffic */
 | 
			
		||||
	int decryptin:1;			/* 1 if we have to decrypt incoming traffic */
 | 
			
		||||
	int mst:1;				/* 1 if this connection is part of a minimum spanning tree */
 | 
			
		||||
	int unused:23;
 | 
			
		||||
} connection_status_t;
 | 
			
		||||
 | 
			
		||||
#include "edge.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -251,7 +251,7 @@ static void check_dead_connections(void)
 | 
			
		|||
			} else {
 | 
			
		||||
				if(c->status.remove) {
 | 
			
		||||
					logger(LOG_WARNING, _("Old connection_t for %s (%s) status %04x still lingering, deleting..."),
 | 
			
		||||
						   c->name, c->hostname, c->status.value);
 | 
			
		||||
						   c->name, c->hostname, *(uint32_t *)&c->status);
 | 
			
		||||
					connection_del(c);
 | 
			
		||||
					continue;
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										19
									
								
								src/node.h
									
										
									
									
									
								
							
							
						
						
									
										19
									
								
								src/node.h
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -29,17 +29,14 @@
 | 
			
		|||
#include "list.h"
 | 
			
		||||
#include "subnet.h"
 | 
			
		||||
 | 
			
		||||
typedef union node_status_t {
 | 
			
		||||
	struct {
 | 
			
		||||
		int unused_active:1;			/* 1 if active (not used for nodes) */
 | 
			
		||||
		int validkey:1;				/* 1 if we currently have a valid key for him */
 | 
			
		||||
		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 indirect:1;				/* 1 if this node is not directly reachable by us */
 | 
			
		||||
		int unused:26;
 | 
			
		||||
	};
 | 
			
		||||
	uint32_t value;
 | 
			
		||||
typedef struct node_status_t {
 | 
			
		||||
	int unused_active:1;			/* 1 if active (not used for nodes) */
 | 
			
		||||
	int validkey:1;				/* 1 if we currently have a valid key for him */
 | 
			
		||||
	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 indirect:1;				/* 1 if this node is not directly reachable by us */
 | 
			
		||||
	int unused:26;
 | 
			
		||||
} node_status_t;
 | 
			
		||||
 | 
			
		||||
typedef struct node_t {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue