mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-11-06 15:33:07 -05:00
With "Verify SSL" working, the login request checks the Pi-hole certificate when that setting is on. In a live test with the setting on and Pi-hole behind a reverse proxy with an untrusted certificate, the login failed with "Connection error during Pi-hole auth. Check PIHOLEAPI_URL and PIHOLEAPI_PASSWORD", although URL and password were right. requests.exceptions.SSLError is a subclass of ConnectionError, so the certificate error fell into that branch. Changes: - pihole_api_auth() catches requests.exceptions.SSLError before ConnectionError (server/plugins/pihole_api_scan/pihole_api_scan.py) and logs: "TLS certificate check failed during Pi-hole auth: <error>. Turn off PIHOLEAPI_VERIFY_SSL if Pi-hole uses a self-signed certificate." - test/plugins/test_pihole_api_scan_verify_ssl.py: _login_failure() runs pihole_api_auth() with a failing login request. test_certificate_error_points_to_verify_ssl_setting checks the new message (fails without this change); test_plain_connection_error_still_points_to_url_and_password checks that other connection errors keep the old one. Impact: A user who turns on "Verify SSL" while Pi-hole uses a self-signed or otherwise untrusted certificate gets a log line that names the cause and the setting. Other connection errors are reported as before.
NetAlertX modules
The original pilaert.py code is now moved to this new folder and split into different modules.
| Module | Description |
|---|---|
__main__.py |
The MAIN program of NetAlertX |
__init__.py |
an empty init file |
README.md |
this readme file |
../server/plugins |
a folder containing all plugins that publish notifications or scan for devices |
api.py |
updating the API endpoints with the relevant data. |
appevent.py |
TBC |
const.py |
A place to define the constants for NetAlertX like log path or config path. |
conf.py |
conf.py holds the configuration variables and makes them available for all modules. It is also the workaround for global variables that need to be resolved at some point |
database.py |
This module connects to the DB, makes sure the DB is up to date and defines some standard queries and interfaces. |
device.py |
The device module looks after the devices and saves the scan results into the devices |
flows.py |
TBC |
helper.py |
Helper as the name suggest contains multiple little functions and methods used in many of the other modules and helps keep things clean |
initialise.py |
Initiatlise sets up the environment and makes everything ready to go |
logger.py |
Logger is there the keep all the logs organised and looking identical. |
networscan.py |
Networkscan collects the scan results (maybe to merge with reporting.py) |
notification.py |
Creates and handles the notification object and generates ther HTML and text variants of the message |
plugin.py |
This is where the plugins get integrated into the backend of NetAlertX |
plugin_utils.py |
Helper utilities for plugin.py |
reporting.py |
Reporting collects the data for the notification reports |
scheduler.py |
All things scheduling |