- Removed last reference to genauth from Makefile.am
- Tinc spawns tinc-up and tinc-down scripts which can be used to configure the network device. The environment variable IFNAME is set to the name of the interface.
This commit is contained in:
parent
fba19c30c9
commit
73f7efddd7
3 changed files with 50 additions and 8 deletions
|
@ -1,5 +1,5 @@
|
|||
## Produce this file with automake to get Makefile.in
|
||||
# $Id: Makefile.am,v 1.4.4.3 2000/10/20 16:49:20 guus Exp $
|
||||
# $Id: Makefile.am,v 1.4.4.4 2000/10/20 19:46:57 guus Exp $
|
||||
|
||||
sbin_PROGRAMS = tincd
|
||||
|
||||
|
@ -14,8 +14,6 @@ LIBS = @LIBS@ @INTLLIBS@
|
|||
tincd_LDADD = \
|
||||
$(top_builddir)/lib/libvpn.a
|
||||
|
||||
genauth_LDADD = $(top_builddir)/lib/libvpn.a
|
||||
|
||||
localedir = $(datadir)/locale
|
||||
|
||||
CFLAGS = @CFLAGS@ -DPKGLIBDIR=$(pkglibdir) -DCONFDIR=\"@sysconfdir@\" -DLOCALEDIR=\"$(localedir)\"
|
||||
|
|
49
src/net.c
49
src/net.c
|
@ -17,7 +17,7 @@
|
|||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: net.c,v 1.35.4.41 2000/10/20 15:34:35 guus Exp $
|
||||
$Id: net.c,v 1.35.4.42 2000/10/20 19:46:57 guus Exp $
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
@ -39,6 +39,7 @@
|
|||
|
||||
#ifdef HAVE_TUNTAP
|
||||
#include <net/if.h>
|
||||
#include <linux/sockios.h>
|
||||
#include LINUX_IF_TUN_H
|
||||
#endif
|
||||
|
||||
|
@ -333,7 +334,8 @@ int setup_tap_fd(void)
|
|||
int nfd;
|
||||
const char *tapfname;
|
||||
config_t const *cfg;
|
||||
|
||||
char *envvar;
|
||||
|
||||
#ifdef HAVE_TUNTAP
|
||||
struct ifreq ifr;
|
||||
#endif
|
||||
|
@ -369,12 +371,20 @@ cp
|
|||
{
|
||||
syslog(LOG_INFO, _("%s is a new style tun/tap device"), tapfname);
|
||||
taptype = 1;
|
||||
|
||||
if((cfg = get_config_val(config, tapsubnet)) == NULL)
|
||||
syslog(LOG_INFO, _("tun/tap device will be left unconfigured"));
|
||||
else
|
||||
/* Setup inetaddr/netmask etc */;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Add name of network interface to environment (for scripts) */
|
||||
|
||||
ioctl(tap_fd, SIOCGIFNAME, (void *) &ifr);
|
||||
asprintf(&envvar, "IFNAME=%s", ifr.ifr_name);
|
||||
putenv(envvar);
|
||||
free(envvar);
|
||||
|
||||
cp
|
||||
return 0;
|
||||
|
@ -743,6 +753,7 @@ cp
|
|||
int setup_network_connections(void)
|
||||
{
|
||||
config_t const *cfg;
|
||||
char *scriptname;
|
||||
cp
|
||||
if((cfg = get_config_val(config, pingtimeout)) == NULL)
|
||||
timeout = 5;
|
||||
|
@ -755,6 +766,23 @@ cp
|
|||
if(setup_myself() < 0)
|
||||
return -1;
|
||||
|
||||
/* Run tinc-up script to further initialize the tap interface */
|
||||
|
||||
asprintf(&scriptname, "%s/tinc-up", confbase);
|
||||
|
||||
if(!fork())
|
||||
{
|
||||
|
||||
execl(scriptname, NULL);
|
||||
|
||||
if(errno != ENOENT)
|
||||
syslog(LOG_WARNING, _("Error while executing %s: %m"), scriptname);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
free(scriptname);
|
||||
|
||||
if((cfg = get_next_config_val(config, connectto, upstreamindex++)) == NULL)
|
||||
/* No upstream IP given, we're listen only. */
|
||||
return 0;
|
||||
|
@ -781,6 +809,7 @@ cp
|
|||
void close_network_connections(void)
|
||||
{
|
||||
conn_list_t *p;
|
||||
char *scriptname;
|
||||
cp
|
||||
for(p = conn_list; p != NULL; p = p->next)
|
||||
{
|
||||
|
@ -804,6 +833,22 @@ cp
|
|||
close(myself->socket);
|
||||
}
|
||||
|
||||
/* Execute tinc-down script right before shutting down the interface */
|
||||
|
||||
asprintf(&scriptname, "%s/tinc-down", confbase);
|
||||
|
||||
if(!fork())
|
||||
{
|
||||
execl(scriptname, NULL);
|
||||
|
||||
if(errno != ENOENT)
|
||||
syslog(LOG_WARNING, _("Error while executing %s: %m"), scriptname);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
free(scriptname);
|
||||
|
||||
close(tap_fd);
|
||||
destroy_conn_list();
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id: tincd.c,v 1.10.4.13 2000/10/20 16:49:20 guus Exp $
|
||||
$Id: tincd.c,v 1.10.4.14 2000/10/20 19:46:58 guus Exp $
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
@ -373,7 +373,6 @@ void make_names(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
netname = "bla";
|
||||
if(!pidfilename)
|
||||
pidfilename = "/var/run/tinc.pid";
|
||||
if(!confbase)
|
||||
|
@ -570,7 +569,7 @@ setup_signals(void)
|
|||
signal(SIGINT, sigint_handler);
|
||||
signal(SIGUSR1, sigusr1_handler);
|
||||
signal(SIGUSR2, sigusr2_handler);
|
||||
// signal(SIGCHLD, parent_exit);
|
||||
signal(SIGCHLD, SIG_IGN);
|
||||
}
|
||||
|
||||
RETSIGTYPE parent_exit(int a)
|
||||
|
|
Loading…
Reference in a new issue