11
11
from functools import cache , cached_property , lru_cache
12
12
from typing import BinaryIO , Iterator , Optional , Union
13
13
14
- from dissect .cstruct import Instance
15
14
from dissect .util import ts
16
15
from dissect .util .stream import RunlistStream
17
16
@@ -213,7 +212,27 @@ def __init__(
213
212
def __repr__ (self ) -> str :
214
213
return f"<inode { self .inode_number } ({ self .block } , { self .offset } )>"
215
214
216
- def _metadata (self ) -> tuple [Instance , int , int ]:
215
+ def _metadata (
216
+ self ,
217
+ ) -> tuple [
218
+ c_squashfs .squashfs_base_inode_header
219
+ | c_squashfs .squashfs_dir_inode_header
220
+ | c_squashfs .squashfs_reg_inode_header
221
+ | c_squashfs .squashfs_symlink_inode_header
222
+ | c_squashfs .squashfs_dev_inode_header
223
+ | c_squashfs .squashfs_dev_inode_header
224
+ | c_squashfs .squashfs_base_inode_header
225
+ | c_squashfs .squashfs_base_inode_header
226
+ | c_squashfs .squashfs_ldir_inode_header
227
+ | c_squashfs .squashfs_lreg_inode_header
228
+ | c_squashfs .squashfs_symlink_inode_header
229
+ | c_squashfs .squashfs_ldev_inode_header
230
+ | c_squashfs .squashfs_ldev_inode_header
231
+ | c_squashfs .squashfs_lipc_inode_header
232
+ | c_squashfs .squashfs_lipc_inode_header ,
233
+ int ,
234
+ int ,
235
+ ]:
217
236
base_struct = c_squashfs .squashfs_base_inode_header
218
237
219
238
block = self .fs .sb .inode_table_start + self .block
@@ -235,7 +254,25 @@ def _metadata(self) -> tuple[Instance, int, int]:
235
254
return header , data_block , data_offset
236
255
237
256
@cached_property
238
- def header (self ) -> Instance :
257
+ def header (
258
+ self ,
259
+ ) -> (
260
+ c_squashfs .squashfs_base_inode_header
261
+ | c_squashfs .squashfs_dir_inode_header
262
+ | c_squashfs .squashfs_reg_inode_header
263
+ | c_squashfs .squashfs_symlink_inode_header
264
+ | c_squashfs .squashfs_dev_inode_header
265
+ | c_squashfs .squashfs_dev_inode_header
266
+ | c_squashfs .squashfs_base_inode_header
267
+ | c_squashfs .squashfs_base_inode_header
268
+ | c_squashfs .squashfs_ldir_inode_header
269
+ | c_squashfs .squashfs_lreg_inode_header
270
+ | c_squashfs .squashfs_symlink_inode_header
271
+ | c_squashfs .squashfs_ldev_inode_header
272
+ | c_squashfs .squashfs_ldev_inode_header
273
+ | c_squashfs .squashfs_lipc_inode_header
274
+ | c_squashfs .squashfs_lipc_inode_header
275
+ ):
239
276
header , _ , _ = self ._metadata ()
240
277
return header
241
278
0 commit comments