~spiv/ubuntu/lucid/paramiko/address-families-579530-lucid

« back to all changes in this revision

Viewing changes to tests/stub_sftp.py

  • Committer: Bazaar Package Importer
  • Author(s): Jeremy T. Bouse
  • Date: 2006-12-26 15:48:42 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20061226154842-a4h9l1h59t0osb7y
Tags: 1.6.4-1
New upstream release (Closes: #344734, #382348).

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
        # use the stored filename
49
49
        try:
50
50
            SFTPServer.set_file_attr(self.filename, attr)
 
51
            return SFTP_OK
51
52
        except OSError, e:
52
53
            return SFTPServer.convert_errno(e.errno)
53
54
 
90
91
    def open(self, path, flags, attr):
91
92
        path = self._realpath(path)
92
93
        try:
93
 
            fd = os.open(path, flags)
 
94
            binary_flag = getattr(os, 'O_BINARY',  0)
 
95
            flags |= binary_flag
 
96
            mode = getattr(attr, 'st_mode', None)
 
97
            if mode is not None:
 
98
                fd = os.open(path, flags, mode)
 
99
            else:
 
100
                # os.open() defaults to 0777 which is
 
101
                # an odd default mode for files
 
102
                fd = os.open(path, flags, 0666)
94
103
        except OSError, e:
95
104
            return SFTPServer.convert_errno(e.errno)
96
105
        if (flags & os.O_CREAT) and (attr is not None):
 
106
            attr._flags &= ~attr.FLAG_PERMISSIONS
97
107
            SFTPServer.set_file_attr(path, attr)
98
108
        if flags & os.O_WRONLY:
99
 
            fstr = 'w'
 
109
            if flags & os.O_APPEND:
 
110
                fstr = 'ab'
 
111
            else:
 
112
                fstr = 'wb'
100
113
        elif flags & os.O_RDWR:
101
 
            fstr = 'r+'
 
114
            if flags & os.O_APPEND:
 
115
                fstr = 'a+b'
 
116
            else:
 
117
                fstr = 'r+b'
102
118
        else:
103
119
            # O_RDONLY (== 0)
104
 
            fstr = 'r'
 
120
            fstr = 'rb'
105
121
        try:
106
122
            f = os.fdopen(fd, fstr)
107
123
        except OSError, e:
108
124
            return SFTPServer.convert_errno(e.errno)
109
 
        fobj = StubSFTPHandle()
 
125
        fobj = StubSFTPHandle(flags)
110
126
        fobj.filename = path
111
127
        fobj.readfile = f
112
128
        fobj.writefile = f
171
187
                target_path = '<error>'
172
188
        try:
173
189
            os.symlink(target_path, path)
174
 
        except:
 
190
        except OSError, e:
175
191
            return SFTPServer.convert_errno(e.errno)
176
192
        return SFTP_OK
177
193