September 24 2026
Fixed
- Replace the compile-time
PUBNUB_MAX_DNS_SERVERS_MASKexhaustion check with alast_server_reachedflag set byget_dns_ip, and makerotations_countan unsigned field reset per transaction, so IPv4 resolution gives up instead of looping forever. - Guard the
AF_INET6spare-address branch intry_TCP_connect_spare_addresswith#if PUBNUB_USE_IPV6soPUBNUB_USE_IPV6=0builds compile.
Modified
- Add a
run-tests.ymljob that compiles the socket transport withPUBNUB_USE_IPV6=0to keep the IPv4-only build from breaking again. - Add
pubnub_dns_rotation_unit_testover the realget_dns_ipandpbpal_dns_rotate_serverto assert bounded termination and primary re-selection after a rotation.