Files
FTL/structs.c
T
Mcat12 595ab259ca Remove HTTP API specific code so it can be replaced with a new protocol
Adjusted tests to fit the current lack of output on the unix socket.
Added TELNET enum and used it in place of the old SOCKET to better fit
with the rest of the code base.

Signed-off-by: Mcat12 <newtoncat12@yahoo.com>
2018-01-03 20:16:50 -05:00

127 lines
3.6 KiB
C

/* Pi-hole: A black hole for Internet advertisements
* (c) 2017 Pi-hole, LLC (https://pi-hole.net)
* Network-wide ad blocking via your own hardware.
*
* FTL Engine
* Global variable definitions and memory reallocation handling
*
* This file is copyright under the latest version of the EUPL.
* Please see LICENSE file for your rights under this license. */
#include "FTL.h"
FTLFileNamesStruct FTLfiles = {
"/etc/pihole/pihole-FTL.conf",
"/var/log/pihole-FTL.log",
"/var/run/pihole-FTL.pid",
"/var/run/pihole-FTL.port",
NULL,
"/var/run/pihole/FTL.sock"
};
logFileNamesStruct files = {
"/var/log/pihole.log",
"/var/log/pihole.log.1",
"/etc/pihole/list.preEventHorizon",
"/etc/pihole/whitelist.txt",
"/etc/pihole/blacklist.txt",
"/etc/pihole/setupVars.conf",
"/etc/dnsmasq.d/01-pihole.conf",
"/etc/dnsmasq.d/03-pihole-wildcard.conf",
"/etc/pihole/auditlog.list",
"/etc/dnsmasq.d/01-pihole.conf"
};
countersStruct counters = { 0 };
void memory_check(int which)
{
switch(which)
{
case QUERIES:
if(counters.queries >= counters.queries_MAX)
{
// Have to reallocate memory
counters.queries_MAX += QUERIESALLOCSTEP;
logg_struct_resize("queries",counters.queries_MAX,QUERIESALLOCSTEP);
queries = realloc(queries, counters.queries_MAX*sizeof(queriesDataStruct));
if(queries == NULL)
{
logg("FATAL: Memory allocation failed! Exiting");
exit(EXIT_FAILURE);
}
}
break;
case FORWARDED:
if(counters.forwarded >= counters.forwarded_MAX)
{
// Have to reallocate memory
counters.forwarded_MAX += FORWARDEDALLOCSTEP;
logg_struct_resize("forwarded",counters.forwarded_MAX,FORWARDEDALLOCSTEP);
forwarded = realloc(forwarded, counters.forwarded_MAX*sizeof(forwardedDataStruct));
if(forwarded == NULL)
{
logg("FATAL: Memory allocation failed! Exiting");
exit(EXIT_FAILURE);
}
}
break;
case CLIENTS:
if(counters.clients >= counters.clients_MAX)
{
// Have to reallocate memory
counters.clients_MAX += CLIENTSALLOCSTEP;
logg_struct_resize("clients",counters.clients_MAX,CLIENTSALLOCSTEP);
clients = realloc(clients, counters.clients_MAX*sizeof(clientsDataStruct));
if(clients == NULL)
{
logg("FATAL: Memory allocation failed! Exiting");
exit(EXIT_FAILURE);
}
}
break;
case DOMAINS:
if(counters.domains >= counters.domains_MAX)
{
// Have to reallocate memory
counters.domains_MAX += DOMAINSALLOCSTEP;
logg_struct_resize("domains",counters.domains_MAX,DOMAINSALLOCSTEP);
domains = realloc(domains, counters.domains_MAX*sizeof(domainsDataStruct));
if(domains == NULL)
{
logg("FATAL: Memory allocation failed! Exiting");
exit(EXIT_FAILURE);
}
}
break;
case OVERTIME:
if(counters.overTime >= counters.overTime_MAX)
{
// Have to reallocate memory
counters.overTime_MAX += OVERTIMEALLOCSTEP;
logg_struct_resize("overTime",counters.overTime_MAX,OVERTIMEALLOCSTEP);
overTime = realloc(overTime, counters.overTime_MAX*sizeof(overTimeDataStruct));
if(overTime == NULL)
{
logg("FATAL: Memory allocation failed! Exiting");
exit(EXIT_FAILURE);
}
}
break;
case WILDCARD:
// Definitely enlarge wildcard entry
// Enlarge wildcarddomains pointer array
logg_struct_resize("wildcards", (counters.wildcarddomains+1), 1);
wildcarddomains = realloc(wildcarddomains, (counters.wildcarddomains+1)*sizeof(*wildcarddomains));
if(wildcarddomains == NULL)
{
logg("FATAL: Memory allocation failed! Exiting");
exit(EXIT_FAILURE);
}
break;
default:
/* That cannot happen */
break;
}
}