/*
net_setup.c -- Setup.
- Copyright (C) 1998-2002 Ivo Timmermans <itimmermans@bigfoot.com>,
- 2000-2002 Guus Sliepen <guus@sliepen.warande.net>
+ Copyright (C) 1998-2002 Ivo Timmermans <ivo@o2w.nl>,
+ 2000-2002 Guus Sliepen <guus@sliepen.eu.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
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.17 2002/06/08 12:57:10 guus Exp $
+ $Id: net_setup.c,v 1.1.2.23 2002/09/04 13:48:52 guus Exp $
*/
#include "config.h"
#include <fcntl.h>
#include <netdb.h>
#include <netinet/in.h>
+#ifdef HAVE_NETINET_IN_SYSTM_H
+ #include <netinet/in_systm.h>
+#endif
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif
return -1;
}
+ listen_sockets = 0;
+
for(aip = ai; aip; aip = aip->ai_next)
{
if((listen_socket[listen_sockets].tcp = setup_listen_socket((sockaddr_t *)aip->ai_addr)) < 0)
*/
int setup_network_connections(void)
{
+ char *envp[4];
+ int i;
cp
now = time(NULL);
return -1;
/* Run tinc-up script to further initialize the tap interface */
- execute_script("tinc-up");
+ asprintf(&envp[0], "NETNAME=%s", netname?netname:"");
+ asprintf(&envp[1], "DEVICE=%s", device?device:"");
+ asprintf(&envp[2], "INTERFACE=%s", interface?interface:"");
+ envp[3] = NULL;
+
+ execute_script("tinc-up", envp);
+
+ for(i = 0; i < 4; i++)
+ free(envp[i]);
if(setup_myself() < 0)
return -1;
{
avl_node_t *node, *next;
connection_t *c;
+ char *envp[4];
int i;
cp
for(node = connection_tree->head; node; node = next)
exit_nodes();
exit_connections();
- execute_script("tinc-down");
+ asprintf(&envp[0], "NETNAME=%s", netname?netname:"");
+ asprintf(&envp[1], "DEVICE=%s", device?device:"");
+ asprintf(&envp[2], "INTERFACE=%s", interface?interface:"");
+ envp[3] = NULL;
+
+ execute_script("tinc-down", envp);
+
+ for(i = 0; i < 4; i++)
+ free(envp[i]);
close_device();
cp