diff -ru portage-2.1.1_pre20060710/bin/emerge portage-2.1.1_pre20060710-ipv6/bin/emerge --- portage-2.1.1_pre20060710/bin/emerge 2006-07-11 01:01:38.000000000 +0200 +++ portage-2.1.1_pre20060710-ipv6/bin/emerge 2006-07-12 10:26:23.000000000 +0200 @@ -2657,8 +2657,21 @@ if ips: del ips[0] if ips==[]: + rsync_afi = socket.AF_UNSPEC + for opt in ("-4", "--ipv4"): + if opt in rsync_opts: + rsync_afi = socket.AF_INET + for opt in ("-6", "--ipv6"): + if opt in rsync_opts: + rsync_afi = socket.AF_INET6 + try: - ips=socket.gethostbyname_ex(hostname)[2] + for addrinfo in socket.getaddrinfo(hostname, None, rsync_afi, socket.SOCK_STREAM): + if addrinfo[0] == 10: # IPv6 addresses need to be added with brackets + ips.append('[' + addrinfo[4][0] + ']') + else: + ips.append(addrinfo[4][0]) + except SystemExit, e: raise # Needed else can't exit except Exception, e: