mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-05-09 10:54:12 +00:00

- Adds support for blacklisting domains - Adds support for blacklisting & whitelisting IP addresses and IP ranges. - Reuse threads for HTTP requests AddressPredicate will parse a series of patterns and convert them into regexes or CIDR ranges. When checking whether an address is accessible, we first ensure the domain is whitelisted and isn't blacklisted. If everything is OK, then we start create a new thread for the HTTP request and resolve the IP, ensuring that is whitelisted & not blacklisted. Then the normal HTTP request is continued. However, http.checkURL also needs to resolve the IP address. In order to avoid blocking the Lua thread, this method will return instantly and create a new thread which will queue an event. As both http.request and http.checkURL are now creating threads and queuing events, some logic is abstracted into a separate HTTPTask class - this allows us to share the thread creation, finishing and cancelling logic.