Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Jan 2002 02:11:30 -0500
From:      "Matthew Emmerton" <matt@gsicomp.on.ca>
To:        "Nick Rogness" <nick@rogness.net>, "Clemens Hermann" <haribeau@gmx.de>
Cc:        "BSD NET-List" <freebsd-net@FreeBSD.ORG>
Subject:   Re: natd restart
Message-ID:  <003c01c1a701$da5209e0$1200a8c0@gsicomp.on.ca>
References:  <Pine.BSF.4.21.0201270011300.6340-100000@cody.jharris.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.

------=_NextPart_000_0038_01C1A6D7.EFE5AA70
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

> On Sat, 26 Jan 2002, Clemens Hermann wrote:
> 
> > Hi,
> > 
> > Is there a way to get natd to reload the config-file without
> > terminating?
> 
> There is a natd patch, running around here somewhere, that allows
> you to send a HUP signal to natd and have it reload the config.
> 
> You will have to search the mailling list archive to find out
> who/what/when/where/why etc.

Here's the patch that I wrote some time ago.  YMMV.

--
Matt Emmerton

------=_NextPart_000_0038_01C1A6D7.EFE5AA70
Content-Type: application/octet-stream;
	name="natd.readcfg.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="natd.readcfg.patch"

--- natd.c.orig	Wed Aug 29 09:18:23 2001=0A=
+++ natd.c	Wed Aug 29 18:00:25 2001=0A=
@@ -85,7 +85,7 @@=0A=
 static void	SetAliasAddressFromIfName (const char *ifName);=0A=
 static void	InitiateShutdown (int);=0A=
 static void	Shutdown (int);=0A=
-static void	RefreshAddr (int);=0A=
+static void	Refresh (int);=0A=
 static void	ParseOption (const char* option, const char* parms);=0A=
 static void	ReadConfigFile (const char* fileName);=0A=
 static void	SetupPortRedirect (const char* parms);=0A=
@@ -107,6 +107,7 @@=0A=
 static	int			verbose;=0A=
 static 	int			background;=0A=
 static	int			running;=0A=
+static	char*			nameConfigFile;=0A=
 static	int			assignAliasAddr;=0A=
 static	char*			ifName;=0A=
 static  int			ifIndex;=0A=
@@ -297,7 +298,7 @@=0A=
 	siginterrupt(SIGTERM, 1);=0A=
 	siginterrupt(SIGHUP, 1);=0A=
 	signal (SIGTERM, InitiateShutdown);=0A=
-	signal (SIGHUP, RefreshAddr);=0A=
+	signal (SIGHUP, Refresh);=0A=
 /*=0A=
  * Set alias address if it has been given.=0A=
  */=0A=
@@ -825,10 +826,12 @@=0A=
 		warn ("%s", msg);=0A=
 }=0A=
 =0A=
-static void RefreshAddr (int sig)=0A=
+static void Refresh (int sig)=0A=
 {=0A=
 	if (ifName)=0A=
 		assignAliasAddr =3D 1;=0A=
+	if (nameConfigFile)=0A=
+		ReadConfigFile(nameConfigFile);=0A=
 }=0A=
 =0A=
 static void InitiateShutdown (int sig)=0A=
@@ -1243,6 +1246,7 @@=0A=
 =0A=
 	case ConfigFile:=0A=
 		ReadConfigFile (strValue);=0A=
+		nameConfigFile =3D strdup(strValue);=0A=
 		break;=0A=
 =0A=
 	case LogDenied:=0A=
@@ -1286,6 +1290,8 @@=0A=
 	file =3D fopen (fileName, "r");=0A=
 	if (!file)=0A=
 		err(1, "cannot open config file %s", fileName);=0A=
+=0A=
+	syslog(LOG_INFO, "Using configuration in %s", fileName);=0A=
 =0A=
 	while ((buf =3D fgetln(file, &len)) !=3D NULL) {=0A=
 		if (buf[len - 1] =3D=3D '\n')=0A=

------=_NextPart_000_0038_01C1A6D7.EFE5AA70--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?003c01c1a701$da5209e0$1200a8c0>