Ensure forward destinations are only count once when analyzing the "forwarded" lines, i.e. not when analyzing the "query" lines

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER
2017-09-19 22:38:33 +02:00
parent 1fc9620065
commit 93b0586d4f
+11 -7
View File
@@ -13,7 +13,7 @@
char *resolveHostname(const char *addr);
void extracttimestamp(const char *readbuffer, int *querytimestamp, int *overTimetimestamp);
int getforwardID(const char * str);
int getforwardID(const char * str, bool count);
int findDomain(const char *domain);
int findClient(const char *client);
int detectStatus(const char *domain);
@@ -402,7 +402,7 @@ void process_pihole_log(int file)
status = 2;
// Get ID of forward destination, create new forward destination record
// if not found in current data structure
forwardID = getforwardID(readbuffer2);
forwardID = getforwardID(readbuffer2, false);
if(forwardID == -2)
continue;
break;
@@ -614,7 +614,7 @@ void process_pihole_log(int file)
// Get ID of forward destination, create new forward destination record
// if not found in current data structure
int forwardID = getforwardID(readbuffer);
int forwardID = getforwardID(readbuffer, true);
if(forwardID == -2)
continue;
@@ -853,7 +853,7 @@ void extracttimestamp(const char *readbuffer, int *querytimestamp, int *overTime
*overTimetimestamp = *querytimestamp-(*querytimestamp%600)+300;
}
int getforwardID(const char * str)
int getforwardID(const char * str, bool count)
{
// Get forward destination
// forwardstart = pointer to | in "forwarded domain.name| to www.xxx.yyy.zzz\n"
@@ -898,7 +898,8 @@ int getforwardID(const char * str)
if(strcmp(forwarded[i].ip, forward) == 0)
{
forwardID = i;
forwarded[forwardID].count++;
if(count)
forwarded[forwardID].count++;
processed = true;
break;
}
@@ -918,8 +919,11 @@ int getforwardID(const char * str)
validate_access("forwarded", forwardID, false, __LINE__, __FUNCTION__, __FILE__);
// Set magic byte
forwarded[forwardID].magic = MAGICBYTE;
// Set its counter to 1
forwarded[forwardID].count = 1;
// Initialize its counter
if(count)
forwarded[forwardID].count = 1;
else
forwarded[forwardID].count = 0;
// Save IP
forwarded[forwardID].ip = strdup(forward);
memory.forwardedips += (forwardlen + 1) * sizeof(char);