Imported Upstream version 2.5.0p2
[debian/amanda] / server-src / diskfile.h
index 403b5692f71ba75bfb86975269f47a19938d90bc..f53441c9eb77f3feb335a18782bf3d602a7d8cf6 100644 (file)
@@ -25,7 +25,7 @@
  *                        University of Maryland at College Park
  */
 /*
- * $Id: diskfile.h,v 1.11.4.3.4.1.2.9 2003/01/04 03:35:54 martinea Exp $
+ * $Id: diskfile.h,v 1.32 2005/12/09 03:22:52 paddy_s Exp $
  *
  * interface for disklist file reading code
  */
@@ -36,8 +36,8 @@
 #include "conffile.h"
 #include "amfeatures.h"
 
-typedef struct host_s {
-    struct host_s *next;               /* next host */
+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 */
@@ -46,19 +46,23 @@ typedef struct host_s {
     time_t start_t;                    /* start dump after this time */
     char *up;                          /* generic user pointer */
     am_feature_t *features;            /* feature set */
-} host_t;
+} am_host_t;
 
 typedef struct disk_s {
     int line;                          /* line number of last definition */
     struct disk_s *prev, *next;                /* doubly linked disk list */
 
-    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 */
+    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 */
     sl_t *exclude_file;                        /* file exclude spec */
     sl_t *exclude_list;                        /* exclude list */
     sl_t *include_file;                        /* file include spec */
@@ -66,22 +70,33 @@ typedef struct disk_s {
     int exclude_optional;              /* exclude list are optional */
     int include_optional;              /* include list are optional */
     long priority;                     /* priority of disk */
+    long tape_splitsize;               /* size of dumpfile chunks on tape */
+    char *split_diskbuffer;            /* place where we can buffer PORT-WRITE dumps other than RAM */
+    long fallback_splitsize;           /* size for in-RAM PORT-WRITE buffers */
     long dumpcycle;                    /* days between fulls */
     long frequency;                    /* XXX - not used */
-    auth_t auth;                       /* type of authentication (per system?) */
+    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;
+    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 */
+    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 */
     float 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 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 ? */
+    unsigned int index:1;              /* produce an index ? */
     int spindle;                       /* spindle # - for parallel dumps */
     int inprogress;                    /* being dumped now? */
     int todo;
@@ -95,11 +110,12 @@ typedef struct disklist_s {
 #define empty(dlist)   ((dlist).head == NULL)
 
 
-disklist_t *read_diskfile P((char *filename));
+int read_diskfile P((const char *, disklist_t *));
 
-disk_t *add_disk P((char *hostname, char *diskname));
-host_t *lookup_host P((char *hostname));
-disk_t *lookup_disk P((char *hostname, char *diskname));
+am_host_t *lookup_host P((const char *hostname));
+disk_t *lookup_disk P((const char *hostname, const char *diskname));
+
+disk_t *add_disk P((disklist_t *list, char *hostname, char *diskname));
 
 void enqueue_disk P((disklist_t *list, disk_t *disk));
 void headqueue_disk P((disklist_t *list, disk_t *disk));
@@ -114,5 +130,6 @@ void dump_queue P((char *str, disklist_t q, int npr, FILE *f));
 char *optionstr P((disk_t *dp, am_feature_t *their_features, FILE *fdout));
 
 void match_disklist P((disklist_t *origqp, int sargc, char **sargv));
+void free_disklist P((disklist_t *dl));
 
 #endif /* ! DISKFILE_H */