Commit Graph

197 Commits

Author SHA1 Message Date
DL6ER b5a6ae44aa Add /api/action/flush/arp flushing both the network and network_addresses tables in pihole-FTL.db
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 20:47:51 +02:00
DL6ER 3b404ff9a0 Add /api/actions/flush/logs
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 20:39:18 +02:00
DL6ER f48683a11e Continue to run webserver even when dnsmasq fails to still serve the web interface. Change the type of api/dns/blocking from bool to enum-string to support the new "failure" state
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-24 17:19:12 +02:00
DL6ER c12625f0c1 Add global object "took" to all API endpoints
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-07 12:20:07 +02:00
DL6ER b7b63506fd Add method to delete network table entires by their database ID
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-07 11:04:31 +02:00
DL6ER b97d99ae3e Start timer thread keeping an eye on timed blocking mode changes
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-07 09:15:12 +02:00
DL6ER 7281da34b4 Add /api/clients/_suggestions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-06 07:31:21 +02:00
DL6ER 3f0b8f4280 Ensure we always read diagnosis messages from the database
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-05-03 21:16:51 +02:00
DL6ER b642bacf08 Rename the API endpoint from /logs/http to /logs/webserver for consistency with the config option renameing
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-26 21:39:29 +02:00
DL6ER f025598bd2 Simplify webserver logging routines
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-26 21:16:23 +02:00
DL6ER 2b2c02f0c7 Remove PH7
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-04-26 21:09:33 +02:00
DL6ER 749486273e Add method for deleteing sessions by their IDs
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-08 21:10:12 +01:00
DL6ER 9bf6176a64 Add TOTP 2FA to web interface and API
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-03-06 21:49:11 +01:00
DL6ER 4cc66df3f0 Rename /api/auth/session{ => s}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-18 14:58:53 +01:00
DL6ER 9eaab48405 Mark currently active session when listing active sessions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-14 22:59:52 +01:00
DL6ER db0217f6f7 Add GET /api/auth/sessions for listing the currently active sessions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-12 20:49:16 +01:00
DL6ER 83195e678e Change /api/info/cache -> /api/info/metrics and add other metrics such as query reply sources and DHCP metrics
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-11 13:38:37 +01:00
DL6ER ac4c9e789d Add DELETE /api/dhcp/leases/{ip}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-05 13:55:45 +01:00
DL6ER 9fdecaeea9 Add GET /api/dhcp/leases
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-05 13:04:03 +01:00
DL6ER 39c91f995c Integrate former /api/config/_{topic,servers} into /api/config?detailed=true
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-04 12:31:43 +01:00
DL6ER 141b6879ce Move /api/{dns -> info}/cache
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-02-01 22:43:44 +01:00
DL6ER da6a1ae053 Add {GET,DELETE} /api/info/messages
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-30 21:00:08 +01:00
DL6ER 5bfc1fd122 Add /api/search as a batter replacement of the currently existing "pihole -q" command
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-29 19:55:12 +01:00
DL6ER a9e2f298e8 Move src/civetweb -> src/webserver/civetweb
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-27 20:32:19 +01:00
DL6ER 149ec4e0dd Add test for re-importing the just exported Teleporter file during the tests
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-26 20:11:55 +01:00
DL6ER 48fc06d46b Add POST /api/teleporter to upload and install backed up configuration
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-25 21:51:12 +01:00
DL6ER d51aa378a3 Add /api/action/reboot and /api/action/poweroff (needs extra capability CAP_SYS_BOOT)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-24 20:26:37 +01:00
DL6ER e4383775d1 Add /api/action/gravity which can be used to trigger a run of pihole -g. The output is live streamed using HTTP/1.1 chunked encoding.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-24 20:15:45 +01:00
DL6ER 13168c377b Add GET /api/teleporter
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-23 21:56:11 +01:00
DL6ER 6afab76dcc Give hint about where the JSON parser failed when passing invalid JSON.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-23 21:26:11 +01:00
DL6ER 2e54ca5577 Add /config/_server offering DNS server suggestions for the settings page
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-22 10:11:31 +01:00
DL6ER 1142540aac Single out a few items from /api/info/system into /api/info/{sensors,host,ftl}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 20:16:31 +01:00
DL6ER 37bafc1365 Move /api/{ftl -> info}/client, /api/ftl/dbinfo -> /api/info/database, /api/ftl/sysinfo -> /api/info/system, and /api/version -> /api/info/version
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 20:16:31 +01:00
DL6ER aeb61a3026 Add HTTP OPTIONS method processing. Using something like "curl -X OPTIONS -I pi.hole:8080/api/... will return an Allow header specifying which endpoint supports which method.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-21 12:53:04 +01:00
DL6ER 6233bb489a Add GET /config/_topics which will be helpful when automatically generating a Pi-hole settings page
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 20:16:31 +01:00
DL6ER 88e57ef9e3 Manage custom.list through the universal /config/dns/hosts instead of its own interface. This reduces code duplication.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-20 18:32:21 +01:00
DL6ER 28bb27c125 Fix incorrectly returned 404 for existing API endpoints when not logged in
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-20 04:56:11 +01:00
DL6ER 7b479782fd Implement proper testing of dnsmasq options before applying new configuration
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 20:12:11 +01:00
DL6ER 2d6c25d573 Add GET /config/{element} for more specific requests as well as PATCH and DELETE /config/{element}/{value} for direct array manipulation
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 18:19:19 +01:00
DL6ER a506d38d9f Materialize the pseudoelement config.port as config.dnsmasq.port (it can now also be changed)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 04:39:09 +01:00
DL6ER 1ae49c7baf Add /api/logs/{ftl,http,ph7}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 04:22:50 +01:00
DL6ER 2e2253c77c Fix another memory leak where a payload sent to a non-existing endpoint wasn't freed properly
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-18 03:55:10 +01:00
DL6ER c901194d3b Rename /api/ftl/logs/dns -> /api/logs/dnsmasq
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-16 21:41:10 +01:00
DL6ER c34975180e Rename /api/ftl/endpoints -> /api/endpoints
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-16 21:37:11 +01:00
DL6ER ee439711c4 Configure if endpoints require authentication in a central place for better overview
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-16 21:23:04 +01:00
DL6ER 5e96022e63 Group endpoints in /api/ftl/endpoints by supported methods
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-16 21:11:57 +01:00
DL6ER ed6b809013 Modify removing and adding local DNS entries via path instead of payload
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-16 19:57:36 +01:00
DL6ER 952a296dd4 Add /api/dns/entries for manipulating the custom.list file (viewing, adding, and removing items)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-15 22:41:44 +01:00
DL6ER 41ebe5ec51 !!! BREAKING CHANGE !!! Create new dnsmasq config file and test it.
This needs a manual removal of /etc/dnsmasq.d/01-pihole.conf and /etc/dnsmasq.d/02-pihole-dhcp.conf (if existing).
Furthermore, we need a new symlink /etc/pihole/01-pihole.conf -> /etc/dnsmasq.d/01-pihole.conf

Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-12 18:12:41 +01:00
DL6ER 70127edd52 Add config.dnsmasq and routines to write dnsmasq config files
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-01-11 20:14:46 +01:00