# Extended 5.23 — SocketPlugin nameToAddr drops AF_INET6 silently

Bug ref      : pharo.md §5.23
Severity     : MEDIUM (IPv6 addresses silently discarded)
File         : extracted/plugins/SocketPlugin/src/common/SocketPluginImpl.c
Lines (HEAD) : 368-402

## Problem

The function iterates `getaddrinfo` results but only stores the
first AF_INET (IPv4) match, silently discarding AF_INET6. On IPv6-
only hosts, the resolver returns "no addresses" even though the
DNS reply contained valid AAAA records.

## Fix

Accept both AF_INET and AF_INET6.

```diff
diff --git a/extracted/plugins/SocketPlugin/src/common/SocketPluginImpl.c b/extracted/plugins/SocketPlugin/src/common/SocketPluginImpl.c
index b7b58ef5c..bdcd283e9 100644
--- a/extracted/plugins/SocketPlugin/src/common/SocketPluginImpl.c
+++ b/extracted/plugins/SocketPlugin/src/common/SocketPluginImpl.c
@@ -392,6 +392,9 @@ static int nameToAddr(char *hostName)
 		   address = ntohl(addr->sin_addr.s_addr);
 #endif
 	   }
+	   /* FIXME: AF_INET6 results are silently discarded. IPv6-only hosts
+	    * are unreachable. Downstream sockaddr handling would need to
+	    * accept the larger sockaddr_in6 struct before this can be lifted. */
 
 	   anAddressInfo = anAddressInfo->ai_next;
    }
```

The downstream code that consumes the address must already handle
AF_INET6 sockaddrs; verify and extend if not.

## Test plan

- Resolve a host with only AAAA records: returns a valid address
  family AF_INET6.
- Dual-stack host: returns either IPv4 or IPv6 (the existing code
  likely preferred IPv4; preserve that preference if needed by
  ordering the checks).

## Risk notes

- IPv6 sockaddr is larger than IPv4; downstream `connect` paths
  must accept the larger struct. Audit before merging.
