Wywołanie getaddrinfo ma wiele interesujących flag. Zastanawiam się, jaki jest cel flagi AI_V4MAPPED. W żadnym systemie nie wydaje mi się, żebym mógł uzyskać getaddrinfo, aby utworzyć :: ffff: n.n.n.n.nformować adresy tak, jak oczekiwałbym po ustawieniu tej flagi. Czy oczekuję niewłaściwej rzeczy? Czy widzę błędy?Jaki jest cel flagi AI_V4MAPPED w getaddrinfo?
W szczególności, gdy pytam o adresy rodziny AF_INET6 i określam AI_V4MAPPED, spodziewam się zobaczyć: :: ffff: n.n.n.n adresy hostów, które mają tylko rekordy DNS A (adres IPv4). I generalnie spodziewam się, że jeśli podam AI_ALL, otrzymam zarówno rekord adresu DNS AAAA (adres IPv6) hosta, jak i rekordy DNS A w formularzu :: ffff: n.n.n.n.
Ponownie, czy oczekuję tutaj wszystkich złych rzeczy?
Przetestowałem to na Fedorze 11 - glibc 2.10.1 i OS X 10.4.
Zrobiłem o wiele więcej badań na ten temat. getaddrinfo wydaje się być nękany przez dowolną liczbę błędów, częściowo dlatego, że ma wiele dziwnych przypadków, aby poradzić sobie ze zepsutą obsługą żądań AAAA. – Omnifarious
Twoja odpowiedź jest najbliższa prawdziwej odpowiedzi, więc otrzymujesz kredyt na odpowiedź. – Omnifarious
AI_V4MAPPED bez AI_ALL jest błędem glibc, patrz http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503912 – unixman83