~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/ftp.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-05-20 02:25:14 UTC
  • mfrom: (3376.3.2 ftp_215522)
  • Revision ID: pqm@pqm.ubuntu.com-20080520022514-gncomeyihrd1vywq
(jam) Fix bug #215522,
        workaround xs4all returning an error for ls on an empty dir

Show diffs side-by-side

added added

removed removed

Lines of Context:
516
516
            paths = f.nlst(basepath)
517
517
        except ftplib.error_perm, e:
518
518
            self._translate_perm_error(e, relpath, extra='error with list_dir')
 
519
        except ftplib.error_temp, e:
 
520
            # xs4all's ftp server raises a 450 temp error when listing an empty
 
521
            # directory. Check for that and just return an empty list in that
 
522
            # case. See bug #215522
 
523
            if str(e).lower().startswith('450 no files found'):
 
524
                mutter('FTP Server returned "%s" for nlst.'
 
525
                       ' Assuming it means empty directory',
 
526
                       str(e))
 
527
                return []
 
528
            raise
519
529
        # If FTP.nlst returns paths prefixed by relpath, strip 'em
520
530
        if paths and paths[0].startswith(basepath):
521
531
            entries = [path[len(basepath)+1:] for path in paths]