Disable IPv6 when looking for tzdata updates.

My problems connecting to ftp.iana.org are only via IPv6.

Change-Id: I42e4bae7981ec4b64822f745a7a15544d77ef22d
diff --git a/libc/tools/zoneinfo/update-tzdata.py b/libc/tools/zoneinfo/update-tzdata.py
index 2b30c15..f06dac3 100755
--- a/libc/tools/zoneinfo/update-tzdata.py
+++ b/libc/tools/zoneinfo/update-tzdata.py
@@ -6,6 +6,7 @@
 import httplib
 import os
 import re
+import socket
 import subprocess
 import sys
 import tarfile
@@ -32,6 +33,14 @@
            'etcetera', 'europe', 'northamerica', 'southamerica']
 
 
+def DisableIpv6():
+  """Replaces socket.getaddrinfo with a version that only requests IPv4 addresses."""
+  __real_getaddrinfo = socket.getaddrinfo
+  def __ipv4_getaddrinfo(host, port, family=0, socktype=0, proto=0, flags=0):
+    return __real_getaddrinfo(host, port, socket.AF_INET, socktype, proto, flags)
+  socket.getaddrinfo = __ipv4_getaddrinfo
+
+
 def GetCurrentTzDataVersion():
   return open('%s/tzdata' % bionic_libc_zoneinfo_dir).read().split('\x00', 1)[0]
 
@@ -148,9 +157,9 @@
   tzdata_filenames = []
 
   # The FTP server lets you download intermediate releases, and also lets you
-  # download the signatures for verification, so it's your best choice. It's
-  # also less reliable than the HTTP server, so we support that too as a backup.
+  # download the signatures for verification, so it's your best choice.
   use_ftp = True
+  DisableIpv6() # I've been unable to talk to the FTP server over IPv6 (2013-04).
 
   if use_ftp:
     ftp = ftplib.FTP('ftp.iana.org')