mirror of
https://github.com/pi-hole/FTL.git
synced 2024-10-26 16:52:18 +02:00
Merge pull request #151 from pi-hole/fix/dnsmasq_reload
Re-parse gravity data when receiving SIGHUP
This commit is contained in:
@@ -231,3 +231,4 @@ bool database;
|
||||
long int lastdbindex;
|
||||
bool travis;
|
||||
bool DBdeleteoldqueries;
|
||||
bool rereadgravity;
|
||||
|
||||
@@ -137,6 +137,16 @@ int main (int argc, char* argv[]) {
|
||||
while(((time(NULL)%DBinterval) == 0))
|
||||
sleepms(100);
|
||||
}
|
||||
|
||||
// Handle SIGHUP
|
||||
if(rereadgravity)
|
||||
{
|
||||
enable_thread_lock("pihole_main_thread");
|
||||
// Have to re-read gravity files
|
||||
rereadgravity = false;
|
||||
read_gravity_files();
|
||||
disable_thread_lock("pihole_main_thread");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -704,16 +704,6 @@ void process_pihole_log(int file)
|
||||
validate_access_oTfd(timeidx, forwardID, __LINE__, __FUNCTION__, __FILE__);
|
||||
overTime[timeidx].forwarddata[forwardID]++;
|
||||
}
|
||||
else if((strstr(readbuffer,"IPv6") != NULL) &&
|
||||
(strstr(readbuffer,"DBus") != NULL) &&
|
||||
(strstr(readbuffer,"i18n") != NULL) &&
|
||||
(strstr(readbuffer,"DHCP") != NULL) &&
|
||||
!initialscan)
|
||||
{
|
||||
// dnsmasq restartet
|
||||
logg("dnsmasq process restarted");
|
||||
read_gravity_files();
|
||||
}
|
||||
|
||||
// Save file pointer position, because we might have to repeat
|
||||
// reading the next line if dnsmasq hasn't finished writing it
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
volatile sig_atomic_t killed = 0;
|
||||
int FTLstarttime = 0;
|
||||
bool rereadgravity = false;
|
||||
|
||||
static void SIGTERM_handler(int sig, siginfo_t *si, void *unused)
|
||||
{
|
||||
@@ -69,10 +70,16 @@ static void SIGSEGV_handler(int sig, siginfo_t *si, void *unused)
|
||||
|
||||
static void SIGUSR1_handler(int signum)
|
||||
{
|
||||
logg("NOTICE: Received signal SIGUSR1");
|
||||
logg("NOTICE: Received signal SIGUSR1 - re-parsing log files");
|
||||
flush = true;
|
||||
}
|
||||
|
||||
static void SIGHUP_handler(int signum)
|
||||
{
|
||||
logg("NOTICE: Received signal SIGHUP - re-reading gravity files");
|
||||
rereadgravity = true;
|
||||
}
|
||||
|
||||
void handle_signals(void)
|
||||
{
|
||||
// Catch SIGTERM
|
||||
@@ -126,6 +133,17 @@ void handle_signals(void)
|
||||
sigaction(SIGUSR1, &USR1action, NULL);
|
||||
}
|
||||
|
||||
// Catch SIGHUP
|
||||
sigaction (SIGHUP, NULL, &old_action);
|
||||
if(old_action.sa_handler != SIG_IGN)
|
||||
{
|
||||
struct sigaction HUPaction;
|
||||
memset(&HUPaction, 0, sizeof(struct sigaction));
|
||||
sigemptyset(&HUPaction.sa_mask);
|
||||
HUPaction.sa_handler = &SIGHUP_handler;
|
||||
sigaction(SIGHUP, &HUPaction, NULL);
|
||||
}
|
||||
|
||||
// Log start time of FTL
|
||||
FTLstarttime = time(NULL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user