X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=common-src%2Ffileheader.h;h=e92eb8e2285c5a6a1d124989e51011d20c2f0bcd;hb=2627875b7d18858bc1f9f7652811e4d8c15a23eb;hp=7666a0f678957feeac3eae4f79d0bbfe88dd89df;hpb=3ab887b9bc819a846c75dd7f2ee5d41fac22b19f;p=debian%2Famanda diff --git a/common-src/fileheader.h b/common-src/fileheader.h index 7666a0f..e92eb8e 100644 --- a/common-src/fileheader.h +++ b/common-src/fileheader.h @@ -1,6 +1,6 @@ /* * Amanda, The Advanced Maryland Automatic Network Disk Archiver - * Copyright (c) 1991-1998 University of Maryland at College Park + * Copyright (c) 1991-1999 University of Maryland at College Park * All Rights Reserved. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -24,21 +24,22 @@ * file named AUTHORS, in the root directory of this distribution. */ /* - * $Id: fileheader.h,v 1.6.4.1.4.1.2.2 2002/02/11 01:30:42 jrjackson Exp $ + * $Id: fileheader.h,v 1.16 2006/05/25 01:47:12 johnfranks Exp $ * */ #ifndef FILEHEADER_H #define FILEHEADER_H -#include "amanda.h" +#include +#include #define STRMAX 256 typedef char string_t[STRMAX]; typedef enum { - F_UNKNOWN, F_WEIRD, F_TAPESTART, F_TAPEEND, - F_DUMPFILE, F_CONT_DUMPFILE + F_UNKNOWN = 0, F_WEIRD = -1, F_TAPESTART = 1, F_TAPEEND = 2, + F_DUMPFILE = 3, F_CONT_DUMPFILE = 4, F_SPLIT_DUMPFILE = 5, F_EMPTY = -2 } filetype_t; typedef struct file_s { @@ -46,25 +47,57 @@ typedef struct file_s { string_t datestamp; int dumplevel; int compressed; + int encrypted; string_t comp_suffix; + string_t encrypt_suffix; string_t name; /* hostname or label */ string_t disk; string_t program; + string_t application; + string_t srvcompprog; + string_t clntcompprog; + string_t srv_encrypt; + string_t clnt_encrypt; string_t recover_cmd; string_t uncompress_cmd; + string_t encrypt_cmd; + string_t decrypt_cmd; + string_t srv_decrypt_opt; + string_t clnt_decrypt_opt; string_t cont_filename; + char *dle_str; int is_partial; - long blocksize; + int partnum; + int totalparts; /* -1 == UNKNOWN */ + size_t blocksize; } dumpfile_t; /* local functions */ -void fh_init P((dumpfile_t *file)); -void parse_file_header P((char *buffer, dumpfile_t *file, size_t buflen)); -void build_header P((char *buffer, - dumpfile_t *file, - size_t buflen)); -void print_header P((FILE *outf, dumpfile_t *file)); -int known_compress_type P((dumpfile_t *file)); +/* Makes a serialized header from the dumpfile_t representation. The + * return value is allocated using malloc(), so you must free it. + * + * Build_header guarantees that the buffer returned is exactly + * 'size' bytes, with any extra bytes zeroed out. */ +char * build_header (const dumpfile_t *file, size_t size); + +void fh_init(dumpfile_t *file); +void parse_file_header(const char *buffer, dumpfile_t *file, size_t buflen); +void print_header(FILE *outf, const dumpfile_t *file); +int known_compress_type(const dumpfile_t *file); +void dump_dumpfile_t(const dumpfile_t *file); + +/* Returns TRUE if the two headers are equal, FALSE otherwise. */ +gboolean headers_are_equal(dumpfile_t * a, dumpfile_t * b); + +/* Returns an allocated duplicate header. */ +dumpfile_t * dumpfile_copy(dumpfile_t* from); +void dumpfile_copy_in_place(dumpfile_t *dest, dumpfile_t* source); + +/* Frees associated storage */ +void dumpfile_free_data(dumpfile_t* info); + +/* Frees the header and associated storage */ +void dumpfile_free(dumpfile_t* info); #endif /* !FILEHEADER_H */