Compare commits

...

4 Commits

Author SHA1 Message Date
Dominik e10bb5c605
Merge pull request #1944 from pi-hole/fix/clients_docs
Improve API /clients documentation
2024-05-05 07:09:42 +02:00
Dominik 240a2fe7a1
Merge pull request #1945 from pi-hole/tweak/tcp_conn_err
Improve error logging when TCP connections are prematurely closed by remote server
2024-05-05 07:08:07 +02:00
DL6ER 1611da221c
Improve error logging when TCP connections are prematurely closed by remote server
Signed-off-by: DL6ER <dl6er@dl6er.de>
2024-05-04 10:09:03 +02:00
DL6ER 01697669ac
API /clients: Add note that {client} needs to be URI-encoded (if specified) and add documentation of read-only optional {name0} field
Signed-off-by: DL6ER <dl6er@dl6er.de>
2024-05-03 20:05:00 +02:00
2 changed files with 23 additions and 5 deletions

View File

@ -11,7 +11,7 @@ components:
- "Client management"
operationId: "get_clients"
description: |
`{client}` is optional. Specifying it will result in only the requested client being returned.
`{client}` is optional. If it is specified, it will result in only the requested client being returned. This parameter needs to be URI-encoded.
Valid combinations are:
- `/api/clients` (all clients)
@ -42,7 +42,7 @@ components:
- "Client management"
operationId: "replace_client"
description: |
Items may be updated by replacing them. `{client}` is required.
Items may be updated by replacing them. `{client}` is required and needs to be URI-encoded.
Ensure to send all the required parameters (such as `comment` or `groups`) to ensure these properties are retained.
The read-only fields `id` and `date_added` are preserved, `date_modified` is automatically updated on success.
@ -91,7 +91,7 @@ components:
- "Client management"
operationId: "delete_client"
description: |
*Note:* There will be no content on success.
*Note:* There will be no content on success. `{client}` is required and needs to be URI-encoded.
responses:
'204':
description: Item deleted
@ -383,6 +383,12 @@ components:
type: integer
readOnly: true
example: 1611239099
name:
description: hostname (only if available)
type: string
readOnly: true
nullable: true
example: localhost
lists_processed:
type: object
properties:

View File

@ -3512,7 +3512,19 @@ void get_dnsmasq_metrics_obj(cJSON *json)
void FTL_connection_error(const char *reason, const union mysockaddr *addr)
{
// Make a private copy of the error
const char *error = strerror(errno);
const int errnum = errno;
const char *error = strerror(errnum);
// Set log priority
int priority = LOG_ERR;
// If this is a TCP connection error and errno == 0, this isn't a
// connection error but the remote side closed the connection
if(errnum == 0 && strstr(reason, "TCP(read_write)") != NULL)
{
error = "Connection prematurely closed by remote server";
priority = LOG_INFO;
}
// Format the address into a string (if available)
in_port_t port = 0;
@ -3525,7 +3537,7 @@ void FTL_connection_error(const char *reason, const union mysockaddr *addr)
log_debug(DEBUG_QUERIES, "Connection error (%s#%u, ID %d): %s (%s)", ip, port, id, reason, error);
// Log to pihole.log
my_syslog(LOG_ERR, "%s: %s", reason, error);
my_syslog(priority, "%s: %s", reason, error);
// Add to Pi-hole diagnostics but do not add messages more often than
// once every five seconds to avoid hammering the database with errors