Removed lots of compiler warnings.

This commit is contained in:
Guus Sliepen 2001-02-27 16:37:31 +00:00
parent 173d606514
commit 4fa12eb85d
5 changed files with 95 additions and 161 deletions

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.22 2001/01/13 16:36:21 guus Exp $ $Id: conf.h,v 1.6.4.23 2001/02/27 16:37:24 guus Exp $
*/ */
#ifndef __TINC_CONF_H__ #ifndef __TINC_CONF_H__
@ -100,5 +100,6 @@ extern const config_t *get_config_val(config_t *, which_t type);
extern void clear_config(); extern void clear_config();
extern int read_server_config(void); extern int read_server_config(void);
extern FILE *ask_and_safe_open(const char*, const char*, const char *); extern FILE *ask_and_safe_open(const char*, const char*, const char *);
extern int is_safe_path(const char *);
#endif /* __TINC_CONF_H__ */ #endif /* __TINC_CONF_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: net.c,v 1.35.4.99 2001/02/27 16:17:04 guus Exp $ $Id: net.c,v 1.35.4.100 2001/02/27 16:37:25 guus Exp $
*/ */
#include "config.h" #include "config.h"
@ -971,76 +971,6 @@ cp
return; return;
} }
/*
create a data (udp) socket
OBSOLETED: use only one listening socket for compatibility with non-Linux operating systems
*/
int setup_vpn_connection(connection_t *cl)
{
int nfd, flags;
struct sockaddr_in a;
const int one = 1;
cp
if(debug_lvl >= DEBUG_TRAFFIC)
syslog(LOG_DEBUG, _("Opening UDP socket to %s"), cl->hostname);
nfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if(nfd == -1)
{
syslog(LOG_ERR, _("Creating UDP socket failed: %m"));
return -1;
}
setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
flags = fcntl(nfd, F_GETFL);
if(fcntl(nfd, F_SETFL, flags | O_NONBLOCK) < 0)
{
close(nfd);
syslog(LOG_ERR, _("System call `%s' failed: %m"),
"fcntl");
return -1;
}
memset(&a, 0, sizeof(a));
a.sin_family = AF_INET;
a.sin_port = htons(myself->port);
a.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(nfd, (struct sockaddr *)&a, sizeof(struct sockaddr)))
{
close(nfd);
syslog(LOG_ERR, _("Can't bind to port %hd/udp: %m"), myself->port);
return -1;
}
a.sin_family = AF_INET;
a.sin_port = htons(cl->port);
a.sin_addr.s_addr = htonl(cl->address);
if(connect(nfd, (struct sockaddr *)&a, sizeof(a)) == -1)
{
close(nfd);
syslog(LOG_ERR, _("Connecting to %s port %d failed: %m"),
cl->hostname, cl->port);
return -1;
}
flags = fcntl(nfd, F_GETFL);
if(fcntl(nfd, F_SETFL, flags | O_NONBLOCK) < 0)
{
close(nfd);
syslog(LOG_ERR, _("This is a bug: %s:%d: %d:%m %s (%s)"), __FILE__, __LINE__, nfd,
cl->name, cl->hostname);
return -1;
}
cl->socket = nfd;
cl->status.dataopen = 1;
cp
return 0;
}
/* /*
handle an incoming tcp connect call and open handle an incoming tcp connect call and open
a connection to it. a connection to it.

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.27 2001/01/07 20:19:31 guus Exp $ $Id: net.h,v 1.9.4.28 2001/02/27 16:37:28 guus Exp $
*/ */
#ifndef __TINC_NET_H__ #ifndef __TINC_NET_H__
@ -117,7 +117,6 @@ extern int receive_packet(connection_t *, vpn_packet_t *);
extern int setup_network_connections(void); extern int setup_network_connections(void);
extern void close_network_connections(void); extern void close_network_connections(void);
extern void main_loop(void); extern void main_loop(void);
extern int setup_vpn_connection(connection_t *);
extern void terminate_connection(connection_t *); extern void terminate_connection(connection_t *);
extern void flush_queue(connection_t *); extern void flush_queue(connection_t *);

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.82 2001/02/26 11:37:20 guus Exp $ $Id: protocol.c,v 1.28.4.83 2001/02/27 16:37:28 guus Exp $
*/ */
#include "config.h" #include "config.h"
@ -271,6 +271,88 @@ cp
return send_metakey(cl); return send_metakey(cl);
} }
int ack_h(connection_t *cl)
{
config_t const *cfg;
connection_t *old, *p;
subnet_t *subnet;
avl_node_t *node, *node2;
cp
/* Okay, before we active the connection, we check if there is another entry
in the connection list with the same name. If so, it presumably is an
old connection that has timed out but we don't know it yet.
*/
while((old = lookup_id(cl->name)))
{
if(debug_lvl >= DEBUG_CONNECTIONS)
syslog(LOG_NOTICE, _("Removing old entry for %s at %s in favour of new connection from %s"),
cl->name, old->hostname, cl->hostname);
terminate_connection(old);
}
/* Activate this connection */
cl->allow_request = ALL;
cl->status.active = 1;
cl->nexthop = cl;
cl->cipher_pkttype = EVP_bf_cbc();
cl->cipher_pktkeylength = cl->cipher_pkttype->key_len + cl->cipher_pkttype->iv_len;
if(debug_lvl >= DEBUG_CONNECTIONS)
syslog(LOG_NOTICE, _("Connection with %s (%s) activated"), cl->name, cl->hostname);
cp
/* Check some options */
if((cfg = get_config_val(cl->config, config_indirectdata)))
{
if(cfg->data.val == stupid_true)
cl->options |= OPTION_INDIRECT;
}
if((cfg = get_config_val(cl->config, config_tcponly)))
{
if(cfg->data.val == stupid_true)
cl->options |= OPTION_TCPONLY;
}
/* Send him our subnets */
for(node = myself->subnet_tree->head; node; node = node->next)
{
subnet = (subnet_t *)node->data;
send_add_subnet(cl, subnet);
}
/* And send him all the hosts and their subnets we know... */
for(node = connection_tree->head; node; node = node->next)
{
p = (connection_t *)node->data;
if(p != cl && p->status.active)
{
/* Notify others of this connection */
if(p->status.meta)
send_add_host(p, cl);
/* Notify new connection of everything we know */
send_add_host(cl, p);
for(node2 = p->subnet_tree->head; node2; node2 = node2->next)
{
subnet = (subnet_t *)node2->data;
send_add_subnet(cl, subnet);
}
}
}
cp
return 0;
}
int send_challenge(connection_t *cl) int send_challenge(connection_t *cl)
{ {
char *buffer; char *buffer;
@ -539,88 +621,6 @@ cp
return send_challenge(cl); return send_challenge(cl);
} }
int ack_h(connection_t *cl)
{
config_t const *cfg;
connection_t *old, *p;
subnet_t *subnet;
avl_node_t *node, *node2;
cp
/* Okay, before we active the connection, we check if there is another entry
in the connection list with the same name. If so, it presumably is an
old connection that has timed out but we don't know it yet.
*/
while((old = lookup_id(cl->name)))
{
if(debug_lvl >= DEBUG_CONNECTIONS)
syslog(LOG_NOTICE, _("Removing old entry for %s at %s in favour of new connection from %s"),
cl->name, old->hostname, cl->hostname);
terminate_connection(old);
}
/* Activate this connection */
cl->allow_request = ALL;
cl->status.active = 1;
cl->nexthop = cl;
cl->cipher_pkttype = EVP_bf_cbc();
cl->cipher_pktkeylength = cl->cipher_pkttype->key_len + cl->cipher_pkttype->iv_len;
if(debug_lvl >= DEBUG_CONNECTIONS)
syslog(LOG_NOTICE, _("Connection with %s (%s) activated"), cl->name, cl->hostname);
cp
/* Check some options */
if((cfg = get_config_val(cl->config, config_indirectdata)))
{
if(cfg->data.val == stupid_true)
cl->options |= OPTION_INDIRECT;
}
if((cfg = get_config_val(cl->config, config_tcponly)))
{
if(cfg->data.val == stupid_true)
cl->options |= OPTION_TCPONLY;
}
/* Send him our subnets */
for(node = myself->subnet_tree->head; node; node = node->next)
{
subnet = (subnet_t *)node->data;
send_add_subnet(cl, subnet);
}
/* And send him all the hosts and their subnets we know... */
for(node = connection_tree->head; node; node = node->next)
{
p = (connection_t *)node->data;
if(p != cl && p->status.active)
{
/* Notify others of this connection */
if(p->status.meta)
send_add_host(p, cl);
/* Notify new connection of everything we know */
send_add_host(cl, p);
for(node2 = p->subnet_tree->head; node2; node2 = node2->next)
{
subnet = (subnet_t *)node2->data;
send_add_subnet(cl, subnet);
}
}
}
cp
return 0;
}
/* Address and subnet information exchange */ /* Address and subnet information exchange */
int send_add_subnet(connection_t *cl, subnet_t *subnet) int send_add_subnet(connection_t *cl, subnet_t *subnet)
@ -798,6 +798,8 @@ cp
if(!(cl->options & OPTION_INDIRECT)) if(!(cl->options & OPTION_INDIRECT))
return send_request(cl, "%d %s %lx:%d %lx", ADD_HOST, return send_request(cl, "%d %s %lx:%d %lx", ADD_HOST,
other->name, other->address, other->port, other->options); other->name, other->address, other->port, other->options);
else
return 0;
} }
int add_host_h(connection_t *cl) int add_host_h(connection_t *cl)
@ -808,7 +810,7 @@ int add_host_h(connection_t *cl)
cp cp
new = new_connection(); new = new_connection();
if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%d %lx", name, &new->address, &new->port, &new->options) != 4) if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%hd %lx", name, &new->address, &new->port, &new->options) != 4)
{ {
syslog(LOG_ERR, _("Got bad ADD_HOST from %s (%s)"), cl->name, cl->hostname); syslog(LOG_ERR, _("Got bad ADD_HOST from %s (%s)"), cl->name, cl->hostname);
return -1; return -1;
@ -890,6 +892,8 @@ cp
if(!(cl->options & OPTION_INDIRECT)) if(!(cl->options & OPTION_INDIRECT))
return send_request(cl, "%d %s %lx:%d %lx", DEL_HOST, return send_request(cl, "%d %s %lx:%d %lx", DEL_HOST,
other->name, other->address, other->port, other->options); other->name, other->address, other->port, other->options);
else
return 0;
} }
int del_host_h(connection_t *cl) int del_host_h(connection_t *cl)
@ -901,7 +905,7 @@ int del_host_h(connection_t *cl)
connection_t *old, *p; connection_t *old, *p;
avl_node_t *node; avl_node_t *node;
cp cp
if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%d %lx", name, &address, &port, &options) != 4) if(sscanf(cl->buffer, "%*d "MAX_STRING" %lx:%hd %lx", name, &address, &port, &options) != 4)
{ {
syslog(LOG_ERR, _("Got bad DEL_HOST from %s (%s)"), syslog(LOG_ERR, _("Got bad DEL_HOST from %s (%s)"),
cl->name, cl->hostname); cl->name, cl->hostname);

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: tincd.c,v 1.10.4.43 2001/02/25 14:51:42 guus Exp $ $Id: tincd.c,v 1.10.4.44 2001/02/27 16:37:31 guus Exp $
*/ */
#include "config.h" #include "config.h"
@ -246,7 +246,7 @@ int keygen(int bits)
if(config && (cfg = get_config_val(config, config_name))) if(config && (cfg = get_config_val(config, config_name)))
asprintf(&filename, "%s/hosts/%s", confbase, cfg->data.ptr); asprintf(&filename, "%s/hosts/%s", confbase, cfg->data.ptr);
else else
asprintf(&filename, "%s/rsa_key.priv"); asprintf(&filename, "%s/rsa_key.priv", confbase);
if((f = ask_and_safe_open(filename, _("public RSA key"), "a")) == NULL) if((f = ask_and_safe_open(filename, _("public RSA key"), "a")) == NULL)
return -1; return -1;