]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/dird_conf.h
Add new files
[bacula/bacula] / bacula / src / dird / dird_conf.h
index fc73409996357da7d34b52e065138971f28971a4..869343b245bd8bf6da8ccc15c5d9387dc5d2a21b 100644 (file)
 /*
  * Resource codes -- they must be sequential for indexing   
  */
-#define R_FIRST                       1001
-
-#define R_DIRECTOR                    1001
-#define R_CLIENT                      1002
-#define R_JOB                         1003
-#define R_STORAGE                     1004
-#define R_CATALOG                     1005
-#define R_SCHEDULE                    1006
-#define R_FILESET                     1007
-#define R_GROUP                       1008
-#define R_POOL                        1009
-#define R_MSGS                        1010
-#define R_COUNTER                     1011
-
-#define R_LAST                        R_COUNTER
+#define R_FIRST               1001
+
+#define R_DIRECTOR            1001
+#define R_CLIENT              1002
+#define R_JOB                 1003
+#define R_STORAGE             1004
+#define R_CATALOG             1005
+#define R_SCHEDULE            1006
+#define R_FILESET             1007
+#define R_GROUP               1008
+#define R_POOL                1009
+#define R_MSGS                1010
+#define R_COUNTER             1011
+#define R_CONSOLE             1012
+
+#define R_LAST                R_CONSOLE
 
 /*
  * Some resource attributes
  */
-#define R_NAME                        1020
-#define R_ADDRESS                     1021
-#define R_PASSWORD                    1022
-#define R_TYPE                        1023
-#define R_BACKUP                      1024
+#define R_NAME                1020
+#define R_ADDRESS             1021
+#define R_PASSWORD            1022
+#define R_TYPE                1023
+#define R_BACKUP              1024
 
 
 /* Used for certain KeyWord tables */
@@ -76,32 +77,65 @@ struct s_jt {
 };
 
 /* Definition of the contents of each Resource */
+/* Needed for forward references */
+struct SCHED;
+struct CLIENT;
+struct FILESET;
+struct POOL;
+struct RUN;
 
 /* 
  *   Director Resource  
  *
  */
-struct s_res_dir {
+struct DIRRES {
    RES   hdr;
    int   DIRport;                     /* where we listen -- UA port server port */
    char *DIRaddr;                     /* bind address */
    char *password;                    /* Password for UA access */
+   int enable_ssl;                    /* Use SSL for UA */
    char *query_file;                  /* SQL query file */
    char *working_directory;           /* WorkingDirectory */
    char *pid_directory;               /* PidDirectory */
    char *subsys_directory;            /* SubsysDirectory */
-   struct s_res_msgs *messages;       /* Daemon message handler */
+   int require_ssl;                   /* Require SSL for all connections */
+   MSGS *messages;                    /* Daemon message handler */
    uint32_t MaxConcurrentJobs;        /* Max concurrent jobs for whole director */
    utime_t FDConnectTimeout;          /* timeout for connect in seconds */
    utime_t SDConnectTimeout;          /* timeout in seconds */
 };
-typedef struct s_res_dir DIRRES;
+
+/* 
+ *    Console Resource
+ */
+struct CONRES {
+   RES   hdr;
+   char *password;                    /* UA server password */
+   int enable_ssl;                    /* Use SSL */
+};
+
+
+/*
+ *   Catalog Resource
+ *
+ */
+struct CAT {
+   RES   hdr;
+
+   int   db_port;                     /* Port -- not yet implemented */
+   char *db_address;                  /* host name for remote access */
+   char *db_socket;                   /* Socket for local access */
+   char *db_password;
+   char *db_user;
+   char *db_name;
+};
+
 
 /*
  *   Client Resource
  *
  */
-struct s_res_client {
+struct CLIENT {
    RES   hdr;
 
    int   FDport;                      /* Where File daemon listens */
@@ -110,17 +144,17 @@ struct s_res_client {
    utime_t JobRetention;              /* job retention period in seconds */
    char *address;
    char *password;
-   struct s_res_cat    *catalog;       /* Catalog resource */
+   CAT *catalog;                      /* Catalog resource */
    uint32_t MaxConcurrentJobs;        /* Maximume concurrent jobs */
-   semlock_t sem;                      /* client semaphore */
+   semlock_t sem;                     /* client semaphore */
+   int enable_ssl;                    /* Use SSL */
 };
-typedef struct s_res_client CLIENT;
 
 /*
  *   Store Resource
  * 
  */
-struct s_res_store {
+struct STORE {
    RES   hdr;
 
    int   SDport;                      /* port where Directors connect */
@@ -132,30 +166,15 @@ struct s_res_store {
    int  autochanger;                  /* set if autochanger */
    uint32_t MaxConcurrentJobs;        /* Maximume concurrent jobs */
    semlock_t sem;                     /* storage semaphore */
+   int enable_ssl;                    /* Use SSL */
 };
-typedef struct s_res_store STORE;
 
-/*
- *   Catalog Resource
- *
- */
-struct s_res_cat {
-   RES   hdr;
-
-   int   db_port;                     /* Port -- not yet implemented */
-   char *db_address;                  /* host name for remote access */
-   char *db_socket;                   /* Socket for local access */
-   char *db_password;
-   char *db_user;
-   char *db_name;
-};
-typedef struct s_res_cat CAT;
 
 /*
  *   Job Resource
  *
  */
-struct s_res_job {
+struct JOB {
    RES   hdr;
 
    int   JobType;                     /* job type (backup, verify, restore */
@@ -175,17 +194,19 @@ struct s_res_job {
    int PruneVolumes;                  /* Force pruning of Volumes */
    int SpoolAttributes;               /* Set to spool attributes in SD */
    uint32_t MaxConcurrentJobs;        /* Maximume concurrent jobs */
+   int RescheduleOnError;             /* Set to reschedule on error */
+   int RescheduleTimes;               /* Number of times to reschedule job */
+   utime_t RescheduleInterval;        /* Reschedule interval */
   
-   struct s_res_msgs   *messages;     /* How and where to send messages */
-   struct s_res_sch    *schedule;     /* When -- Automatic schedule */
-   struct s_res_client *client;       /* Who to backup */
-   struct s_res_fs     *fileset;      /* What to backup -- Fileset */
-   struct s_res_store  *storage;      /* Where is device -- Storage daemon */
-   struct s_res_pool   *pool;         /* Where is media -- Media Pool */
+   MSGS                *messages;     /* How and where to send messages */
+   SCHED               *schedule;     /* When -- Automatic schedule */
+   CLIENT              *client;       /* Who to backup */
+   FILESET             *fileset;      /* What to backup -- Fileset */
+   STORE               *storage;      /* Where is device -- Storage daemon */
+   POOL                *pool;         /* Where is media -- Media Pool */
 
    semlock_t sem;                     /* Job semaphore */
 };
-typedef struct s_res_job JOB;
 
 #define MAX_FOPTS 30
 
@@ -213,7 +234,7 @@ typedef struct s_incexc_item INCEXE;
  *   FileSet Resource
  *
  */
-struct s_res_fs {
+struct FILESET {
    RES   hdr;
 
    int finclude;                      /* Set if finclude/fexclude used */
@@ -225,50 +246,47 @@ struct s_res_fs {
    struct MD5Context md5c;            /* MD5 of include/exclude */
    char MD5[30];                      /* base 64 representation of MD5 */
 };
-typedef struct s_res_fs FILESET;
 
  
 /* 
  *   Schedule Resource
  *
  */
-struct s_res_sch {
+struct SCHED {
    RES   hdr;
 
-   struct s_run *run;
+   RUN *run;
 };
-typedef struct s_res_sch SCHED;
 
 /*
  *   Group Resource (not used)
  *
  */
-struct s_res_group {
+struct GROUP {
    RES   hdr;
 };
-typedef struct s_res_group GROUP;
 
 /*
  *   Counter Resource
  */
-struct s_res_counter {
+struct COUNTER {
    RES   hdr;
 
    int32_t MinValue;                  /* Minimum value */
    int32_t MaxValue;                  /* Maximum value */
-   int     Global;                    /* global/local */
-   char  *WrapCounter;                /* Wrap counter name */
+   int32_t CurrentValue;              /* Current value */
+   CAT   *WrapCounter;                /* Wrap counter name */
+   CAT   *Catalog;                    /* Where to store */
+   bool    created;                   /* Created in DB */
 };
-typedef struct s_res_counter COUNTER;
 
 /*
  *   Pool Resource   
  *
  */
-struct s_res_pool {
+struct POOL {
    RES   hdr;
 
-   struct s_res_counter counter;      /* Counter resources */
    char *pool_type;                   /* Pool type */
    char *label_format;                /* Label format string */
    char *cleaning_prefix;             /* Cleaning label prefix */
@@ -286,33 +304,32 @@ struct s_res_pool {
    int   AutoPrune;                   /* default for pool auto prune */
    int   Recycle;                     /* default for media recycle yes/no */
 };
-typedef struct s_res_pool POOL;
 
 
 /* Define the Union of all the above
  * resource structure definitions.
  */
-union u_res {
-   struct s_res_dir     res_dir;
-   struct s_res_client  res_client;
-   struct s_res_store   res_store;
-   struct s_res_cat     res_cat;
-   struct s_res_job     res_job;
-   struct s_res_fs      res_fs;
-   struct s_res_sch     res_sch;
-   struct s_res_group   res_group;
-   struct s_res_pool    res_pool;
-   struct s_res_msgs    res_msgs;
-   struct s_res_counter res_counter;
-   RES hdr;
+union URES {
+   DIRRES     res_dir;
+   CONRES     res_con;
+   CLIENT     res_client;
+   STORE      res_store;
+   CAT        res_cat;
+   JOB        res_job;
+   FILESET    res_fs;
+   SCHED      res_sch;
+   GROUP      res_group;
+   POOL       res_pool;
+   MSGS       res_msgs;
+   COUNTER    res_counter;
+   RES        hdr;
 };
 
-typedef union u_res URES;
 
 
 /* Run structure contained in Schedule Resource */
-struct s_run {
-   struct s_run *next;                /* points to next run record */
+struct RUN {
+   RUN *next;                         /* points to next run record */
    int level;                         /* level override */
    int job_type;  
    POOL *pool;                        /* Pool override */
@@ -329,4 +346,3 @@ struct s_run {
    char wday[nbytes_for_bits(7)];     /* bit set for each day of the week */
    char wpos[nbytes_for_bits(5)];     /* week position */
 };
-typedef struct s_run RUN;