Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v6 placeholder #2153

Open
wants to merge 2,627 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2627 commits
Select commit Hold shift + click to select a range
58bd6ac
Logging tweaks.
simonkelley Nov 25, 2024
4d85d20
Finesse TCP timeouts for upstream connections.
simonkelley Nov 25, 2024
95c5a01
Add missing dump_packet_udp() call.
simonkelley Nov 27, 2024
f945557
Make the packet-dump code work with a FIFO.
simonkelley Nov 27, 2024
c5a0523
Modify the behaviour of --synth-domain for IPv6.
simonkelley Nov 27, 2024
0effd30
Remove hash-questions.c
DL6ER Dec 2, 2024
7fc228d
Apply some code-changes required due to recent dnsmasq changes
DL6ER Dec 2, 2024
b3d5fe6
Undo Pi-hole modification not needed any longer after the next incomm…
DL6ER Dec 2, 2024
9740f3d
Fix GCC-15, C23 compatibility and -Wincompatible-pointer-types errors
Dec 1, 2024
c7fa1f3
Remove more obsolete code
DL6ER Dec 2, 2024
acab756
Report multiple hostnames in --dhcp-host.
reynir Dec 1, 2024
be18751
Adjust tests
DL6ER Dec 2, 2024
adcccfc
Handle UDP-to-TCP auto-promotion in FTL code and use new "proto" logg…
DL6ER Dec 2, 2024
5497d9c
Add DHCPv6 probing for pihole-FTL dhcp-discover
DL6ER Dec 4, 2024
85d2e7f
Circumvent a warning from inside sys/socket.h preventing clang from c…
DL6ER Dec 4, 2024
7b1fc5e
Scan for DHCP and RA in parallel at the same time to shorten the over…
DL6ER Dec 5, 2024
707280c
Merge pull request #2127 from pi-hole/tweak/dynamic_GCinterval
DL6ER Dec 5, 2024
87a2ad5
Minor improvements
DL6ER Dec 5, 2024
2fc84ec
Delay IPv6 client name lookups
DL6ER Dec 6, 2024
de357a6
Merge branch 'development' into update/dnsmasq
DL6ER Dec 6, 2024
f2d8c84
Set sa_len field in DHCP relay code.
simonkelley Dec 3, 2024
6674ef1
Add --dhcp-option-pxe config.
simonkelley Dec 5, 2024
36e4cca
Support PXE proxy-DHCP and DHCP-relay at the same time.
simonkelley Dec 5, 2024
8de2a36
Tweak error messages
DL6ER Dec 7, 2024
d7b77b3
Fix duplicated code and silence a harmless warning
DL6ER Dec 8, 2024
fb2bfbf
Update embedded SQLite3 to 3.47.2
DL6ER Dec 8, 2024
f4a209a
Merge pull request #2131 from pi-hole/fix/123
DL6ER Dec 8, 2024
18f91b0
Merge pull request #2132 from pi-hole/update/sqlite_3.47.2
DL6ER Dec 8, 2024
137ac13
Interchange the arguments for calloc(numer_of_elements, element_size)…
DL6ER Dec 9, 2024
c277d2a
Update changed Intel i386 notation in binary classification test
DL6ER Dec 9, 2024
e657fbc
Add error handling to capabilities functions
DL6ER Dec 9, 2024
a05128b
Ensure we initialize thread IDs
DL6ER Dec 9, 2024
d10354e
Update builder
DL6ER Dec 9, 2024
57c155c
Consolidate DHCP and RA answers per interface
DL6ER Dec 9, 2024
91ea8d4
Merge pull request #2133 from pi-hole/new/alpine_v3.21
DL6ER Dec 10, 2024
d1624f9
Merge branch 'development' into tweak/ntp_errors
DL6ER Dec 13, 2024
a76e791
Do not fork when handling NTP replies
DL6ER Dec 13, 2024
5af65fc
Improve error checking in several functions of resolve.c
DL6ER Dec 17, 2024
9cd1137
Minor further enhancements for NTP code
DL6ER Dec 17, 2024
dd39c5e
Expose EDE information via API if available
DL6ER Dec 18, 2024
cf2c7c3
Ensure NTP port can be re-bound even after fast successive restarts
DL6ER Dec 18, 2024
747b899
Do not try to obtain -1 ID pointer in CNAME code to prevent harmless …
DL6ER Dec 19, 2024
4a13b1d
Merge branch 'development' into update/dnsmasq
DL6ER Dec 19, 2024
7572e59
Fix erroneous "DNSSEC validated" state with non-DNSSEC upstream servers.
simonkelley Dec 10, 2024
8132969
Improve handling of non-QUERY DNS requests.
DL6ER Dec 19, 2024
fad8dbf
Fix DHCPv6 relay on *BSD.
Dec 17, 2024
bb3e57c
Add missing count for PXE packets in metrics.
DL6ER Dec 17, 2024
e272dc4
Minor typo fix, changed a "PCE" into "PXE".
Dec 18, 2024
d42193c
Remove unused variable.
simonkelley Dec 19, 2024
9ac0ba2
Update dnsmasq version to most recent tag v2.91test1
DL6ER Dec 19, 2024
c002dc2
Dynamically reduce retry interval of NTP client in case the first syn…
DL6ER Dec 20, 2024
bc67a9f
Reduce time accuracy requirements for NTP service to 0.5 seconds (com…
DL6ER Dec 21, 2024
371a0fb
Fix thinko in 3b74df4f55b1107b051183d6b628eb02933cb00a
simonkelley Dec 19, 2024
ddc4074
Prepare for dnsmasq upstream patch
DL6ER Dec 21, 2024
71deee0
Further refactoring of the TCP DNS codepath.
simonkelley Dec 19, 2024
326b05a
Revert "Prepare for dnsmasq upstream patch"
DL6ER Dec 21, 2024
aea70ef
Prepare for dnsmasq upstream patch
DL6ER Dec 21, 2024
5379c0e
Refactor receive_query() to removed duplicated code.
simonkelley Dec 20, 2024
5eb78dc
Revert "Prepare for dnsmasq upstream patch"
DL6ER Dec 21, 2024
0655475
Fix [-Wgnu-variable-sized-type-not-at-end] warning.
simonkelley Dec 20, 2024
4580216
bpf.c: Follow callback updates.
mandree Dec 20, 2024
18d010c
Extend the code to effciently close unwanted file descriptors to *BSD.
simonkelley Dec 20, 2024
728f45f
Banish compiler warnings.
simonkelley Dec 20, 2024
7bcc4df
Update dnsmasq tag
DL6ER Dec 21, 2024
f921ee4
Update comment in src/tools/dhcpv6-discover.c
DL6ER Dec 21, 2024
f7bcff3
Merge pull request #2136 from pi-hole/update/dnsmasq
DL6ER Dec 22, 2024
6fbea06
Merge pull request #2137 from pi-hole/update/civetweb
DL6ER Dec 22, 2024
c04fa58
Merge pull request #2135 from pi-hole/new/queries_ede
DL6ER Dec 22, 2024
a673d3f
Update src/ntp/client.c
DL6ER Dec 22, 2024
d7c9e52
Update src/tools/dhcpv6-discover.c
DL6ER Dec 22, 2024
d8a1d82
Move callback for multiple replies into the loop
DL6ER Dec 22, 2024
2237f97
Merge pull request #2141 from pi-hole/fix/dnsmasq_multi_replies
DL6ER Dec 22, 2024
7fecfde
Fix c9bc0156a8d36d56735831cb81e786d628ed73e
simonkelley Dec 23, 2024
2c80b8f
Add newly assigned RRTYPE WALLET (262)
DL6ER Jun 21, 2024
0294f82
Add newly assigned RRTYPEs NXNAME, CLA, and IPN
DL6ER Jul 26, 2024
6fef2a3
Add newly assigned RRTYPE DSYNC
DL6ER Dec 22, 2024
55f1f04
Update dnsmasq version string to latest tag
DL6ER Dec 24, 2024
daa4fc1
Merge pull request #2142 from pi-hole/update/dnsmasq
DL6ER Dec 24, 2024
c7358da
Allow spaces also in PUT /api/groups
DL6ER Dec 24, 2024
1c1dff7
Merge pull request #2143 from pi-hole/fix/put_groups
DL6ER Dec 24, 2024
ecdee67
Fix FTBFS when using -pedantic compiler flag.
mandree Dec 24, 2024
9a00632
Extend d578da0665c496ca709c25ae8d6963d1bff141c4 to Linux-only code.
simonkelley Dec 24, 2024
deeb755
Fix leap year check
catch-error Dec 29, 2024
2fef926
Merge pull request #2144 from catch-error/fix/leap-year-check
DL6ER Dec 29, 2024
30db497
Fix file owenrship after changing configuration with pihole-FTL --con…
catch-error Dec 30, 2024
c4ca5c3
Add latest tag v2.91test4 as of today
DL6ER Dec 30, 2024
b1fee82
Incorporate suggested changes from @DL6ER
catch-error Dec 30, 2024
9547e22
Merge pull request #2146 from pi-hole/update/dnsmasq
DL6ER Dec 30, 2024
b001b86
Explicitly include fcntl.h for non-glibc environments (e.g. musl)
catch-error Dec 30, 2024
9352161
Make maximum number of threads used by web server configurable
DL6ER Dec 31, 2024
4132963
Simplify webserver.threads options
DL6ER Jan 1, 2025
84f451f
Fix wrong packet size when dumpong packets to file.
simonkelley Jan 1, 2025
3ea253b
Merge pull request #2147 from pi-hole/new/webserver_threads
DL6ER Jan 1, 2025
1f5d5ff
Remove NTP CI test
DL6ER Jan 2, 2025
b391c6a
Merge pull request #2148 from pi-hole/test/no_ntp
DL6ER Jan 2, 2025
23efd38
Prevent calling strcmp with NULL pointer
catch-error Jan 2, 2025
9981f99
Retry to wait for result of dnsmasq syntax test if interrupted by a s…
DL6ER Jan 2, 2025
f164856
Use temp variable to avoid overwriting the value of errno in log_debug
DL6ER Jan 3, 2025
dc59611
Merge pull request #2151 from pi-hole/fix/dnsmasq_test_signal
DL6ER Jan 3, 2025
522cd8c
Add new explicit migration command. This is intentionally not include…
DL6ER Dec 21, 2024
76e8373
Output progress to terminal
DL6ER Dec 23, 2024
a47c35e
Prevent a few code paths from running when we know the disk database …
DL6ER Jan 3, 2025
5c21814
Do not skip migration if folder is already there
DL6ER Jan 4, 2025
3a02eb1
use full $HOME variable rather than /home/$USER
PromoFaux Jan 4, 2025
01202c6
Merge pull request #2152 from pi-hole/tweak/devcontainer
PromoFaux Jan 4, 2025
b4a641e
Merge pull request #2150 from catch-error/fix/cli-config-list-all
DL6ER Jan 5, 2025
e73c4e2
Merge pull request #2145 from catch-error/fix/chown-pihole
DL6ER Jan 6, 2025
4501265
chown of a file that does not exist, is not really worth a warning. O…
DL6ER Jan 6, 2025
7ec98f0
Correctly handle failure of pipe() call in swap_to_tcp()
simonkelley Jan 6, 2025
6f2cb88
Fix finger-trouble in immediately previous commit.
simonkelley Jan 7, 2025
de52aeb
Handle queries with EDNS client subnet fields better.
simonkelley Jan 7, 2025
4b0bf33
Pi-hole change due to preceeding dnsmasq commit
DL6ER Jan 8, 2025
c7c60a6
Fix read_write() changes for TCP timeout.
simonkelley Jan 7, 2025
2b4c6c8
Improve "chown of PID file failed" message for missing CAP_CHOWN
Jan 6, 2025
4121a81
Remove arbitrary workspace size limit.
simonkelley Jan 7, 2025
565fb0b
Fix crash introduced in 6656790f2498f2a0b21086bc4ab47a2e38429a7c
simonkelley Jan 7, 2025
43a11d1
Use new dnsmasq tag 2.91test6
DL6ER Jan 8, 2025
41db148
Merge pull request #2155 from pi-hole/update/dnsmasq
DL6ER Jan 8, 2025
bc8f073
Tolerate if the database is (shorty) locked when trying to get the la…
DL6ER Jan 8, 2025
2c46c88
Tolerate if the database is (shorty) locked when trying to restore JS…
DL6ER Jan 8, 2025
98494d1
Tolerate if the database is (shorty) locked when trying to create an …
DL6ER Jan 8, 2025
f2c82da
Merge pull request #2139 from pi-hole/fix/migration
DL6ER Jan 9, 2025
4b38b38
Make webserver ports optional by default
DL6ER Dec 20, 2024
f6e447e
Bump eps1lon/actions-label-merge-conflict
dependabot[bot] Jan 11, 2025
9a7224c
Merge pull request #2156 from pi-hole/dependabot-github_actions-devel…
yubiuser Jan 11, 2025
f6440dd
Merge pull request #2130 from pi-hole/tweak/delay_v6_names
DL6ER Jan 11, 2025
2fd72fd
Do not try to use find_mac() if netlink socket is closed
DL6ER Jan 11, 2025
d0bb6e2
Use optional flag also for ports defined during determination of defa…
DL6ER Jan 11, 2025
2fe0ce7
Merge branch 'development' into tweak/ntp_errors
DL6ER Jan 11, 2025
6c866eb
Merge branch 'tweak/ntp_errors' of github.com:pi-hole/FTL into tweak/…
DL6ER Jan 11, 2025
268e80b
Merge branch 'development' into tweak/ntp_errors
DL6ER Jan 11, 2025
bf59f22
Merge branch 'development' into new/optional_webports
DL6ER Jan 12, 2025
9d2d295
Remove duplicated check
DL6ER Jan 12, 2025
e1e40e6
Use integer for rate-limiting turnaround to avoid issues when saving …
DL6ER Jan 12, 2025
cb17510
Improve reporting on internal API errors
DL6ER Jan 12, 2025
23610b2
Multiplication result converted to larger type
DL6ER Jan 12, 2025
e2b93cb
Apply suggestions from code review
DL6ER Jan 12, 2025
0f090ad
Update src/ntp/client.c
DL6ER Jan 12, 2025
c5fe649
Apply suggestions from code review
DL6ER Jan 12, 2025
446940d
Use different tag for self-hosted runners
DL6ER Jan 12, 2025
ddaf354
Merge pull request #2159 from pi-hole/tweak/self-hosted
DL6ER Jan 12, 2025
16eaaa8
Merge pull request #2138 from pi-hole/new/optional_webports
DL6ER Jan 12, 2025
8a26dd9
Fix space
yubiuser Jan 12, 2025
dac2dec
Merge pull request #2158 from pi-hole/fix/turnaround
DL6ER Jan 12, 2025
bed065c
Merge pull request #2125 from pi-hole/tweak/ntp_errors
DL6ER Jan 12, 2025
8eda7e8
cache: Fix potential NULL deref in arcane situations.
mandree Dec 29, 2024
f9bd83a
Return EDE OTHER error when DNSSEC validation abandoned.
simonkelley Jan 12, 2025
77ad5b9
Treat replies with CD flag set the same for UDP and TCP code paths.
simonkelley Jan 12, 2025
398040b
Prepare for following dnsmasq patch
DL6ER Jan 13, 2025
5ed45fb
Refactor poll() loop.
simonkelley Jan 12, 2025
3741da3
Re-add Pi-hole modification
DL6ER Jan 13, 2025
dc7cc77
Don't do retries over UDP when we've sent the query by TCP.
simonkelley Jan 12, 2025
5324748
Fix SNAFU in 509afcd1d2f9edbd1e11c9abd0f335f02baa7fc4
simonkelley Jan 12, 2025
c48e3be
Improve "no upstream servers configured" when D-Bus is enabled
Jan 12, 2025
bd032d8
Fix another 509afcd1d2f9edbd1e11c9abd0f335f02baa7fc4 SNAFU
simonkelley Jan 13, 2025
5d6fdcb
Attempt to keep running if a child process dies.
simonkelley Jan 13, 2025
094c3a0
Tweak 7d915a0bb94260073ec7aa4dd00b787f3ea4b9e8
simonkelley Jan 13, 2025
3d042f5
Update dnsmasq tag to v2.91test7
DL6ER Jan 13, 2025
f1af457
Merge pull request #2160 from pi-hole/update/civetweb
DL6ER Jan 13, 2025
b1d9995
Merge pull request #2161 from pi-hole/update/dnsmasq
DL6ER Jan 13, 2025
6b695c4
Tweak handling of duplicate DNS answers via UDP.
simonkelley Jan 13, 2025
4299ab9
Remove surplus SHM unlocking in IPv6 name resolution deceleration code
DL6ER Jan 14, 2025
89a3cf6
Merge pull request #2157 from pi-hole/fix/netlink_looping
DL6ER Jan 14, 2025
ccac779
Merge pull request #2162 from pi-hole/update/sqlite_3.48.0
DL6ER Jan 14, 2025
d01a265
Merge pull request #2163 from pi-hole/fix/resolve_shm_error
DL6ER Jan 14, 2025
bdfca6d
Use arm64 machines provided by GHA
DL6ER Jan 16, 2025
817aad9
Merge pull request #2164 from pi-hole/tweak/gha_arm64
DL6ER Jan 16, 2025
c7bb811
Merge branch 'development' into update/dnsmasq
DL6ER Jan 18, 2025
993b301
Extend build fingerprinting to include CFLAGS.
simonkelley Jan 17, 2025
dc4e9dc
Handle DS queries to auth zones.
simonkelley Jan 17, 2025
6f774d2
Fix fubar that could return unsigned NODATA response when do bit set.
simonkelley Jan 18, 2025
b55f56f
Fix subtle bug in arbitrary-RR caching.
simonkelley Jan 18, 2025
0acbfe8
Rename cache_validated() to cache_not_validated().
simonkelley Jan 18, 2025
1ae7b65
Fix log message fields in wrong order in some auth replies.
simonkelley Jan 18, 2025
62010ec
Update dnsmasq version to most recent tag v2.91test8
DL6ER Jan 19, 2025
84e2ad1
Merge pull request #2165 from pi-hole/update/dnsmasq
DL6ER Jan 19, 2025
3d6bad8
Improve FTL connection error logging
DL6ER Jan 20, 2025
1679d73
Case-sensitive matching of questions and answers.
simonkelley Jan 19, 2025
49a6a56
Implement "DNS-0x20 encoding".
simonkelley Jan 19, 2025
ebf9f37
Convert DNS names in logs to all lower case.
simonkelley Jan 20, 2025
c8efde2
Remove misleading comment.
simonkelley Jan 20, 2025
338fc12
Correct BNF for --trust-anchor in manpage.
simonkelley Jan 20, 2025
ae6dd21
Use new dnsmasq tag 2.91test9
DL6ER Jan 23, 2025
1eaa9ea
Improve handling of non-queries. This has recently been fixed in dnsm…
DL6ER Jan 24, 2025
0c680cb
Add test for correct handling of non-queries
DL6ER Jan 24, 2025
2e99500
Add test for mixed-case queries aslso known as "the DNS 0x20 trick" (…
DL6ER Jan 24, 2025
4e6dd97
Temporarily install py3-dnspython during the tests until we can again…
DL6ER Jan 24, 2025
ead34f5
Merge pull request #2166 from pi-hole/update/dnsmasq
DL6ER Jan 24, 2025
a618eef
Bump actions/stale in the github_action-dependencies group
dependabot[bot] Jan 25, 2025
3cf5699
Add debugging output
DL6ER Jan 25, 2025
9c69a0b
Add new debug.netlink option and related debugging functionality in t…
DL6ER Jan 25, 2025
1b3c3da
Use larger netlink buffer size
DL6ER Jan 25, 2025
0349fd8
Merge pull request #2167 from pi-hole/dependabot-github_actions-devel…
yubiuser Jan 26, 2025
3c7d7fd
Logged string is a timestamp rather than a filename after the most re…
DL6ER Jan 26, 2025
d982768
Merge branch 'development' into new/GRAVITY_RESTORED_MESSAGE
DL6ER Jan 26, 2025
e080884
Merge pull request #2122 from pi-hole/new/GRAVITY_RESTORED_MESSAGE
DL6ER Jan 27, 2025
e2a237c
Ensure locking around error messages so they do not interfere with re…
DL6ER Jan 27, 2025
54c91a3
Merge branch 'development' into new/dhcpv6
DL6ER Jan 27, 2025
42f7658
Merge branch 'new/dhcpv6' of github.com:pi-hole/FTL into new/dhcpv6
DL6ER Jan 28, 2025
6e3beba
Improve our Netlink implementation following recommendations for the …
DL6ER Jan 27, 2025
c7d3b8f
Merge pull request #2168 from pi-hole/tweak/nlinks
DL6ER Jan 29, 2025
cbd5344
Merge pull request #2128 from pi-hole/new/dhcpv6
DL6ER Jan 29, 2025
4c49165
The query type property of received replies cannot be trusted as it i…
DL6ER Jan 30, 2025
a7e0828
Merge pull request #2171 from pi-hole/fix/empty_replies
DL6ER Jan 30, 2025
5ff5270
Only update date_updated value if the status is 1 (= downloaded + che…
DL6ER Jan 31, 2025
80ef20e
Merge pull request #2170 from pi-hole/tweak/conn_errors
DL6ER Jan 31, 2025
83b9ed7
Bump copyrights to 2025.
simonkelley Jan 23, 2025
91c9620
Fix potential memory leak
brianphaley Jan 23, 2025
e5c5ebd
Use new dnsmasq tag 2.91test10
DL6ER Feb 1, 2025
1cac199
Add restoring of static DHCP leases from pre-v6 tar.gz Teleporter arc…
DL6ER Feb 1, 2025
e3304ac
Merge pull request #2174 from pi-hole/fix/teleporter_v5_static_dhcp
DL6ER Feb 2, 2025
2137353
Queries blocked upstream with a known blocking page IP should not be …
DL6ER Feb 2, 2025
e19b4ab
Merge pull request #2173 from pi-hole/update/dnsmasq
DL6ER Feb 2, 2025
bbf4dae
Merge pull request #2176 from pi-hole/fix/umbrella
DL6ER Feb 3, 2025
f97dd66
belt-and-braces extra call to check_log_writer() in tcp_request()
simonkelley Feb 1, 2025
eb2733a
Tweak to logging.
simonkelley Feb 3, 2025
4292668
Add --no-0x20-encode config option.
simonkelley Feb 3, 2025
7d116c9
Merge pull request #2172 from pi-hole/fix/lists_date_updated
DL6ER Feb 4, 2025
f3d5f7c
Log failed TCP DNS connections upstream when --log-debug active.
simonkelley Feb 5, 2025
300cbd0
Fix c99ism added in 0b6144583b128330e7cffa105bc9ccbc4d6f0692
simonkelley Feb 5, 2025
aae060c
Update dnsmasq tag to 2.91rc1
DL6ER Feb 6, 2025
4b712df
Extend connection error with additonal information (if available)
DL6ER Feb 6, 2025
4c98b5d
Non-queries are not worth warnings during database importing / histor…
DL6ER Feb 6, 2025
23a7334
Avoid recompiling multiple files if only the hash changes
DL6ER Feb 6, 2025
6cee9a0
Add new dnsmasq 0x20 encoding warning to list of known warnings
DL6ER Feb 6, 2025
95d7a97
Add new version.h file
DL6ER Feb 6, 2025
3cdaf62
Fix bug in 0x20 encoding.
simonkelley Feb 6, 2025
04807af
Fix for case-sensitivity problems in DNS.
simonkelley Feb 6, 2025
3a4f410
TFTP off-by-2 bugfix
hdeller Feb 6, 2025
63eae71
Update dnsmasq tag to 2.91rc2
DL6ER Feb 6, 2025
dc6e388
Merge pull request #2179 from pi-hole/update/dnsmasq
DL6ER Feb 6, 2025
ae3a663
Update embedded SQLite3 to 3.49.0
DL6ER Feb 7, 2025
1e017b3
Ensure version.c is autogenerated even without a primer
DL6ER Feb 7, 2025
de61d82
Merge pull request #2181 from pi-hole/update/sqlite_3.49.0
DL6ER Feb 7, 2025
58fc55a
Fix 0x20 problem.
simonkelley Feb 7, 2025
e992a73
Update dnsmasq version to 2.91rc3
DL6ER Feb 8, 2025
7f0a373
Add missing newline to verbose version output
DL6ER Feb 8, 2025
9b71652
Merge pull request #2182 from pi-hole/update/dnsmasq
DL6ER Feb 8, 2025
fba81ca
Remove procps scanning for other running pihole-FTL processes due to …
DL6ER Feb 9, 2025
3414dc1
Use individual shared memory objects per FTL process so accidentally …
DL6ER Feb 9, 2025
4a3a563
Fix possible SIGSEGV in bpf.c
simonkelley Feb 8, 2025
2c0fd18
Yet another 0x20 fix.
simonkelley Feb 9, 2025
63dcf27
Update embedded dnsmasq to v2.91rc4
DL6ER Feb 10, 2025
c8df4b6
Merge pull request #2185 from pi-hole/update/dnsmasq
DL6ER Feb 10, 2025
d019b04
Use /proc/<PID>/status instead of a call to kill(<PID>, 0) to get the…
DL6ER Feb 10, 2025
a7cee05
Use (non-POSIX) timeout variant for thread joining at the end of the …
DL6ER Feb 11, 2025
d2f6d1a
Use ppoll in recv_adv() to be able to specify an absolute timeout value
DL6ER Feb 11, 2025
d70af72
Merge pull request #2184 from pi-hole/fix/duplicate_processes
DL6ER Feb 11, 2025
10a486d
Fix dhcp-discover locking
DL6ER Feb 11, 2025
32d2345
Merge pull request #2186 from pi-hole/tweak/dhcp-dicsover_timeout
DL6ER Feb 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 20 additions & 9 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
{
"name": "FTL x86_64 Build Env",
"image": "ghcr.io/pi-hole/ftl-build:x86_64",
"extensions": [
"jetmartin.bats",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"eamodio.gitlens"
],
}
"name": "FTL x86_64 Build Env",
"image": "ghcr.io/pi-hole/ftl-build:nightly",
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
"customizations": {
"vscode": {
"extensions": [
"jetmartin.bats",
"ms-vscode.cpptools-extension-pack",
"eamodio.gitlens",
"github.copilot",
"ms-python.python"
]
}
},
"mounts": [
"type=bind,source=${localEnv:HOME}/.ssh,target=/root/.ssh,readonly",
"type=bind,source=/var/www/html/admin,target=/var/www/html/admin,readonly"
]

}
11 changes: 10 additions & 1 deletion .github/.codespellignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,14 @@ ssudo
tre
ede
nd
doubleclick
requestor
requestors
requestors
punycode
bitap
mmapped
dnsmasq
iif
prefered
padd
rabit
3 changes: 3 additions & 0 deletions .github/.codespellignore_lines
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
self.errors.append("Exception when GETing from FTL: " + str(e))
// sitten -> sittin (substitution of "i" for "e"),
// sittin -> sitting (insertion of "g" at the end).
38 changes: 38 additions & 0 deletions .github/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
FROM ghcr.io/pi-hole/ftl-build:v2.11 AS builder

WORKDIR /app

COPY . /app

ARG CI_ARCH="linux/amd64"
ENV CI_ARCH=${CI_ARCH}
ARG GIT_BRANCH="test"
ENV GIT_BRANCH=${GIT_BRANCH}
ARG GIT_TAG="test"
ENV GIT_TAG=${GIT_TAG}
ARG BUILD_OPTS=""
ENV BUILD_OPTS=${BUILD_OPTS}

# Setting TERM is needed for pretty output in BATS tests
ENV TERM=xterm

# Monkeypatch BATS to remove duplicate output of starting and finished test
# BATS uses ANSI escape codes to overwrite the line after the test has finished
# This is not supported by Github Actions as it does not provide a TTY to the docker build container
RUN sed -i '/buffer_with_truncation /d' /bats-core/libexec/bats-core/bats-format-pretty

# Build FTL
# Remove possible old build files
RUN rm -rf cmake && \
# Build and test FTL
bash build.sh "-DSTATIC=${STATIC}" test ${BUILD_OPTS} && \
# Move FTL binary to root directory
cd / &&\
mv /app/pihole-FTL . && \
# Create tarball of API docs
tar -C /app/src/api/docs/content/ -czvf /api-docs.tar.gz .

# Create final image containing only the FTL binary and API docs
FROM scratch AS result
COPY --from=builder /pihole-FTL /pihole-FTL
COPY --from=builder /api-docs.tar.gz /api-docs.tar.gz
142 changes: 142 additions & 0 deletions .github/actions/build-and-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
name: Build and test
description: Builds and tests FTL on all supported platforms

inputs:
platform:
required: true
description: The platform to build for
build_opts:
required: true
description: Any extra build opts to use
git_branch:
required: true
description: The branch to build from
git_tag:
required: true
description: The tag to build from (if any)
bin_name:
required: true
description: The name of the binary to build
artifact_name:
required: true
description: The name of the artifact to upload
event_name:
required: true
description: The name of the event that triggered the workflow run
actor:
required: true
description: The name of the user or app that initiated the workflow run
target_dir:
required: true
description: The directory to deploy the artifacts to
# Secrets cannot be accessed in the action.yml file so we need to pass them as
# inputs to the action.
SSH_KEY:
required: true
description: The SSH private key to use for authentication
KNOWN_HOSTS:
required: true
description: The SSH known hosts file
SSH_USER:
required: true
description: The SSH user to use for authentication
SSH_HOST:
required: true
description: The SSH host to connect to

# Both the definition of environment variables and checking out the code
# needs to be done outside of the composite action as
# - environment variables cannot be defined using inputs
# - the checkout action needs to be the first step in the workflow, otherwise we
# cannot use the composite action as the corresponding "action.yml" isn't
# there yet
runs:
using: "composite"
steps:
-
name: Set up Docker Buildx
uses: docker/[email protected]
-
name: Print directory contents
shell: bash
run: ls -l
-
name: Build and test FTL in ftl-build container (QEMU)
uses: Wandalen/[email protected]
with:
attempt_limit: 3
action: docker/[email protected]
with: |
platforms: ${{ inputs.platform }}
pull: true
push: false
context: .
target: result
file: .github/Dockerfile
outputs: |
type=tar,dest=build.tar
build-args: |
"CI_ARCH=${{ inputs.platform }}"
"GIT_BRANCH=${{ inputs.git_branch }}"
"GIT_TAG=${{ inputs.git_tag }}"
"BUILD_OPTS=${{ inputs.build_opts }}"
-
name: List files in current directory
shell: bash
run: ls -l
-
name: Extract FTL binary from container
shell: bash
run: |
tar -xf build.tar pihole-FTL
-
name: "Generate checksum file"
shell: bash
run: |
mv pihole-FTL "${{ inputs.bin_name }}"
sha1sum pihole-FTL-* > ${{ inputs.bin_name }}.sha1
-
name: Store binary artifacts for later deployoment
if: inputs.event_name != 'pull_request'
uses: actions/[email protected]
with:
name: ${{ inputs.artifact_name }}
path: '${{ inputs.bin_name }}*'
-
name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
# Skip attestation if ACTIONS_ID_TOKEN_REQUEST_URL env variable is not
# available (e.g., PR originating from a fork)
if: ${{ env.ACTIONS_ID_TOKEN_REQUEST_URL != '' }}
with:
subject-path: ${{ inputs.bin_name }}
-
name: Extract documentation files from container
if: inputs.event_name != 'pull_request' && inputs.platform == 'linux/amd64' && inputs.build_opts == ''
shell: bash
run: |
tar -xf build.tar api-docs.tar.gz
-
name: Upload documentation artifacts for deployoment
if: inputs.event_name != 'pull_request' && inputs.platform == 'linux/amd64' && inputs.build_opts == ''
uses: actions/[email protected]
with:
name: pihole-api-docs
path: 'api-docs.tar.gz'
-
name: Deploy
# Skip deployment step if:
# - this is a triggered by a PR event (we only push on commit to branch
# events)
# - no SSH key is provided (this is a PR from a fork)
if: inputs.event_name != 'pull_request' && inputs.SSH_KEY != ''
uses: ./.github/actions/deploy
with:
pattern: ${{ inputs.bin_name }}-binary
target_dir: ${{ inputs.target_dir }}
event_name: ${{ inputs.event_name }}
actor: ${{ inputs.actor }}
SSH_KEY: ${{ inputs.SSH_KEY }}
KNOWN_HOSTS: ${{ inputs.KNOWN_HOSTS }}
SSH_USER: ${{ inputs.SSH_USER }}
SSH_HOST: ${{ inputs.SSH_HOST }}
96 changes: 96 additions & 0 deletions .github/actions/deploy/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Deploy
description: Deploy the FTL binary and documentation

inputs:
pattern:
required: true
description: The pattern to match the artifacts to download
target_dir:
required: true
description: The directory to deploy the artifacts to
event_name:
required: true
description: The name of the event that triggered the workflow run
actor:
required: true
description: The name of the user or app that initiated the workflow run
# Secrets cannot be accessed in the action.yml file so we need to pass them as
# inputs to the action.
SSH_KEY:
required: true
description: The SSH private key to use for authentication
KNOWN_HOSTS:
required: true
description: The SSH known hosts file
SSH_USER:
required: true
description: The SSH user to use for authentication
SSH_HOST:
required: true
description: The SSH host to connect to

runs:
using: "composite"
steps:
-
name: Get binaries built in previous jobs
uses: actions/[email protected]
id: download
with:
path: ftl_builds/
pattern: ${{ inputs.pattern }}
merge-multiple: true
-
name: Get documentation files built in previous jobs
if: inputs.pattern == 'pihole-FTL-amd64-binary'
uses: actions/[email protected]
with:
path: ftl_builds/
name: pihole-api-docs
-
name: Display structure of downloaded files
shell: bash
run: ls -R
working-directory: ${{steps.download.outputs.download-path}}
-
name: Install SSH Key
uses: benoitchantre/[email protected]
with:
private-key: ${{ inputs.SSH_KEY }}
private-key-name: id_rsa
known-hosts: ${{ inputs.KNOWN_HOSTS }}
-
name: Set private key permissions
shell: bash
run: chmod 600 ~/.ssh/id_rsa
-
name: Untar documentation files
if: inputs.pattern == 'pihole-FTL-amd64-binary'
working-directory: ftl_builds/
shell: bash
run: |
mkdir docs/
tar xzvf api-docs.tar.gz -C docs/
-
name: Display structure of files ready for upload
working-directory: ftl_builds/
shell: bash
run: ls -R
-
name: Transfer Builds to Pi-hole server for pihole checkout
if: inputs.actor != 'dependabot[bot]'
env:
USER: ${{ inputs.SSH_USER }}
HOST: ${{ inputs.SSH_HOST }}
TARGET_DIR: ${{ inputs.target_dir }}
SOURCE_DIR: ftl_builds/
shell: bash
run: |
bash ./deploy.sh
-
name: Attach binaries to release
if: inputs.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: |
ftl_builds/*
Loading
Loading