https://gitlab.synchro.net/main/sbbs/-/commit/7e492e0eeb8e9cd553fb6a2f
Modified Files:
src/sbbs3/mailsrvr.cpp
Log Message:
mail: only auto-detect an IPv4 DNS server address
dns_getmx() takes the server as a DWORD, so an IPv6 address cannot reach
it: resolve_ip() returns INADDR_NONE, the send is abandoned with the
message left for a later attempt, and "INVALID DNS server address" is
logged. get_dns_server() picked at random from every address getNameServerList() reported, so a host with resolvers of both families
failed on some sends and not others -- and on Windows the list can now
include IPv6 servers where it never could before.
Filter to the addresses the look-up can use, and say so when a detected
list holds none of them, rather than leaving the caller to report an empty address as invalid.
The precision on the adjacent sprintf() was one greater than the room the buffer has for text.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net