~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/sftp.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-05-22 14:53:12 UTC
  • mfrom: (1707.3.30 ftp-server)
  • Revision ID: pqm@pqm.ubuntu.com-20060522145312-94c3c934d7cbd9ff
(jam) use medusa as an ftp-server provider, fix FtpTransport

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
from bzrlib.transport import (
45
45
    register_urlparse_netloc_protocol,
46
46
    Server,
 
47
    split_url,
47
48
    Transport,
48
49
    urlescape,
49
50
    )
662
663
        return urlparse.urlunparse(('sftp', netloc, path, '', '', ''))
663
664
 
664
665
    def _split_url(self, url):
665
 
        if isinstance(url, unicode):
666
 
            url = url.encode('utf-8')
667
 
        (scheme, netloc, path, params,
668
 
         query, fragment) = urlparse.urlparse(url, allow_fragments=False)
 
666
        (scheme, username, password, host, port, path) = split_url(url)
669
667
        assert scheme == 'sftp'
670
 
        username = password = host = port = None
671
 
        if '@' in netloc:
672
 
            username, host = netloc.split('@', 1)
673
 
            if ':' in username:
674
 
                username, password = username.split(':', 1)
675
 
                password = urllib.unquote(password)
676
 
            username = urllib.unquote(username)
677
 
        else:
678
 
            host = netloc
679
 
 
680
 
        if ':' in host:
681
 
            host, port = host.rsplit(':', 1)
682
 
            try:
683
 
                port = int(port)
684
 
            except ValueError:
685
 
                # TODO: Should this be ConnectionError?
686
 
                raise TransportError('%s: invalid port number' % port)
687
 
        host = urllib.unquote(host)
688
 
 
689
 
        path = urllib.unquote(path)
690
668
 
691
669
        # the initial slash should be removed from the path, and treated
692
670
        # as a homedir relative path (the path begins with a double slash