along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: net_setup.c,v 1.1.2.8 2002/03/01 14:09:31 guus Exp $
+ $Id: net_setup.c,v 1.1.2.14 2002/04/01 21:28:39 guus Exp $
*/
#include "config.h"
return -1;
}
-int check_rsa_key(RSA *rsa_key)
-{
- char *test1, *test2, *test3;
-cp
- if(rsa_key->p && rsa_key->q)
- {
- if(RSA_check_key(rsa_key) != 1)
- return -1;
- }
- else
- {
- test1 = xmalloc(RSA_size(rsa_key));
- test2 = xmalloc(RSA_size(rsa_key));
- test3 = xmalloc(RSA_size(rsa_key));
-
- if(RSA_public_encrypt(RSA_size(rsa_key), test1, test2, rsa_key, RSA_NO_PADDING) != RSA_size(rsa_key))
- return -1;
-
- if(RSA_private_decrypt(RSA_size(rsa_key), test2, test3, rsa_key, RSA_NO_PADDING) != RSA_size(rsa_key))
- return -1;
-
- if(memcmp(test1, test3, RSA_size(rsa_key)))
- return -1;
- }
-cp
- return 0;
-}
-
/*
Configure node_t myself and set up the local sockets (listen only)
*/
return -1;
cp
- if(check_rsa_key(myself->connection->rsa_key))
- {
- syslog(LOG_ERR, _("Invalid public/private keypair!"));
- return -1;
- }
-
if(!get_config_string(lookup_config(myself->connection->config_tree, "Port"), &myport))
asprintf(&myport, "655");
routing_mode = RMODE_ROUTER;
get_config_bool(lookup_config(config_tree, "PriorityInheritance"), &priorityinheritance);
+#if !defined(SOL_IP) || !defined(IP_TOS)
+ if(priorityinheritance)
+ syslog(LOG_WARNING, _("PriorityInheritance not supported on this platform"));
+#endif
if(!get_config_int(lookup_config(config_tree, "MACExpire"), &macexpire))
macexpire= 600;
myself->nexthop = myself;
myself->via = myself;
myself->status.active = 1;
+ myself->status.reachable = 1;
node_add(myself);
graph();
for(aip = ai; aip; aip = aip->ai_next)
{
- if((tcp_socket[listen_sockets] = setup_listen_socket((sockaddr_t *)aip->ai_addr)) < 0)
+ if((listen_socket[listen_sockets].tcp = setup_listen_socket((sockaddr_t *)aip->ai_addr)) < 0)
continue;
- if((udp_socket[listen_sockets] = setup_vpn_in_socket((sockaddr_t *)aip->ai_addr)) < 0)
+ if((listen_socket[listen_sockets].udp = setup_vpn_in_socket((sockaddr_t *)aip->ai_addr)) < 0)
continue;
if(debug_lvl >= DEBUG_CONNECTIONS)
free(hostname);
}
+ listen_socket[listen_sockets].sa.sa = *aip->ai_addr;
listen_sockets++;
}
init_nodes();
init_edges();
init_events();
+ init_requests();
if(get_config_int(lookup_config(config_tree, "PingTimeout"), &pingtimeout))
{
next = node->next;
c = (connection_t *)node->data;
if(c->outgoing)
- free(c->outgoing->name), free(c->outgoing);
+ free(c->outgoing->name), free(c->outgoing), c->outgoing = NULL;
terminate_connection(c, 0);
}
for(i = 0; i < listen_sockets; i++)
{
- close(udp_socket[i]);
- close(tcp_socket[i]);
+ close(listen_socket[i].tcp);
+ close(listen_socket[i].udp);
}
+ exit_requests();
exit_events();
exit_edges();
exit_subnets();