X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=server-src%2Fdiskfile.h;h=a7f13b60c233cf70d4eb3436d720154a17ee3707;hb=94a044f90357edefa6f4ae9f0b1d5885b0e34aee;hp=ae17fc8c9fb3d995ac079afa26844e1f730c830e;hpb=0de2ad0a86685398621fb8ffa6990c029681bb3a;p=debian%2Famanda diff --git a/server-src/diskfile.h b/server-src/diskfile.h index ae17fc8..a7f13b6 100644 --- a/server-src/diskfile.h +++ b/server-src/diskfile.h @@ -25,7 +25,7 @@ * University of Maryland at College Park */ /* - * $Id: diskfile.h,v 1.11.4.3.4.1.2.9.2.3 2004/08/03 11:27:17 martinea Exp $ + * $Id: diskfile.h,v 1.38 2006/06/22 20:41:33 martinea Exp $ * * interface for disklist file reading code */ @@ -36,61 +36,83 @@ #include "conffile.h" #include "amfeatures.h" +typedef struct netif_s { + struct netif_s *next; + interface_t *config; + unsigned long curusage; +} netif_t; + typedef struct amhost_s { struct amhost_s *next; /* next host */ char *hostname; /* name of host */ struct disk_s *disks; /* linked list of disk records */ int inprogress; /* # dumps in progress */ int maxdumps; /* maximum dumps in parallel */ - interface_t *netif; /* network interface this host is on */ + netif_t *netif; /* network interface this host is on */ time_t start_t; /* start dump after this time */ char *up; /* generic user pointer */ am_feature_t *features; /* feature set */ } am_host_t; typedef struct disk_s { - int line; /* line number of last definition */ + int line; /* line number of last definition */ struct disk_s *prev, *next; /* doubly linked disk list */ - am_host_t *host; /* host list */ + am_host_t *host; /* host list */ struct disk_s *hostnext; - char *name; /* label name for disk */ - char *device; /* device name for disk, eg "sd0g" */ - char *dtype_name; /* name of dump type XXX shouldn't need this */ - char *program; /* dump program, eg DUMP, GNUTAR */ - sl_t *exclude_file; /* file exclude spec */ - sl_t *exclude_list; /* exclude list */ - sl_t *include_file; /* file include spec */ - sl_t *include_list; /* include list */ - int exclude_optional; /* exclude list are optional */ - int include_optional; /* include list are optional */ - long priority; /* priority of disk */ - long dumpcycle; /* days between fulls */ - long frequency; /* XXX - not used */ - auth_t auth; /* type of authentication (per system?) */ - int maxdumps; /* max number of parallel dumps (per system) */ - int maxpromoteday; /* maximum of promote day */ - int bumppercent; - int bumpsize; - int bumpdays; - double bumpmult; - time_t start_t; /* start this dump after this time */ - int strategy; /* what dump strategy to use */ - int estimate; /* what estimate strategy to use */ - int compress; /* type of compression to use */ - float comprate[2]; /* default compression rates */ + char *hostname; /* hostname */ + char *name; /* label name for disk */ + char *device; /* device name for disk, eg "sd0g" */ + char *dtype_name; /* name of dump type XXX shouldn't need this */ + char *program; /* dump program, eg DUMP, STAR, GNUTAR */ + char *srvcompprog; /* custom compression server filter */ + char *clntcompprog; /* custom compression client filter */ + char *srv_encrypt; /* custom encryption server filter */ + char *clnt_encrypt; /* custom encryption client filter */ + char *amandad_path; /* amandad path on the client */ + char *client_username; /* username to connect on the client */ + char *ssh_keys; /* ssh_key file to use */ + sl_t *exclude_file; /* file exclude spec */ + sl_t *exclude_list; /* exclude list */ + sl_t *include_file; /* file include spec */ + sl_t *include_list; /* include list */ + int exclude_optional; /* exclude list are optional */ + int include_optional; /* include list are optional */ + int priority; /* priority of disk */ + off_t tape_splitsize; /* size of dumpfile chunks on tape */ + char *split_diskbuffer; /* place where we can buffer PORT-WRITE dumps other than RAM */ + off_t fallback_splitsize; /* size for in-RAM PORT-WRITE buffers */ + int dumpcycle; /* days between fulls */ + long frequency; /* XXX - not used */ + char *security_driver; /* type of authentication (per disk) */ + int maxdumps; /* max number of parallel dumps (per system) */ + int maxpromoteday; /* maximum of promote day */ + int bumppercent; + off_t bumpsize; + int bumpdays; + double bumpmult; + time_t starttime; /* start this dump after this time */ + time_t start_t; /* start this dump after this time */ + int strategy; /* what dump strategy to use */ + int ignore; /* ignore */ + int estimate; /* what estimate strategy to use */ + int compress; /* type of compression to use */ + int encrypt; /* type of encryption to use */ + char *srv_decrypt_opt; /* server-side decryption option parameter to use */ + char *clnt_decrypt_opt; /* client-side decryption option parameter to use */ + double comprate[2]; /* default compression rates */ /* flag options */ - unsigned int record:1; /* record dump in /etc/dumpdates ? */ - unsigned int skip_incr:1; /* incs done externally ? */ - unsigned int skip_full:1; /* fulls done externally ? */ - unsigned int no_hold:1; /* don't use holding disk ? */ - unsigned int kencrypt:1; - unsigned int index:1; /* produce an index ? */ - int spindle; /* spindle # - for parallel dumps */ - int inprogress; /* being dumped now? */ - int todo; - void *up; /* generic user pointer */ + int record; /* record dump in /etc/dumpdates ? */ + int skip_incr; /* incs done externally ? */ + int skip_full; /* fulls done externally ? */ + int to_holdingdisk; /* use holding disk ? */ + int kencrypt; + int index; /* produce an index ? */ + int spindle; /* spindle # - for parallel dumps */ + int inprogress; /* being dumped now? */ + int todo; + void *up; /* generic user pointer */ } disk_t; typedef struct disklist_s { @@ -100,24 +122,28 @@ typedef struct disklist_s { #define empty(dlist) ((dlist).head == NULL) -disklist_t *read_diskfile P((char *filename)); +int read_diskfile(const char *, disklist_t *); + +am_host_t *lookup_host(const char *hostname); +disk_t *lookup_disk(const char *hostname, const char *diskname); + +disk_t *add_disk(disklist_t *list, char *hostname, char *diskname); -disk_t *add_disk P((char *hostname, char *diskname)); -am_host_t *lookup_host P((char *hostname)); -disk_t *lookup_disk P((char *hostname, char *diskname)); +void enqueue_disk(disklist_t *list, disk_t *disk); +void headqueue_disk(disklist_t *list, disk_t *disk); +void insert_disk(disklist_t *list, disk_t *disk, int (*f)(disk_t *a, disk_t *b)); +int find_disk(disklist_t *list, disk_t *disk); +void sort_disk(disklist_t *in, disklist_t *out, int (*f)(disk_t *a, disk_t *b)); +disk_t *dequeue_disk(disklist_t *list); +void remove_disk(disklist_t *list, disk_t *disk); -void enqueue_disk P((disklist_t *list, disk_t *disk)); -void headqueue_disk P((disklist_t *list, disk_t *disk)); -void insert_disk P((disklist_t *list, disk_t *disk, int (*f)(disk_t *a, disk_t *b))); -int find_disk P((disklist_t *list, disk_t *disk)); -void sort_disk P((disklist_t *in, disklist_t *out, int (*f)(disk_t *a, disk_t *b))); -disk_t *dequeue_disk P((disklist_t *list)); -void remove_disk P((disklist_t *list, disk_t *disk)); +void dump_queue(char *str, disklist_t q, int npr, FILE *f); -void dump_queue P((char *str, disklist_t q, int npr, FILE *f)); +char *optionstr(disk_t *dp, am_feature_t *their_features, FILE *fdout); -char *optionstr P((disk_t *dp, am_feature_t *their_features, FILE *fdout)); +char *match_disklist(disklist_t *origqp, int sargc, char **sargv); +void free_disklist(disklist_t *dl); -void match_disklist P((disklist_t *origqp, int sargc, char **sargv)); +netif_t *disklist_netifs(void); #endif /* ! DISKFILE_H */