- 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:
Guus Sliepen 2000-10-20 19:46:58 +00:00
parent fba19c30c9
commit 73f7efddd7
3 changed files with 50 additions and 8 deletions

View file

@ -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)\"

View file

@ -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();

View file

@ -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)