Sprinkle around a lot of const and some C99 initialisers.

This commit is contained in:
Guus Sliepen 2003-07-24 12:08:16 +00:00
parent 5cb1471351
commit 83263b7446
23 changed files with 166 additions and 159 deletions

View file

@ -29,7 +29,7 @@
library for inclusion into tinc (http://tinc.nl.linux.org/) by library for inclusion into tinc (http://tinc.nl.linux.org/) by
Guus Sliepen <guus@sliepen.eu.org>. Guus Sliepen <guus@sliepen.eu.org>.
$Id: avl_tree.c,v 1.1.2.16 2003/07/17 15:06:25 guus Exp $ $Id: avl_tree.c,v 1.1.2.17 2003/07/24 12:08:14 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -90,7 +90,7 @@ static int lg(unsigned int u)
/* Internal helper functions */ /* Internal helper functions */
static int avl_check_balance(avl_node_t *node) static int avl_check_balance(const avl_node_t *node)
{ {
#ifdef AVL_DEPTH #ifdef AVL_DEPTH
int d; int d;
@ -666,7 +666,7 @@ void avl_delete_tree(avl_tree_t *tree)
/* Tree walking */ /* Tree walking */
void avl_foreach(avl_tree_t *tree, avl_action_t action) void avl_foreach(const avl_tree_t *tree, avl_action_t action)
{ {
avl_node_t *node, *next; avl_node_t *node, *next;
@ -676,7 +676,7 @@ void avl_foreach(avl_tree_t *tree, avl_action_t action)
} }
} }
void avl_foreach_node(avl_tree_t *tree, avl_action_t action) void avl_foreach_node(const avl_tree_t *tree, avl_action_t action)
{ {
avl_node_t *node, *next; avl_node_t *node, *next;
@ -689,7 +689,7 @@ void avl_foreach_node(avl_tree_t *tree, avl_action_t action)
/* Indexing */ /* Indexing */
#ifdef AVL_COUNT #ifdef AVL_COUNT
unsigned int avl_count(avl_tree_t *tree) unsigned int avl_count(const avl_tree_t *tree)
{ {
return AVL_NODE_COUNT(tree->root); return AVL_NODE_COUNT(tree->root);
} }
@ -734,7 +734,7 @@ unsigned int avl_index(const avl_node_t *node)
} }
#endif #endif
#ifdef AVL_DEPTH #ifdef AVL_DEPTH
unsigned int avl_depth(avl_tree_t *tree) unsigned int avl_depth(const avl_tree_t *tree)
{ {
return AVL_NODE_DEPTH(tree->root); return AVL_NODE_DEPTH(tree->root);
} }

View file

@ -29,7 +29,7 @@
library for inclusion into tinc (http://tinc.nl.linux.org/) by library for inclusion into tinc (http://tinc.nl.linux.org/) by
Guus Sliepen <guus@sliepen.eu.org>. Guus Sliepen <guus@sliepen.eu.org>.
$Id: avl_tree.h,v 1.1.2.9 2003/07/12 17:48:38 guus Exp $ $Id: avl_tree.h,v 1.1.2.10 2003/07/24 12:08:15 guus Exp $
*/ */
@ -128,18 +128,18 @@ extern avl_node_t *avl_search_closest_greater_node(const avl_tree_t *, const voi
/* Tree walking */ /* Tree walking */
extern void avl_foreach(avl_tree_t *, avl_action_t); extern void avl_foreach(const avl_tree_t *, avl_action_t);
extern void avl_foreach_node(avl_tree_t *, avl_action_t); extern void avl_foreach_node(const avl_tree_t *, avl_action_t);
/* Indexing */ /* Indexing */
#ifdef AVL_COUNT #ifdef AVL_COUNT
extern unsigned int avl_count(avl_tree_t *); extern unsigned int avl_count(const avl_tree_t *);
extern avl_node_t *avl_get_node(const avl_tree_t *, unsigned int); extern avl_node_t *avl_get_node(const avl_tree_t *, unsigned int);
extern unsigned int avl_index(const avl_node_t *); extern unsigned int avl_index(const avl_node_t *);
#endif #endif
#ifdef AVL_DEPTH #ifdef AVL_DEPTH
extern unsigned int avl_depth(avl_tree_t *); extern unsigned int avl_depth(const avl_tree_t *);
#endif #endif
#endif /* __AVL_TREE_H__ */ #endif /* __AVL_TREE_H__ */

View file

@ -19,7 +19,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: conf.c,v 1.9.4.68 2003/07/22 20:55:19 guus Exp $ $Id: conf.c,v 1.9.4.69 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -37,7 +37,7 @@ int pingtimeout = 0; /* seconds before timeout */
char *confbase = NULL; /* directory in which all config files are */ char *confbase = NULL; /* directory in which all config files are */
char *netname = NULL; /* name of the vpn network */ char *netname = NULL; /* name of the vpn network */
static int config_compare(config_t *a, config_t *b) static int config_compare(const config_t *a, const config_t *b)
{ {
int result; int result;
@ -99,7 +99,7 @@ void config_add(avl_tree_t *config_tree, config_t *cfg)
avl_insert(config_tree, cfg); avl_insert(config_tree, cfg);
} }
config_t *lookup_config(avl_tree_t *config_tree, char *variable) config_t *lookup_config(const avl_tree_t *config_tree, char *variable)
{ {
config_t cfg, *found; config_t cfg, *found;
@ -120,7 +120,7 @@ config_t *lookup_config(avl_tree_t *config_tree, char *variable)
return found; return found;
} }
config_t *lookup_config_next(avl_tree_t *config_tree, config_t *cfg) config_t *lookup_config_next(const avl_tree_t *config_tree, const config_t *cfg)
{ {
avl_node_t *node; avl_node_t *node;
config_t *found; config_t *found;
@ -141,7 +141,7 @@ config_t *lookup_config_next(avl_tree_t *config_tree, config_t *cfg)
return NULL; return NULL;
} }
bool get_config_bool(config_t *cfg, bool *result) bool get_config_bool(const config_t *cfg, bool *result)
{ {
cp(); cp();
@ -162,7 +162,7 @@ bool get_config_bool(config_t *cfg, bool *result)
return false; return false;
} }
bool get_config_int(config_t *cfg, int *result) bool get_config_int(const config_t *cfg, int *result)
{ {
cp(); cp();
@ -178,7 +178,7 @@ bool get_config_int(config_t *cfg, int *result)
return false; return false;
} }
bool get_config_string(config_t *cfg, char **result) bool get_config_string(const config_t *cfg, char **result)
{ {
cp(); cp();
@ -190,7 +190,7 @@ bool get_config_string(config_t *cfg, char **result)
return true; return true;
} }
bool get_config_address(config_t *cfg, struct addrinfo **result) bool get_config_address(const config_t *cfg, struct addrinfo **result)
{ {
struct addrinfo *ai; struct addrinfo *ai;
@ -212,7 +212,7 @@ bool get_config_address(config_t *cfg, struct addrinfo **result)
return false; return false;
} }
bool get_config_subnet(config_t *cfg, subnet_t ** result) bool get_config_subnet(const config_t *cfg, subnet_t ** result)
{ {
subnet_t *subnet; subnet_t *subnet;

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: conf.h,v 1.6.4.40 2003/07/22 20:55:19 guus Exp $ $Id: conf.h,v 1.6.4.41 2003/07/24 12:08:15 guus Exp $
*/ */
#ifndef __TINC_CONF_H__ #ifndef __TINC_CONF_H__
@ -47,13 +47,13 @@ extern void exit_configuration(avl_tree_t **);
extern config_t *new_config(void) __attribute__ ((malloc)); extern config_t *new_config(void) __attribute__ ((malloc));
extern void free_config(config_t *); extern void free_config(config_t *);
extern void config_add(avl_tree_t *, config_t *); extern void config_add(avl_tree_t *, config_t *);
extern config_t *lookup_config(avl_tree_t *, char *); extern config_t *lookup_config(const avl_tree_t *, char *);
extern config_t *lookup_config_next(avl_tree_t *, config_t *); extern config_t *lookup_config_next(const avl_tree_t *, const config_t *);
extern bool get_config_bool(config_t *, bool *); extern bool get_config_bool(const config_t *, bool *);
extern bool get_config_int(config_t *, int *); extern bool get_config_int(const config_t *, int *);
extern bool get_config_string(config_t *, char **); extern bool get_config_string(const config_t *, char **);
extern bool get_config_address(config_t *, struct addrinfo **); extern bool get_config_address(const config_t *, struct addrinfo **);
extern bool get_config_subnet(config_t *, struct subnet_t **); extern bool get_config_subnet(const config_t *, struct subnet_t **);
extern int read_config_file(avl_tree_t *, const char *); extern int read_config_file(avl_tree_t *, const char *);
extern bool read_server_config(void); extern bool read_server_config(void);

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: connection.c,v 1.1.2.41 2003/07/22 20:55:19 guus Exp $ $Id: connection.c,v 1.1.2.42 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -35,7 +35,7 @@
avl_tree_t *connection_tree; /* Meta connections */ avl_tree_t *connection_tree; /* Meta connections */
connection_t *broadcast; connection_t *broadcast;
static int connection_compare(connection_t *a, connection_t *b) static int connection_compare(const connection_t *a, const connection_t *b)
{ {
return (void *)a - (void *)b; return (void *)a - (void *)b;
} }

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: edge.c,v 1.1.2.22 2003/07/17 15:06:26 guus Exp $ $Id: edge.c,v 1.1.2.23 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -32,12 +32,12 @@
avl_tree_t *edge_weight_tree; /* Tree with all edges, sorted on weight */ avl_tree_t *edge_weight_tree; /* Tree with all edges, sorted on weight */
static int edge_compare(edge_t *a, edge_t *b) static int edge_compare(const edge_t *a, const edge_t *b)
{ {
return strcmp(a->to->name, b->to->name); return strcmp(a->to->name, b->to->name);
} }
static int edge_weight_compare(edge_t *a, edge_t *b) static int edge_weight_compare(const edge_t *a, const edge_t *b)
{ {
int result; int result;
@ -123,15 +123,15 @@ void edge_del(edge_t *e)
avl_delete(edge_weight_tree, e); avl_delete(edge_weight_tree, e);
} }
edge_t *lookup_edge(node_t *from, node_t *to) edge_t *lookup_edge(const node_t *from, const node_t *to)
{ {
edge_t v; edge_t v = {
.from = from,
.to = to
};
cp(); cp();
v.from = from;
v.to = to;
return avl_search(from->edge_tree, &v); return avl_search(from->edge_tree, &v);
} }

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: edge.h,v 1.1.2.14 2003/07/17 15:06:26 guus Exp $ $Id: edge.h,v 1.1.2.15 2003/07/24 12:08:15 guus Exp $
*/ */
#ifndef __TINC_EDGE_H__ #ifndef __TINC_EDGE_H__
@ -50,7 +50,7 @@ extern avl_tree_t *new_edge_tree(void) __attribute__ ((malloc));
extern void free_edge_tree(avl_tree_t *); extern void free_edge_tree(avl_tree_t *);
extern void edge_add(edge_t *); extern void edge_add(edge_t *);
extern void edge_del(edge_t *); extern void edge_del(edge_t *);
extern edge_t *lookup_edge(struct node_t *, struct node_t *); extern edge_t *lookup_edge(const struct node_t *, const struct node_t *);
extern void dump_edges(void); extern void dump_edges(void);
#endif /* __TINC_EDGE_H__ */ #endif /* __TINC_EDGE_H__ */

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: event.c,v 1.1.4.9 2003/07/17 15:06:26 guus Exp $ $Id: event.c,v 1.1.4.10 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -32,7 +32,7 @@ extern time_t now;
int id; int id;
static int event_compare(event_t *a, event_t *b) static int event_compare(const event_t *a, const event_t *b)
{ {
if(a->time > b->time) if(a->time > b->time)
return 1; return 1;

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: net.h,v 1.9.4.66 2003/07/22 20:55:20 guus Exp $ $Id: net.h,v 1.9.4.67 2003/07/24 12:08:15 guus Exp $
*/ */
#ifndef __TINC_NET_H__ #ifndef __TINC_NET_H__
@ -126,11 +126,11 @@ extern void handle_incoming_vpn_data(int);
extern void finish_connecting(struct connection_t *); extern void finish_connecting(struct connection_t *);
extern void do_outgoing_connection(struct connection_t *); extern void do_outgoing_connection(struct connection_t *);
extern bool handle_new_meta_connection(int); extern bool handle_new_meta_connection(int);
extern int setup_listen_socket(sockaddr_t *); extern int setup_listen_socket(const sockaddr_t *);
extern int setup_vpn_in_socket(sockaddr_t *); extern int setup_vpn_in_socket(const sockaddr_t *);
extern void send_packet(struct node_t *, vpn_packet_t *); extern void send_packet(const struct node_t *, vpn_packet_t *);
extern void receive_tcppacket(struct connection_t *, char *, int); extern void receive_tcppacket(struct connection_t *, char *, int);
extern void broadcast_packet(struct node_t *, vpn_packet_t *); extern void broadcast_packet(const struct node_t *, vpn_packet_t *);
extern bool setup_network_connections(void); extern bool setup_network_connections(void);
extern void setup_outgoing_connection(struct outgoing_t *); extern void setup_outgoing_connection(struct outgoing_t *);
extern void try_outgoing_connections(void); extern void try_outgoing_connections(void);

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: net_packet.c,v 1.1.2.35 2003/07/22 20:55:20 guus Exp $ $Id: net_packet.c,v 1.1.2.36 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -323,7 +323,7 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
/* /*
send a packet to the given vpn ip. send a packet to the given vpn ip.
*/ */
void send_packet(node_t *n, vpn_packet_t *packet) void send_packet(const node_t *n, vpn_packet_t *packet)
{ {
node_t *via; node_t *via;
@ -358,7 +358,7 @@ void send_packet(node_t *n, vpn_packet_t *packet)
/* Broadcast a packet using the minimum spanning tree */ /* Broadcast a packet using the minimum spanning tree */
void broadcast_packet(node_t *from, vpn_packet_t *packet) void broadcast_packet(const node_t *from, vpn_packet_t *packet)
{ {
avl_node_t *node; avl_node_t *node;
connection_t *c; connection_t *c;

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: net_socket.c,v 1.1.2.30 2003/07/22 20:55:20 guus Exp $ $Id: net_socket.c,v 1.1.2.31 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -43,7 +43,7 @@ int listen_sockets;
/* Setup sockets */ /* Setup sockets */
int setup_listen_socket(sockaddr_t *sa) int setup_listen_socket(const sockaddr_t *sa)
{ {
int nfd, flags; int nfd, flags;
char *addrstr; char *addrstr;
@ -119,7 +119,7 @@ int setup_listen_socket(sockaddr_t *sa)
return nfd; return nfd;
} }
int setup_vpn_in_socket(sockaddr_t *sa) int setup_vpn_in_socket(const sockaddr_t *sa)
{ {
int nfd, flags; int nfd, flags;
char *addrstr; char *addrstr;

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: netutl.c,v 1.12.4.48 2003/07/22 20:55:20 guus Exp $ $Id: netutl.c,v 1.12.4.49 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -34,7 +34,7 @@ bool hostnames = false;
Turn a string into a struct addrinfo. Turn a string into a struct addrinfo.
Return NULL on failure. Return NULL on failure.
*/ */
struct addrinfo *str2addrinfo(char *address, char *service, int socktype) struct addrinfo *str2addrinfo(const char *address, const char *service, int socktype)
{ {
struct addrinfo hint, *ai; struct addrinfo hint, *ai;
int err; int err;
@ -57,7 +57,7 @@ struct addrinfo *str2addrinfo(char *address, char *service, int socktype)
return ai; return ai;
} }
sockaddr_t str2sockaddr(char *address, char *port) sockaddr_t str2sockaddr(const char *address, const char *port)
{ {
struct addrinfo hint, *ai; struct addrinfo hint, *ai;
sockaddr_t result; sockaddr_t result;
@ -87,7 +87,7 @@ sockaddr_t str2sockaddr(char *address, char *port)
return result; return result;
} }
void sockaddr2str(sockaddr_t *sa, char **addrstr, char **portstr) void sockaddr2str(const sockaddr_t *sa, char **addrstr, char **portstr)
{ {
char address[NI_MAXHOST]; char address[NI_MAXHOST];
char port[NI_MAXSERV]; char port[NI_MAXSERV];
@ -115,7 +115,7 @@ void sockaddr2str(sockaddr_t *sa, char **addrstr, char **portstr)
*portstr = xstrdup(port); *portstr = xstrdup(port);
} }
char *sockaddr2hostname(sockaddr_t *sa) char *sockaddr2hostname(const sockaddr_t *sa)
{ {
char *str; char *str;
char address[NI_MAXHOST] = "unknown"; char address[NI_MAXHOST] = "unknown";
@ -136,7 +136,7 @@ char *sockaddr2hostname(sockaddr_t *sa)
return str; return str;
} }
int sockaddrcmp(sockaddr_t *a, sockaddr_t *b) int sockaddrcmp(const sockaddr_t *a, const sockaddr_t *b)
{ {
int result; int result;
@ -186,11 +186,11 @@ void sockaddrunmap(sockaddr_t *sa)
/* Subnet mask handling */ /* Subnet mask handling */
int maskcmp(void *va, void *vb, int masklen, int len) int maskcmp(const void *va, const void *vb, int masklen, int len)
{ {
int i, m, result; int i, m, result;
char *a = va; const char *a = va;
char *b = vb; const char *b = vb;
cp(); cp();
@ -224,11 +224,11 @@ void mask(void *va, int masklen, int len)
a[i] = 0; a[i] = 0;
} }
void maskcpy(void *va, void *vb, int masklen, int len) void maskcpy(void *va, const void *vb, int masklen, int len)
{ {
int i, m; int i, m;
char *a = va; char *a = va;
char *b = vb; const char *b = vb;
cp(); cp();
@ -244,10 +244,10 @@ void maskcpy(void *va, void *vb, int masklen, int len)
a[i] = 0; a[i] = 0;
} }
bool maskcheck(void *va, int masklen, int len) bool maskcheck(const void *va, int masklen, int len)
{ {
int i; int i;
char *a = va; const char *a = va;
cp(); cp();

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: netutl.h,v 1.2.4.17 2003/07/22 20:55:20 guus Exp $ $Id: netutl.h,v 1.2.4.18 2003/07/24 12:08:15 guus Exp $
*/ */
#ifndef __TINC_NETUTL_H__ #ifndef __TINC_NETUTL_H__
@ -27,15 +27,15 @@
extern bool hostnames; extern bool hostnames;
extern struct addrinfo *str2addrinfo(char *, char *, int); extern struct addrinfo *str2addrinfo(const char *, const char *, int);
extern sockaddr_t str2sockaddr(char *, char *); extern sockaddr_t str2sockaddr(const char *, const char *);
extern void sockaddr2str(sockaddr_t *, char **, char **); extern void sockaddr2str(const sockaddr_t *, char **, char **);
extern char *sockaddr2hostname(sockaddr_t *); extern char *sockaddr2hostname(const sockaddr_t *);
extern int sockaddrcmp(sockaddr_t *, sockaddr_t *); extern int sockaddrcmp(const sockaddr_t *, const sockaddr_t *);
extern void sockaddrunmap(sockaddr_t *); extern void sockaddrunmap(sockaddr_t *);
extern int maskcmp(void *, void *, int, int); extern int maskcmp(const void *, const void *, int, int);
extern void maskcpy(void *, void *, int, int); extern void maskcpy(void *, const void *, int, int);
extern void mask(void *, int, int); extern void mask(void *, int, int);
extern bool maskcheck(void *, int, int); extern bool maskcheck(const void *, int, int);
#endif /* __TINC_NETUTL_H__ */ #endif /* __TINC_NETUTL_H__ */

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: node.c,v 1.1.2.23 2003/07/17 15:06:26 guus Exp $ $Id: node.c,v 1.1.2.24 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -35,12 +35,12 @@ avl_tree_t *node_udp_tree; /* Known nodes, sorted by address and port */
node_t *myself; node_t *myself;
static int node_compare(node_t *a, node_t *b) static int node_compare(const node_t *a, const node_t *b)
{ {
return strcmp(a->name, b->name); return strcmp(a->name, b->name);
} }
static int node_udp_compare(node_t *a, node_t *b) static int node_udp_compare(const node_t *a, const node_t *b)
{ {
int result; int result;
@ -143,20 +143,25 @@ void node_del(node_t *n)
avl_delete(node_udp_tree, n); avl_delete(node_udp_tree, n);
} }
node_t *lookup_node(char *name) node_t *lookup_node(const char *name)
{ {
node_t n; node_t n = {
.name = name,
};
cp(); cp();
n.name = name;
return avl_search(node_tree, &n); return avl_search(node_tree, &n);
} }
node_t *lookup_node_udp(sockaddr_t *sa) node_t *lookup_node_udp(const sockaddr_t *sa)
{ {
node_t n; node_t n = {
.address = *sa,
.name = NULL,
};
cp(); cp();
n.address = *sa;
n.name = NULL;
return avl_search(node_udp_tree, &n); return avl_search(node_udp_tree, &n);
} }

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: node.h,v 1.1.2.26 2003/07/22 20:55:20 guus Exp $ $Id: node.h,v 1.1.2.27 2003/07/24 12:08:15 guus Exp $
*/ */
#ifndef __TINC_NODE_H__ #ifndef __TINC_NODE_H__
@ -83,8 +83,8 @@ extern node_t *new_node(void) __attribute__ ((malloc));
extern void free_node(node_t *); extern void free_node(node_t *);
extern void node_add(node_t *); extern void node_add(node_t *);
extern void node_del(node_t *); extern void node_del(node_t *);
extern node_t *lookup_node(char *); extern node_t *lookup_node(const char *);
extern node_t *lookup_node_udp(sockaddr_t *); extern node_t *lookup_node_udp(const sockaddr_t *);
extern void dump_nodes(void); extern void dump_nodes(void);
#endif /* __TINC_NODE_H__ */ #endif /* __TINC_NODE_H__ */

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: protocol.c,v 1.28.4.142 2003/07/22 20:55:20 guus Exp $ $Id: protocol.c,v 1.28.4.143 2003/07/24 12:08:15 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -53,12 +53,10 @@ static char (*request_name[]) = {
static avl_tree_t *past_request_tree; static avl_tree_t *past_request_tree;
bool check_id(char *id) bool check_id(const char *id)
{ {
int i; for(; *id; id++)
if(!isalnum(*id) && *id != '_')
for(i = 0; i < strlen(id); i++)
if(!isalnum(id[i]) && id[i] != '_')
return false; return false;
return true; return true;
@ -180,7 +178,7 @@ bool receive_request(connection_t *c)
return true; return true;
} }
static int past_request_compare(past_request_t *a, past_request_t *b) static int past_request_compare(const past_request_t *a, const past_request_t *b)
{ {
return strcmp(a->request, b->request); return strcmp(a->request, b->request);
} }
@ -209,14 +207,15 @@ void exit_requests(void)
avl_delete_tree(past_request_tree); avl_delete_tree(past_request_tree);
} }
bool seen_request(char *request) bool seen_request(const char *request)
{ {
past_request_t p, *new; past_request_t p = {
.request = request,
};
past_request_t *new;
cp(); cp();
p.request = request;
if(avl_search(past_request_tree, &p)) { if(avl_search(past_request_tree, &p)) {
ifdebug(SCARY_THINGS) logger(LOG_DEBUG, _("Already seen request")); ifdebug(SCARY_THINGS) logger(LOG_DEBUG, _("Already seen request"));
return true; return true;

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: protocol.h,v 1.5.4.40 2003/07/22 20:55:20 guus Exp $ $Id: protocol.h,v 1.5.4.41 2003/07/24 12:08:16 guus Exp $
*/ */
#ifndef __TINC_PROTOCOL_H__ #ifndef __TINC_PROTOCOL_H__
@ -63,11 +63,11 @@ typedef struct past_request_t {
extern bool send_request(struct connection_t *, const char *, ...) __attribute__ ((format(printf, 2, 3))); extern bool send_request(struct connection_t *, const char *, ...) __attribute__ ((format(printf, 2, 3)));
extern void forward_request(struct connection_t *); extern void forward_request(struct connection_t *);
extern bool receive_request(struct connection_t *); extern bool receive_request(struct connection_t *);
extern bool check_id(char *); extern bool check_id(const char *);
extern void init_requests(void); extern void init_requests(void);
extern void exit_requests(void); extern void exit_requests(void);
extern bool seen_request(char *); extern bool seen_request(const char *);
extern void age_past_requests(void); extern void age_past_requests(void);
/* Requests */ /* Requests */
@ -77,18 +77,18 @@ extern bool send_metakey(struct connection_t *);
extern bool send_challenge(struct connection_t *); extern bool send_challenge(struct connection_t *);
extern bool send_chal_reply(struct connection_t *); extern bool send_chal_reply(struct connection_t *);
extern bool send_ack(struct connection_t *); extern bool send_ack(struct connection_t *);
extern bool send_status(struct connection_t *, int, char *); extern bool send_status(struct connection_t *, int, const char *);
extern bool send_error(struct connection_t *, int, char *); extern bool send_error(struct connection_t *, int,const char *);
extern bool send_termreq(struct connection_t *); extern bool send_termreq(struct connection_t *);
extern bool send_ping(struct connection_t *); extern bool send_ping(struct connection_t *);
extern bool send_pong(struct connection_t *); extern bool send_pong(struct connection_t *);
extern bool send_add_subnet(struct connection_t *, struct subnet_t *); extern bool send_add_subnet(struct connection_t *, const struct subnet_t *);
extern bool send_del_subnet(struct connection_t *, struct subnet_t *); extern bool send_del_subnet(struct connection_t *, const struct subnet_t *);
extern bool send_add_edge(struct connection_t *, struct edge_t *); extern bool send_add_edge(struct connection_t *, const struct edge_t *);
extern bool send_del_edge(struct connection_t *, struct edge_t *); extern bool send_del_edge(struct connection_t *, const struct edge_t *);
extern bool send_key_changed(struct connection_t *, struct node_t *); extern bool send_key_changed(struct connection_t *, const struct node_t *);
extern bool send_req_key(struct connection_t *, struct node_t *, struct node_t *); extern bool send_req_key(struct connection_t *, const struct node_t *, const struct node_t *);
extern bool send_ans_key(struct connection_t *, struct node_t *, struct node_t *); extern bool send_ans_key(struct connection_t *, const struct node_t *, const struct node_t *);
extern bool send_tcppacket(struct connection_t *, struct vpn_packet_t *); extern bool send_tcppacket(struct connection_t *, struct vpn_packet_t *);
/* Request handlers */ /* Request handlers */

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: protocol_edge.c,v 1.1.4.19 2003/07/22 20:55:20 guus Exp $ $Id: protocol_edge.c,v 1.1.4.20 2003/07/24 12:08:16 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -36,7 +36,7 @@
#include "utils.h" #include "utils.h"
#include "xalloc.h" #include "xalloc.h"
bool send_add_edge(connection_t *c, edge_t *e) bool send_add_edge(connection_t *c, const edge_t *e)
{ {
bool x; bool x;
char *address, *port; char *address, *port;
@ -163,7 +163,7 @@ bool add_edge_h(connection_t *c)
return true; return true;
} }
bool send_del_edge(connection_t *c, edge_t *e) bool send_del_edge(connection_t *c, const edge_t *e)
{ {
cp(); cp();

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: protocol_key.c,v 1.1.4.21 2003/07/23 22:17:31 guus Exp $ $Id: protocol_key.c,v 1.1.4.22 2003/07/24 12:08:16 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -34,7 +34,7 @@
bool mykeyused = false; bool mykeyused = false;
bool send_key_changed(connection_t *c, node_t *n) bool send_key_changed(connection_t *c, const node_t *n)
{ {
cp(); cp();
@ -82,7 +82,7 @@ bool key_changed_h(connection_t *c)
return true; return true;
} }
bool send_req_key(connection_t *c, node_t *from, node_t *to) bool send_req_key(connection_t *c, const node_t *from, const node_t *to)
{ {
cp(); cp();
@ -133,7 +133,7 @@ bool req_key_h(connection_t *c)
return true; return true;
} }
bool send_ans_key(connection_t *c, node_t *from, node_t *to) bool send_ans_key(connection_t *c, const node_t *from, const node_t *to)
{ {
char key[MAX_STRING_SIZE]; char key[MAX_STRING_SIZE];

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: protocol_misc.c,v 1.1.4.12 2003/07/22 20:55:20 guus Exp $ $Id: protocol_misc.c,v 1.1.4.13 2003/07/24 12:08:16 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -33,7 +33,7 @@
/* Status and error notification routines */ /* Status and error notification routines */
bool send_status(connection_t *c, int statusno, char *statusstring) bool send_status(connection_t *c, int statusno, const char *statusstring)
{ {
cp(); cp();
@ -62,7 +62,7 @@ bool status_h(connection_t *c)
return true; return true;
} }
bool send_error(connection_t *c, int err, char *errstring) bool send_error(connection_t *c, int err, const char *errstring)
{ {
cp(); cp();

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: protocol_subnet.c,v 1.1.4.14 2003/07/22 20:55:20 guus Exp $ $Id: protocol_subnet.c,v 1.1.4.15 2003/07/24 12:08:16 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -33,7 +33,7 @@
#include "utils.h" #include "utils.h"
#include "xalloc.h" #include "xalloc.h"
bool send_add_subnet(connection_t *c, subnet_t *subnet) bool send_add_subnet(connection_t *c, const subnet_t *subnet)
{ {
bool x; bool x;
char *netstr; char *netstr;
@ -122,7 +122,7 @@ bool add_subnet_h(connection_t *c)
return true; return true;
} }
bool send_del_subnet(connection_t *c, subnet_t *s) bool send_del_subnet(connection_t *c, const subnet_t *s)
{ {
bool x; bool x;
char *netstr; char *netstr;

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: subnet.c,v 1.1.2.47 2003/07/17 15:06:27 guus Exp $ $Id: subnet.c,v 1.1.2.48 2003/07/24 12:08:16 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -37,7 +37,7 @@ avl_tree_t *subnet_tree;
/* Subnet comparison */ /* Subnet comparison */
static int subnet_compare_mac(subnet_t *a, subnet_t *b) static int subnet_compare_mac(const subnet_t *a, const subnet_t *b)
{ {
int result; int result;
@ -49,7 +49,7 @@ static int subnet_compare_mac(subnet_t *a, subnet_t *b)
return strcmp(a->owner->name, b->owner->name); return strcmp(a->owner->name, b->owner->name);
} }
static int subnet_compare_ipv4(subnet_t *a, subnet_t *b) static int subnet_compare_ipv4(const subnet_t *a, const subnet_t *b)
{ {
int result; int result;
@ -66,7 +66,7 @@ static int subnet_compare_ipv4(subnet_t *a, subnet_t *b)
return strcmp(a->owner->name, b->owner->name); return strcmp(a->owner->name, b->owner->name);
} }
static int subnet_compare_ipv6(subnet_t *a, subnet_t *b) static int subnet_compare_ipv6(const subnet_t *a, const subnet_t *b)
{ {
int result; int result;
@ -83,7 +83,7 @@ static int subnet_compare_ipv6(subnet_t *a, subnet_t *b)
return strcmp(a->owner->name, b->owner->name); return strcmp(a->owner->name, b->owner->name);
} }
static int subnet_compare(subnet_t *a, subnet_t *b) static int subnet_compare(const subnet_t *a, const subnet_t *b)
{ {
int result; int result;
@ -177,7 +177,7 @@ void subnet_del(node_t *n, subnet_t *subnet)
/* Ascii representation of subnets */ /* Ascii representation of subnets */
subnet_t *str2net(char *subnetstr) subnet_t *str2net(const char *subnetstr)
{ {
int i, l; int i, l;
subnet_t *subnet; subnet_t *subnet;
@ -246,7 +246,7 @@ subnet_t *str2net(char *subnetstr)
return NULL; return NULL;
} }
char *net2str(subnet_t *subnet) char *net2str(const subnet_t *subnet)
{ {
char *netstr; char *netstr;
@ -296,39 +296,41 @@ char *net2str(subnet_t *subnet)
/* Subnet lookup routines */ /* Subnet lookup routines */
subnet_t *lookup_subnet(node_t *owner, subnet_t *subnet) subnet_t *lookup_subnet(const node_t *owner, const subnet_t *subnet)
{ {
cp(); cp();
return avl_search(owner->subnet_tree, subnet); return avl_search(owner->subnet_tree, subnet);
} }
subnet_t *lookup_subnet_mac(mac_t *address) subnet_t *lookup_subnet_mac(const mac_t *address)
{ {
subnet_t subnet, *p; subnet_t subnet = {
.type = SUBNET_MAC,
.net.mac.address = *address,
.owner = NULL
};
subnet_t *p;
cp(); cp();
subnet.type = SUBNET_MAC;
memcpy(&subnet.net.mac.address, address, sizeof(mac_t));
subnet.owner = NULL;
p = (subnet_t *) avl_search(subnet_tree, &subnet); p = (subnet_t *) avl_search(subnet_tree, &subnet);
return p; return p;
} }
subnet_t *lookup_subnet_ipv4(ipv4_t *address) subnet_t *lookup_subnet_ipv4(const ipv4_t *address)
{ {
subnet_t subnet, *p; subnet_t subnet = {
.type = SUBNET_IPV4,
.net.ipv4.address = *address,
.net.ipv4.prefixlength = 32,
.owner = NULL
};
subnet_t *p;
cp(); cp();
subnet.type = SUBNET_IPV4;
memcpy(&subnet.net.ipv4.address, address, sizeof(ipv4_t));
subnet.net.ipv4.prefixlength = 32;
subnet.owner = NULL;
do { do {
/* Go find subnet */ /* Go find subnet */
@ -356,17 +358,18 @@ subnet_t *lookup_subnet_ipv4(ipv4_t *address)
return p; return p;
} }
subnet_t *lookup_subnet_ipv6(ipv6_t *address) subnet_t *lookup_subnet_ipv6(const ipv6_t *address)
{ {
subnet_t subnet, *p; subnet_t subnet = {
.type = SUBNET_IPV6,
.net.ipv6.address = *address,
.net.ipv6.prefixlength = 128,
.owner = NULL
};
subnet_t *p;
cp(); cp();
subnet.type = SUBNET_IPV6;
memcpy(&subnet.net.ipv6.address, address, sizeof(ipv6_t));
subnet.net.ipv6.prefixlength = 128;
subnet.owner = NULL;
do { do {
/* Go find subnet */ /* Go find subnet */

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: subnet.h,v 1.1.2.22 2003/07/22 20:55:20 guus Exp $ $Id: subnet.h,v 1.1.2.23 2003/07/24 12:08:16 guus Exp $
*/ */
#ifndef __TINC_SUBNET_H__ #ifndef __TINC_SUBNET_H__
@ -72,12 +72,12 @@ extern avl_tree_t *new_subnet_tree(void) __attribute__ ((malloc));
extern void free_subnet_tree(avl_tree_t *); extern void free_subnet_tree(avl_tree_t *);
extern void subnet_add(struct node_t *, subnet_t *); extern void subnet_add(struct node_t *, subnet_t *);
extern void subnet_del(struct node_t *, subnet_t *); extern void subnet_del(struct node_t *, subnet_t *);
extern char *net2str(subnet_t *); extern char *net2str(const subnet_t *);
extern subnet_t *str2net(char *); extern subnet_t *str2net(const char *);
extern subnet_t *lookup_subnet(struct node_t *, subnet_t *); extern subnet_t *lookup_subnet(const struct node_t *, const subnet_t *);
extern subnet_t *lookup_subnet_mac(mac_t *); extern subnet_t *lookup_subnet_mac(const mac_t *);
extern subnet_t *lookup_subnet_ipv4(ipv4_t *); extern subnet_t *lookup_subnet_ipv4(const ipv4_t *);
extern subnet_t *lookup_subnet_ipv6(ipv6_t *); extern subnet_t *lookup_subnet_ipv6(const ipv6_t *);
extern void dump_subnets(void); extern void dump_subnets(void);
#endif /* __TINC_SUBNET_H__ */ #endif /* __TINC_SUBNET_H__ */