os_net_resolve.sg wires DNS (from os_dns.sg) into the net_handler request pipeline. The net_handler previously required the caller (renderer) to pass an IP:port. Now it parses the hostname from the request URL, resolves to IP using dns_resolve(), and passes the resolved IP:port to http_fetch. After this change, http://example.com/page works without the caller knowing the IP. The cap-isolated renderer now sends hostnames directly; the OS performs DNS resolution transparently. 5/5 tests PASS (hostname parse, DNS lookup, IP:port delivery to http_fetch).
Hostname-to-IP resolution bridge
os_net_resolve.sg (0xB30000 ext)
DNS-aware net_handler pipeline — Enhanced net_handler that reads
NET_REQUEST(method, url, headers) from IPC, parses http://hostname/path to extract hostname, calls dns_resolve(hostname, ip_out), and then calls http_fetch(method, "http://ip:port/path", headers). The renderer doesn't need to know IPs — hostnames in URLs are resolved transparently by the OS. This closes the final piece of the browser→OS→DNS→socket→response loop: browser tab → EL0 renderer (sends http://example.com) → OS IPC → dns_resolve → http_fetch → socket → response → renderer.