diff --git a/libarchive/entry.py b/libarchive/entry.py index 47a6beb..7b7d161 100644 --- a/libarchive/entry.py +++ b/libarchive/entry.py @@ -65,3 +65,11 @@ def pathname(self, value): def size(self): if ffi.entry_size_is_set(self._entry_p): return ffi.entry_size(self._entry_p) + + @property + def mode(self): + return ffi.entry_mode(self._entry_p) + + @property + def strmode(self): + return ffi.entry_strmode(self._entry_p) diff --git a/libarchive/ffi.py b/libarchive/ffi.py index d8f7a3b..e611e79 100644 --- a/libarchive/ffi.py +++ b/libarchive/ffi.py @@ -119,6 +119,8 @@ def ffi(name, argtypes, restype, errcheck=None): ffi('entry_sourcepath', [c_archive_entry_p], c_char_p) ffi('entry_size', [c_archive_entry_p], c_longlong) ffi('entry_size_is_set', [c_archive_entry_p], c_int) +ffi('entry_mode', [c_archive_entry_p], c_int) +ffi('entry_strmode', [c_archive_entry_p], c_char_p) ffi('entry_update_pathname_utf8', [c_archive_entry_p, c_char_p], None)