roll in some changes from bzr that may be necessary to get stub_sftp to work on windows
This commit is contained in:
parent
4120a15823
commit
0cee90eeca
|
@ -91,18 +91,25 @@ class StubSFTPServer (SFTPServerInterface):
|
|||
def open(self, path, flags, attr):
|
||||
path = self._realpath(path)
|
||||
try:
|
||||
fd = os.open(path, flags)
|
||||
binary_flag = getattr(os, 'O_BINARY', 0)
|
||||
flags |= binary_flag
|
||||
mode = getattr(attr, 'st_mode', None)
|
||||
if mode is not None:
|
||||
fd = os.open(path, flags, mode)
|
||||
else:
|
||||
fd = os.open(path, flags)
|
||||
except OSError, e:
|
||||
return SFTPServer.convert_errno(e.errno)
|
||||
if (flags & os.O_CREAT) and (attr is not None):
|
||||
attr._flags &= ~attr.FLAG_PERMISSIONS
|
||||
SFTPServer.set_file_attr(path, attr)
|
||||
if flags & os.O_WRONLY:
|
||||
fstr = 'w'
|
||||
fstr = 'wb'
|
||||
elif flags & os.O_RDWR:
|
||||
fstr = 'r+'
|
||||
fstr = 'r+b'
|
||||
else:
|
||||
# O_RDONLY (== 0)
|
||||
fstr = 'r'
|
||||
fstr = 'rb'
|
||||
try:
|
||||
f = os.fdopen(fd, fstr)
|
||||
except OSError, e:
|
||||
|
|
Loading…
Reference in New Issue