Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  pg_verifybackup.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * pg_verifybackup.h
 *   Verify a backup against a backup manifest.
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/bin/pg_verifybackup/pg_verifybackup.h
 *
 *-------------------------------------------------------------------------
 */


#ifndef PG_VERIFYBACKUP_H
#define PG_VERIFYBACKUP_H

#include "common/controldata_utils.h"
#include "common/hashfn_unstable.h"
#include "common/logging.h"
#include "common/parse_manifest.h"
#include "fe_utils/astreamer.h"
#include "fe_utils/simple_list.h"

/*
 * Each file described by the manifest file is parsed to produce an object
 * like this.
 */

typedef struct manifest_file
{
 uint32  status;   /* hash status */
 const char *pathname;
 uint64  size;
 pg_checksum_type checksum_type;
 int   checksum_length;
 uint8    *checksum_payload;
 bool  matched;
 bool  bad;
} manifest_file;

#define should_verify_checksum(m) \
 (((m)->matched) && !((m)->bad) && (((m)->checksum_type) != CHECKSUM_TYPE_NONE))

/*
 * Define a hash table which we can use to store information about the files
 * mentioned in the backup manifest.
 */

#define SH_PREFIX  manifest_files
#define SH_ELEMENT_TYPE manifest_file
#define SH_KEY_TYPE  const char *
#define SH_KEY   pathname
#define SH_HASH_KEY(tb, key) hash_string(key)
#define SH_EQUAL(tb, a, b)  (strcmp(a, b) == 0)
#define SH_SCOPE  static inline
#define SH_RAW_ALLOCATOR pg_malloc0
#define SH_DECLARE
#define SH_DEFINE
#include "lib/simplehash.h"

/*
 * Each WAL range described by the manifest file is parsed to produce an
 * object like this.
 */

typedef struct manifest_wal_range
{
 TimeLineID tli;
 XLogRecPtr start_lsn;
 XLogRecPtr end_lsn;
 struct manifest_wal_range *next;
 struct manifest_wal_range *prev;
} manifest_wal_range;

/*
 * All the data parsed from a backup_manifest file.
 */

typedef struct manifest_data
{
 int   version;
 uint64  system_identifier;
 manifest_files_hash *files;
 manifest_wal_range *first_wal_range;
 manifest_wal_range *last_wal_range;
} manifest_data;

/*
 * All of the context information we need while checking a backup manifest.
 */

typedef struct verifier_context
{
 manifest_data *manifest;
 char    *backup_directory;
 SimpleStringList ignore_list;
 char  format;   /* backup format:  p(lain)/t(ar) */
 bool  skip_checksums;
 bool  exit_on_error;
 bool  saw_any_error;
} verifier_context;

extern void report_backup_error(verifier_context *context,
        const char *pg_restrict fmt,...)
   pg_attribute_printf(23);
pg_noreturn extern void report_fatal_error(const char *pg_restrict fmt,...)
   pg_attribute_printf(12);
extern bool should_ignore_relpath(verifier_context *context,
          const char *relpath);

extern astreamer *astreamer_verify_content_new(astreamer *next,
              verifier_context *context,
              char *archive_name,
              Oid tblspc_oid);

#endif       /* PG_VERIFYBACKUP_H */

Messung V0.5 in Prozent
C=93 H=100 G=96

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=738142