Skip to content

Commit 923ead1

Browse files
committed
Support libarchive < 3.5.0
1 parent d62b611 commit 923ead1

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

libarchive.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,9 +285,13 @@ static void arch_obj_setup_support(arch_object *arch_obj)
285285
if (arch_obj->filters == NULL) {
286286
archive_read_support_filter_all(arch_obj->archive);
287287
} else {
288+
#if ARCHIVE_VERSION_NUMBER >= 3005000
288289
for (uint32_t i = 0; i < arch_obj->filters_count; i++) {
289290
archive_read_support_filter_by_code(arch_obj->archive, arch_obj->filters[i]);
290291
}
292+
#else
293+
archive_read_support_filter_all(arch_obj->archive);
294+
#endif
291295
}
292296
if (arch_obj->formats == NULL) {
293297
archive_read_support_format_all(arch_obj->archive);
@@ -454,6 +458,11 @@ PHP_METHOD(libarchive_Archive, supportFilters)
454458
"Cannot change filter after archive has been opened", -1);
455459
return;
456460
}
461+
#if ARCHIVE_VERSION_NUMBER < 3005000
462+
php_error_docref(NULL, E_WARNING,
463+
"supportFilters() requires libarchive >= 3.5.0; all filters will be enabled");
464+
RETURN_THIS();
465+
#endif
457466
efree(arch_obj->filters);
458467
arch_obj->filters = safe_emalloc(num_args, sizeof(int), 0);
459468
arch_obj->filters_count = num_args;

0 commit comments

Comments
 (0)