X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=common-src%2Ffileheader.h;h=f54fae5451e8bb5f5623771d0fb131bc6a8ac9e9;hb=a6127998ee6dcab6bb034f6ca985b07804a86f9a;hp=ea7bda5eeca33de70c3de12f08b06695922e7cce;hpb=d3b2175e084f88c8736ad7073eacbf4670147aec;p=debian%2Famanda diff --git a/common-src/fileheader.h b/common-src/fileheader.h index ea7bda5..f54fae5 100644 --- a/common-src/fileheader.h +++ b/common-src/fileheader.h @@ -31,15 +31,15 @@ #ifndef FILEHEADER_H #define FILEHEADER_H -#include "amanda.h" -#include "util.h" /* for bstrncmp() */ +#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_SPLIT_DUMPFILE, F_EMPTY + 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 { @@ -73,11 +73,23 @@ typedef struct file_s { /* local functions */ +/* 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 build_header(char *buffer, const 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); + #endif /* !FILEHEADER_H */