> | >   i understand your concern.  current 4-tuple is direct mapping from
> | >   struct sockaddr_in6 (which has those two additional members).
> | 
> |     note however, you must rewrite DNS resolving from gethostby* to
> |     get*info anyways, so i'm not too sure if the number of tuple members in
> |     sockaddr matters that much.
> 
> This is true when using explicit DNS resolving, but Python socket API
> allows you to pass in a string in place of the address in the tuple,
> and then resolves it to an address behind your back. This
> is probably the most common way of using DNS in Python.
> 
> It seems that when you have an AF_INET6 socket, it looks for
> an AAAA record, and when you have an AF_INET socket, it goes for A.

        hmm.  how would Python behave when there are multiple AAAA (or A)
        records?  just pick the first one?

> Unfortunately this bumps the address family-agnostic get*info API
> to second place in the convenience-of-use competition
> (getaddrinfo example at <http://docs.python.org/lib/socket-example.html>).

        with mixed IPv4/v6 environment (this would be the network environment
        for today and coming decade(s)), a program should try to connect both
        A and AAAA records, since connectivity situation varies by
        configuration such as network configuration, kernel compilation options
        and so forth.
        for this reason it would be better (or i might say we have to)
        for all libraries (like HTTP, FTP, and stuff) as well as user
        applications to use get*info API, instead of just building a tuple and
        then use AF_INET/6 socket.

itojun
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to