Fixes #33471
When -externalip is set, -discover is implicitly disabled. This prevents CJDNS bound addresses from being added to localaddresses, so the node never advertises itself on the CJDNS network - even though outbound CJDNS connections work fine.
CJDNS addresses live on a separate overlay network and don’t conflict with manually specified external IPs, so there is no reason to suppress them. This PR adds CJDNS exceptions to the three code paths in net.cpp that gate on fDiscover:
AddLocal()— accept CJDNS regardless offDiscoverDiscover()— don’t skip CJDNS-prefixed interfaces when!fDiscoverBind()— callAddLocal()for CJDNS bound addresses when!fDiscover
Note to reviewers: the functional test (feature_cjdns_externalip.py) requires Docker to create an fc00::/8 bridge interface and is skipped when Docker is unavailable. It is included so reviewers can easily verify the fix end-to-end, but can be easily dropped (it’s in a separate commit) if the dependency is unwanted. Note that this test cannot be run in CI containers.