code: def list(self, href):
          
          for iTry in range(TRYINGS):
              logger.info(u("list(%s): %s") % (iTry, href))
              folders = None
              files = None
              try:
                  href = os.path.join(u("/"), _(href))
                  conn = self.getConnection()
                  conn.request("PROPFIND", _encode_utf8(href), u(""), self.getHeaders())
                  response = conn.getresponse()
                  checkResponse(response)
                  data = response.read()
                  if data == b('list: folder was not found'):
                      return folders, files
                  elif data == b('You are not authorized to see this!'):
                      return folders, files
                  else:
                      try:
                          dom = xml.dom.minidom.parseString(data)
                          responces = dom.getElementsByTagNameNS("DAV:", "response")
                          folders = {}
                          files = {}
                          for dom in responces:
                              response = RemoteObject(dom, self, href)
                              if response.href != href:
                                  if response.isFolder():
                                      folders[response.href] = response
                                  else:
                                      files[response.href] = response
                      except xml.parsers.expat.ExpatError:
                          e = sys.exc_info()[1]
                          logger.exception(e)
                  return folders, files
              except ConnectionException:
                  raise
              except Exception:
                  e = sys.exc_info()[1]
                  logger.exception(e)
              return folders, files
docs: list of files and directories at remote server
          :param href: remote folder
          :return: list(folders, files) and list(None,None) if folder doesn't exist