code: def catch_conn_reset(f):
      
      try:
          import OpenSSL
          ConnectionError = OpenSSL.SSL.SysCallError
      except:
          ConnectionError = None
  
      def new_f(self, *args, **kwargs):
          # Only handle if pyOpenSSL is installed.
          if ConnectionError:
              try:
                  return f(self, *args, **kwargs)
              except ConnectionError as e:
                  log.warning("caught connection reset error: %s", e)
                  self.connect()
                  return f(self, *args, **kwargs)
          else:
              return f(self, *args, **kwargs)
      return new_f
docs: A decorator to handle connection reset errors even ones from pyOpenSSL
      until https://github.com/edsu/twarc/issues/72 is resolved