summaryrefslogtreecommitdiff
path: root/extra/mariabackup/ds_archive.c
diff options
context:
space:
mode:
Diffstat (limited to 'extra/mariabackup/ds_archive.c')
-rw-r--r--extra/mariabackup/ds_archive.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/extra/mariabackup/ds_archive.c b/extra/mariabackup/ds_archive.c
index aa38b2f9530..50afcce4bc7 100644
--- a/extra/mariabackup/ds_archive.c
+++ b/extra/mariabackup/ds_archive.c
@@ -24,6 +24,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#include "common.h"
#include "datasink.h"
+#if ARCHIVE_VERSION_NUMBER < 3000000
+#define archive_write_add_filter_none(X) archive_write_set_compression_none(X)
+#define archive_write_free(X) archive_write_finish(X)
+#endif
+
typedef struct {
struct archive *archive;
ds_file_t *dest_file;
@@ -114,14 +119,14 @@ archive_init(const char *root __attribute__((unused)))
archive_ctxt->archive = a;
archive_ctxt->dest_file = NULL;
- if (archive_write_set_compression_none(a) != ARCHIVE_OK ||
+ if(archive_write_add_filter_none(a) != ARCHIVE_OK ||
archive_write_set_format_pax_restricted(a) != ARCHIVE_OK ||
/* disable internal buffering so we don't have to flush the
output in xtrabackup */
archive_write_set_bytes_per_block(a, 0) != ARCHIVE_OK) {
msg("failed to set libarchive archive options: %s\n",
archive_error_string(a));
- archive_write_finish(a);
+ archive_write_free(a);
goto err;
}
@@ -262,7 +267,7 @@ archive_deinit(ds_ctxt_t *ctxt)
if (archive_write_close(a) != ARCHIVE_OK) {
msg("archive_write_close() failed.\n");
}
- archive_write_finish(a);
+ archive_write_free(a);
if (archive_ctxt->dest_file) {
ds_close(archive_ctxt->dest_file);