68 char *archive_name,
Oid tblspc_oid)
84 return &streamer->
base;
130 pg_fatal(
"unexpected state while parsing tar file");
198 "\"%s\" is present in \"%s\" but not in the manifest",
202 mystreamer->
mfile = m;
211 "\"%s\" has size %llu in \"%s\" but size %" PRIu64
" in the manifest",
213 (
unsigned long long) member->
size,
236 "%s: could not initialize checksum of file \"%s\"",
274 "could not update checksum of file \"%s\"",
300 "file \"%s\" in \"%s\" should contain %" PRIu64
" bytes, but read %" PRIu64
" bytes",
312 "could not finalize checksum of file \"%s\"",
320 "file \"%s\" in \"%s\" has checksum of length %d, but expected %d",
325 "checksum mismatch for file \"%s\" in \"%s\"",
412 report_fatal_error(
"%s: %s: manifest system identifier is %" PRIu64
", but control file has %" PRIu64,
427 mystreamer->
mfile = NULL;
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)
struct astreamer_verify astreamer_verify
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 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)
Assert(PointerIsAligned(start, uint64))
void pfree(void *pointer)
void * palloc0(Size size)
struct ControlFileData ControlFileData
#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)
uint32 pg_control_version
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
manifest_files_hash * files
pg_checksum_type checksum_type
#define XLOG_CONTROL_FILE