]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
fuse/blackmatch: fix platform specific problems in repr_flags
authorrobk-tahoe <robk-tahoe@allmydata.com>
Mon, 20 Oct 2008 14:30:52 +0000 (07:30 -0700)
committerrobk-tahoe <robk-tahoe@allmydata.com>
Mon, 20 Oct 2008 14:30:52 +0000 (07:30 -0700)
the repr_flags debug/logging function had a list of fields from the os
module that might be passed into an open() call, but it included at
least one which was available on the mac but not on linux. symmetrically
linux has numerous flags which are not present on the mac. the repr_flags
function is now tolerant of flags not being present, and has an expanded
list of flags

contrib/fuse/impl_c/blackmatch.py

index 322df4e220be543abf0f522a30bc106a9e89f690..c45c0ae822f1cfd5c3a6e83d5dfac056f7b5cbfb 100644 (file)
@@ -194,11 +194,13 @@ def repr_mode(mode=None):
 def repr_flags(flags=None):
     if flags is None:
         return 'none'
-    fields = ['O_WRONLY', 'O_RDWR', 'O_NONBLOCK', 'O_APPEND', 'O_CREAT', 'O_TRUNC', 'O_EXCL', 'O_SHLOCK', 'O_EXLOCK', 'O_NOFOLLOW']
+    fields = [ 'O_APPEND', 'O_CREAT', 'O_DIRECT', 'O_DIRECTORY', 'O_EXCL', 'O_EXLOCK',
+               'O_LARGEFILE', 'O_NDELAY', 'O_NOCTTY', 'O_NOFOLLOW', 'O_NONBLOCK', 'O_RDWR',
+               'O_SHLOCK', 'O_SYNC', 'O_TRUNC', 'O_WRONLY', ]
     ret = []
     for field in fields:
-        fval = getattr(os, field)
-        if (flags & fval) == fval:
+        fval = getattr(os, field, None)
+        if fval is not None and (flags & fval) == fval:
             ret.append(field)
     if not ret:
         ret = ['O_RDONLY']