Skip to content

Commit 844c8b9

Browse files
authored
Merge pull request #1486 from pi-hole/development
FTL v5.19.2
2 parents b48b3e1 + f4c9460 commit 844c8b9

File tree

8 files changed

+7638
-2891
lines changed

8 files changed

+7638
-2891
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
cmake_minimum_required(VERSION 2.8.12)
1212
project(PIHOLE_FTL C)
1313

14-
set(DNSMASQ_VERSION pi-hole-v2.88test3)
14+
set(DNSMASQ_VERSION pi-hole-v2.88rc1)
1515

1616
add_subdirectory(src)

src/database/message-table.c

+51-54
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ bool flush_message_table(void)
150150
return true;
151151
}
152152

153-
static bool add_message(const enum message_type type, const bool unique,
153+
static bool add_message(const enum message_type type,
154154
const char *message, const int count,...)
155155
{
156156
bool okay = false;
@@ -166,55 +166,52 @@ static bool add_message(const enum message_type type, const bool unique,
166166
return false;
167167
}
168168

169-
// Ensure there are no duplicates when adding host name or rate-limiting messages
170-
if(unique)
171-
{
172-
sqlite3_stmt* stmt = NULL;
173-
const char *querystr = "DELETE FROM message WHERE type = ?1 AND message = ?2";
174-
int rc = sqlite3_prepare_v2(db, querystr, -1, &stmt, NULL);
175-
if( rc != SQLITE_OK ){
176-
logg("add_message(type=%u, message=%s) - SQL error prepare DELETE: %s",
177-
type, message, sqlite3_errstr(rc));
178-
goto end_of_add_message;
179-
}
180-
181-
// Bind type to prepared statement
182-
if((rc = sqlite3_bind_text(stmt, 1, message_types[type], -1, SQLITE_STATIC)) != SQLITE_OK)
183-
{
184-
logg("add_message(type=%u, message=%s) - Failed to bind type DELETE: %s",
185-
type, message, sqlite3_errstr(rc));
186-
sqlite3_reset(stmt);
187-
sqlite3_finalize(stmt);
188-
goto end_of_add_message;
189-
}
169+
// Ensure there are no duplicates when adding messages
170+
sqlite3_stmt* stmt = NULL;
171+
const char *querystr = "DELETE FROM message WHERE type = ?1 AND message = ?2";
172+
int rc = sqlite3_prepare_v2(db, querystr, -1, &stmt, NULL);
173+
if( rc != SQLITE_OK ){
174+
logg("add_message(type=%u, message=%s) - SQL error prepare DELETE: %s",
175+
type, message, sqlite3_errstr(rc));
176+
goto end_of_add_message;
177+
}
190178

191-
// Bind message to prepared statement
192-
if((rc = sqlite3_bind_text(stmt, 2, message, -1, SQLITE_STATIC)) != SQLITE_OK)
193-
{
194-
logg("add_message(type=%u, message=%s) - Failed to bind message DELETE: %s",
195-
type, message, sqlite3_errstr(rc));
196-
sqlite3_reset(stmt);
197-
sqlite3_finalize(stmt);
198-
goto end_of_add_message;
199-
}
179+
// Bind type to prepared statement
180+
if((rc = sqlite3_bind_text(stmt, 1, message_types[type], -1, SQLITE_STATIC)) != SQLITE_OK)
181+
{
182+
logg("add_message(type=%u, message=%s) - Failed to bind type DELETE: %s",
183+
type, message, sqlite3_errstr(rc));
184+
sqlite3_reset(stmt);
185+
sqlite3_finalize(stmt);
186+
goto end_of_add_message;
187+
}
200188

201-
// Execute and finalize
202-
if((rc = sqlite3_step(stmt)) != SQLITE_OK && rc != SQLITE_DONE)
203-
{
204-
logg("add_message(type=%u, message=%s) - SQL error step DELETE: %s",
205-
type, message, sqlite3_errstr(rc));
206-
goto end_of_add_message;
207-
}
208-
sqlite3_clear_bindings(stmt);
189+
// Bind message to prepared statement
190+
if((rc = sqlite3_bind_text(stmt, 2, message, -1, SQLITE_STATIC)) != SQLITE_OK)
191+
{
192+
logg("add_message(type=%u, message=%s) - Failed to bind message DELETE: %s",
193+
type, message, sqlite3_errstr(rc));
209194
sqlite3_reset(stmt);
210195
sqlite3_finalize(stmt);
196+
goto end_of_add_message;
197+
}
198+
199+
// Execute and finalize
200+
if((rc = sqlite3_step(stmt)) != SQLITE_OK && rc != SQLITE_DONE)
201+
{
202+
logg("add_message(type=%u, message=%s) - SQL error step DELETE: %s",
203+
type, message, sqlite3_errstr(rc));
204+
goto end_of_add_message;
211205
}
206+
sqlite3_clear_bindings(stmt);
207+
sqlite3_reset(stmt);
208+
sqlite3_finalize(stmt);
209+
stmt = NULL;
212210

213211
// Prepare SQLite statement
214-
sqlite3_stmt* stmt = NULL;
215-
const char *querystr = "INSERT INTO message (timestamp,type,message,blob1,blob2,blob3,blob4,blob5) "
216-
"VALUES ((cast(strftime('%s', 'now') as int)),?,?,?,?,?,?,?);";
217-
int rc = sqlite3_prepare_v2(db, querystr, -1, &stmt, NULL);
212+
querystr = "INSERT INTO message (timestamp,type,message,blob1,blob2,blob3,blob4,blob5) "
213+
"VALUES ((cast(strftime('%s', 'now') as int)),?,?,?,?,?,?,?);";
214+
rc = sqlite3_prepare_v2(db, querystr, -1, &stmt, NULL);
218215
if( rc != SQLITE_OK )
219216
{
220217
logg("add_message(type=%u, message=%s) - SQL error prepare: %s",
@@ -317,7 +314,7 @@ void logg_regex_warning(const char *type, const char *warning, const int dbindex
317314

318315
// Log to database only if not in CLI mode
319316
if(!cli_mode)
320-
add_message(REGEX_MESSAGE, false, warning, 3, type, regex, dbindex);
317+
add_message(REGEX_MESSAGE, warning, 3, type, regex, dbindex);
321318
}
322319

323320
void logg_subnet_warning(const char *ip, const int matching_count, const char *matching_ids,
@@ -332,7 +329,7 @@ void logg_subnet_warning(const char *ip, const int matching_count, const char *m
332329

333330
// Log to database
334331
char *names = get_client_names_from_ids(matching_ids);
335-
add_message(SUBNET_MESSAGE, false, ip, 5, matching_count, names, matching_ids, chosen_match_text, chosen_match_id);
332+
add_message(SUBNET_MESSAGE, ip, 5, matching_count, names, matching_ids, chosen_match_text, chosen_match_id);
336333
free(names);
337334
}
338335

@@ -343,7 +340,7 @@ void logg_hostname_warning(const char *ip, const char *name, const unsigned int
343340
ip, name, pos);
344341

345342
// Log to database
346-
add_message(HOSTNAME_MESSAGE, true, ip, 2, name, (const int)pos);
343+
add_message(HOSTNAME_MESSAGE, ip, 2, name, (const int)pos);
347344
}
348345

349346
void logg_fatal_dnsmasq_message(const char *message)
@@ -352,7 +349,7 @@ void logg_fatal_dnsmasq_message(const char *message)
352349
logg("FATAL ERROR in dnsmasq core: %s", message);
353350

354351
// Log to database
355-
add_message(DNSMASQ_CONFIG_MESSAGE, false, message, 0);
352+
add_message(DNSMASQ_CONFIG_MESSAGE, message, 0);
356353

357354
// FTL will dies after this point, so we should make sure to clean up
358355
// behind ourselves
@@ -368,7 +365,7 @@ void logg_rate_limit_message(const char *clientIP, const unsigned int rate_limit
368365
clientIP, turnaround, turnaround == 1 ? "" : "s");
369366

370367
// Log to database
371-
add_message(RATE_LIMIT_MESSAGE, true, clientIP, 2, config.rate_limit.count, config.rate_limit.interval);
368+
add_message(RATE_LIMIT_MESSAGE, clientIP, 2, config.rate_limit.count, config.rate_limit.interval);
372369
}
373370

374371
void logg_warn_dnsmasq_message(char *message)
@@ -377,33 +374,33 @@ void logg_warn_dnsmasq_message(char *message)
377374
logg("WARNING in dnsmasq core: %s", message);
378375

379376
// Log to database
380-
add_message(DNSMASQ_WARN_MESSAGE, false, message, 0);
377+
add_message(DNSMASQ_WARN_MESSAGE, message, 0);
381378
}
382379

383380
void log_resource_shortage(const double load, const int nprocs, const int shmem, const int disk, const char *path, const char *msg)
384381
{
385382
if(load > 0.0)
386383
{
387384
logg("WARNING: Long-term load (15min avg) larger than number of processors: %.1f > %d", load, nprocs);
388-
add_message(LOAD_MESSAGE, true, "excessive load", 2, load, nprocs);
385+
add_message(LOAD_MESSAGE, "excessive load", 2, load, nprocs);
389386
}
390387
else if(shmem > -1)
391388
{
392389
logg("WARNING: RAM shortage (%s) ahead: %d%% is used (%s)", path, shmem, msg);
393-
add_message(SHMEM_MESSAGE, true, path, 2, shmem, msg);
390+
add_message(SHMEM_MESSAGE, path, 2, shmem, msg);
394391
}
395392
else if(disk > -1)
396393
{
397394
logg("WARNING: Disk shortage (%s) ahead: %d%% is used (%s)", path, disk, msg);
398-
add_message(DISK_MESSAGE, true, path, 2, disk, msg);
395+
add_message(DISK_MESSAGE, path, 2, disk, msg);
399396
}
400397
}
401398

402399
void logg_inaccessible_adlist(const int dbindex, const char *address)
403400
{
404401
// Log to FTL.log
405-
logg("Adlist warning: Adlist with ID %d (%s) was inaccessible during last gravity run", dbindex, address);
402+
logg("ADLIST WARNING: Adlist with ID %d (%s) was inaccessible during last gravity run", dbindex, address);
406403

407404
// Log to database
408-
add_message(INACCESSIBLE_ADLIST_MESSAGE, false, address, 1, dbindex);
405+
add_message(INACCESSIBLE_ADLIST_MESSAGE, address, 1, dbindex);
409406
}

0 commit comments

Comments
 (0)