[PATCH] innfeed does not reopen (rotated) log file

Julien ÉLIE julien at trigofacile.com
Mon Jan 7 18:47:18 UTC 2013

Hi Russ,

>>> I just noticed that innfeed keeps open a deleted log/innfeed.log, while
>>> the current log/innfeed.log as well as all the available OLD logs are
>>> empty!
>>> The reason seems to be that rotation of innfeed.log was added to
>>> scanlogs for INN 2.5, but scanlogs doesn't send a signal for innfeed to
>>> reopen its log; and indeed there is (currently) no way to cause a
>>> running innfeed to do so.
> I have (finally) applied this patch to CURRENT and to the 2.5 branch.
> Thanks!  It's less than ideal, since innfeed really needs some mechanism
> to let go of that file, but it's better than what we're currently doing.

In innfeed/main.c, there is an openLogFile() function that does a 
freopen() of the innfeed log file.

Couldn't we just add a call to openLogFile() in the existing sighup() 
function in main.c?  This sighup() function currently reloads 
innfeed.conf and reconfigure hosts.

static void sighup (int sig UNUSED)
   notice ("ME reloading config file %s", configFile) ;

   if (!readConfig (configFile,NULL,false,loggingLevel > 0))
       die ("ME config aborting, error parsing config file") ;

   configHosts (talkToSelf) ;

We could either add openLogFile() here or create a new signal handler like:

setSigHandler(SIGUSR1, sigusr1);

static void sigusr1 (int sig UNUSED)
   notice ("ME reloading log file %s", logFile) ;

I do not know, though, whether SIGUSR1 is portable...

Julien ÉLIE

« Ex nihilo nihil. » (Perse)

More information about the inn-workers mailing list