diff options
-rw-r--r-- | Lib/posixfile.py | 4 | ||||
-rwxr-xr-x | Lib/test/test_fcntl.py | 9 |
2 files changed, 9 insertions, 4 deletions
diff --git a/Lib/posixfile.py b/Lib/posixfile.py index fc5f53f..d66517f 100644 --- a/Lib/posixfile.py +++ b/Lib/posixfile.py @@ -177,7 +177,7 @@ class _posixfile_: # Hack by davem@magnet.com to get locking to go on freebsd; # additions for AIX by Vladimir.Marangozov@imag.fr import sys, os - if sys.platform == 'freebsd2': + if sys.platform in ('netbsd1', 'freebsd2', 'freebsd3'): flock = struct.pack('lxxxxlxxxxlhh', \ l_start, l_len, os.getpid(), l_type, l_whence) elif sys.platform in ['aix3', 'aix4']: @@ -190,7 +190,7 @@ class _posixfile_: flock = fcntl.fcntl(self._file_.fileno(), cmd, flock) if '?' in how: - if sys.platform == 'freebsd2': + if sys.platform in ('netbsd1', 'freebsd2', 'freebsd3'): l_start, l_len, l_pid, l_type, l_whence = \ struct.unpack('lxxxxlxxxxlhh', flock) elif sys.platform in ['aix3', 'aix4']: diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py index a5ea1e6..2ae6b99 100755 --- a/Lib/test/test_fcntl.py +++ b/Lib/test/test_fcntl.py @@ -5,7 +5,7 @@ import struct import fcntl import FCNTL -import os +import os, sys from test_support import verbose filename = '/tmp/delete-me' @@ -16,7 +16,12 @@ rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETFL, os.O_NONBLOCK) if verbose: print 'Status from fnctl with O_NONBLOCK: ', rv -lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0) +if sys.platform in ('netbsd1', 'freebsd2', 'freebsd3'): + lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, FCNTL.F_WRLCK, 0) +elif sys.platform in ['aix3', 'aix4']: + lockdata = struct.pack('hhlllii', FCNTL.F_WRLCK, 0, 0, 0, 0, 0, 0) +else: + lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0) if verbose: print 'struct.pack: ', `lockdata` |