old_contents: # -*- encoding: utf-8 -*-
  
  import socket
  
  try:
      import httplib
  except ImportError:
      import http.client as httplib
  
  from isso.wsgi import urlsplit
  
  
  class curl(object):
      """Easy to use wrapper around :module:`httplib`.  Use as context-manager
      so we can close the response properly.
  
      .. code-block:: python
  
          with http.curl('GET', 'http://localhost:8080', '/') as resp:
              if resp:  # may be None if request failed
                  return resp.status
      """
  
      def __init__(self, method, host, path, timeout=3):
          self.method = method
          self.host = host
          self.path = path
          self.timeout = timeout
  
      def __enter__(self):
  
          host, port, ssl = urlsplit(self.host)
          http = httplib.HTTPSConnection if ssl else httplib.HTTPConnection
  
          self.con = http(host, port, timeout=self.timeout)
  
          try:
              self.con.request(self.method, self.path)
          except (httplib.HTTPException, socket.error):
              return None
  
          return self.con.getresponse()
  
      def __exit__(self, exc_type, exc_value, traceback):
          self.con.close()
  
new_contents: # -*- encoding: utf-8 -*-
  
  import socket
  
  try:
      import httplib
  except ImportError:
      import http.client as httplib
  
  from isso.wsgi import urlsplit
  
  
  class curl(object):
      """Easy to use wrapper around :module:`httplib`.  Use as context-manager
      so we can close the response properly.
  
      .. code-block:: python
  
          with http.curl('GET', 'http://localhost:8080', '/') as resp:
              if resp:  # may be None if request failed
                  return resp.status
      """
  
      def __init__(self, method, host, path, timeout=3):
          self.method = method
          self.host = host
          self.path = path
          self.timeout = timeout
  
      def __enter__(self):
  
          host, port, ssl = urlsplit(self.host)
          http = httplib.HTTPSConnection if ssl else httplib.HTTPConnection
  
          self.con = http(host, port, timeout=self.timeout)
  
          try:
              self.con.request(self.method, self.path)
          except (httplib.HTTPException, socket.error):
              return None
  
          try:
              return self.con.getresponse()
          except (socket.timeout, socket.error):
              return None
  
      def __exit__(self, exc_type, exc_value, traceback):
          self.con.close()
  
subject: Fix catch socket timeout and error exceptions