68 char *archive_name,
Oid tblspc_oid)
84 return &streamer->
base;
130 pg_fatal(
"unexpected state while parsing tar archive");
198 "file \"%s\" is present in archive \"%s\" but not in the manifest",
211 "file \"%s\" has size %llu in archive \"%s\" but size %" PRIu64 " in the manifest",
213 (
unsigned long long) member->
size,
228 mystreamer->context->manifest->version != 1 &&
236 "%s: could not initialize checksum of file \"%s\"",
274 "could not update checksum of file \"%s\"",
300 "file \"%s\" in archive \"%s\" should contain %" PRIu64 " bytes, but %" PRIu64 " bytes were read",
312 "could not finalize checksum of file \"%s\"",
320 "file \"%s\" in archive \"%s\" has checksum of length %d, but expected %d",
325 "checksum mismatch for file \"%s\" in archive \"%s\"",
astreamer_archive_context
@ ASTREAMER_MEMBER_HEADER
@ ASTREAMER_MEMBER_CONTENTS
@ ASTREAMER_MEMBER_TRAILER
@ ASTREAMER_ARCHIVE_TRAILER
static void member_copy_control_data(astreamer *streamer, astreamer_member *member, const char *data, int len)
static void member_verify_header(astreamer *streamer, astreamer_member *member)
static void astreamer_verify_finalize(astreamer *streamer)
static void member_compute_checksum(astreamer *streamer, astreamer_member *member, const char *data, int len)
static void astreamer_verify_content(astreamer *streamer, astreamer_member *member, const char *data, int len, astreamer_archive_context context)
astreamer * astreamer_verify_content_new(astreamer *next, verifier_context *context, char *archive_name, Oid tblspc_oid)
static void member_reset_info(astreamer *streamer)
static void member_verify_control_data(astreamer *streamer)
static const astreamer_ops astreamer_verify_ops
static void astreamer_verify_free(astreamer *streamer)
static void member_verify_checksum(astreamer *streamer)
#define Assert(condition)
#define OidIsValid(objectId)
int pg_checksum_final(pg_checksum_context *context, uint8 *output)
int pg_checksum_update(pg_checksum_context *context, const uint8 *input, size_t len)
int pg_checksum_init(pg_checksum_context *context, pg_checksum_type type)
#define PG_CHECKSUM_MAX_LENGTH
void * pg_malloc(size_t size)
#define palloc0_object(type)
void pfree(void *pointer)
#define PG_CONTROL_VERSION
#define PG_CONTROL_FILE_SIZE
#define COMP_CRC32C(crc, data, len)
#define EQ_CRC32C(c1, c2)
void report_fatal_error(const char *pg_restrict fmt,...)
bool should_ignore_relpath(verifier_context *context, const char *relpath)
void report_backup_error(verifier_context *context, const char *pg_restrict fmt,...)
#define should_verify_checksum(m)
void canonicalize_path(char *path)
void(* content)(astreamer *streamer, astreamer_member *member, const char *data, int len, astreamer_archive_context context)
verifier_context * context
ControlFileData control_file
uint64 control_file_bytes
pg_checksum_context * checksum_ctx
const astreamer_ops * bbs_ops
pg_checksum_type checksum_type
#define XLOG_CONTROL_FILE