]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/stored_conf.h
Change copyright as per agreement with FSFE
[bacula/bacula] / bacula / src / stored / stored_conf.h
index 448f41a879fb14dbe20e313575f3f1e5b9a41316..9dee7ba687930089c778e75926f7c70d9ca547ba 100644 (file)
@@ -1,26 +1,27 @@
 /*
- * Resource codes -- they must be sequential for indexing
- *
- *   Version $Id$
- */
-/*
-   Copyright (C) 2000-2005 Kern Sibbald
+   Bacula(R) - The Network Backup Solution
+
+   Copyright (C) 2000-2016 Kern Sibbald
+
+   The original author of Bacula is Kern Sibbald, with contributions
+   from many others, a complete list can be found in the file AUTHORS.
+
+   You may use this file and others of this release according to the
+   license defined in the LICENSE file, which includes the Affero General
+   Public License, v3.0 ("AGPLv3") and some additional permissions and
+   terms pursuant to its AGPLv3 Section 7.
 
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of
-   the License, or (at your option) any later version.
+   This notice must be preserved when any source code is 
+   conveyed and/or propagated.
 
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-   General Public License for more details.
+   Bacula(R) is a registered trademark of Kern Sibbald.
+*/
 
-   You should have received a copy of the GNU General Public
-   License along with this program; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.
+extern s_kw dev_types[];
 
+/*
+ * Resource codes -- they must be sequential for indexing
+ *
  */
 
 enum {
@@ -49,8 +50,19 @@ public:
 
    char *password;                    /* Director password */
    char *address;                     /* Director IP address or zero */
-   int enable_ssl;                    /* Use SSL with this Director */
-   int monitor;                       /* Have only access to status and .status functions */
+   bool monitor;                      /* Have only access to status and .status functions */
+   bool tls_authenticate;             /* Authenticate with TLS */
+   bool tls_enable;                   /* Enable TLS */
+   bool tls_require;                  /* Require TLS */
+   bool tls_verify_peer;              /* TLS Verify Client Certificate */
+   char *tls_ca_certfile;             /* TLS CA Certificate File */
+   char *tls_ca_certdir;              /* TLS CA Certificate Directory */
+   char *tls_certfile;                /* TLS Server Certificate File */
+   char *tls_keyfile;                 /* TLS Server Key File */
+   char *tls_dhfile;                  /* TLS Diffie-Hellman Parameters */
+   alist *tls_allowed_cns;            /* TLS Allowed Clients */
+
+   TLS_CONTEXT *tls_ctx;              /* Shared TLS Context */
 };
 
 
@@ -64,12 +76,37 @@ public:
    char *working_directory;           /* working directory for checkpoints */
    char *pid_directory;
    char *subsys_directory;
-   int require_ssl;                   /* Require SSL on all connections */
+   char *plugin_directory;            /* Plugin directory */
+   char *scripts_directory;
    uint32_t max_concurrent_jobs;      /* maximum concurrent jobs to run */
    MSGS *messages;                    /* Daemon message handler */
+   utime_t ClientConnectTimeout;      /* Max time to wait to connect client */
    utime_t heartbeat_interval;        /* Interval to send hb to FD */
+   utime_t client_wait;               /* Time to wait for FD to connect */
+   bool tls_authenticate;             /* Authenticate with TLS */
+   bool tls_enable;                   /* Enable TLS */
+   bool tls_require;                  /* Require TLS */
+   bool tls_verify_peer;              /* TLS Verify Client Certificate */
+   char *tls_ca_certfile;             /* TLS CA Certificate File */
+   char *tls_ca_certdir;              /* TLS CA Certificate Directory */
+   char *tls_certfile;                /* TLS Server Certificate File */
+   char *tls_keyfile;                 /* TLS Server Key File */
+   char *tls_dhfile;                  /* TLS Diffie-Hellman Parameters */
+   alist *tls_allowed_cns;            /* TLS Allowed Clients */
+   char *verid;                       /* Custom Id to print in version command */
+   TLS_CONTEXT *tls_ctx;              /* Shared TLS Context */
+
+};
+typedef class s_res_store STORES;
+
+class AUTOCHANGER {
+public:
+   RES hdr;
+   alist *device;                     /* List of DEVRES device pointers */
+   char *changer_name;                /* Changer device name */
+   char *changer_command;             /* Changer command  -- external program */
+   brwlock_t changer_lock;            /* One changer operation at a time */
 };
-typedef struct s_res_store STORES;
 
 /* Device specific definitions */
 class DEVRES {
@@ -79,45 +116,48 @@ public:
    char *media_type;                  /* User assigned media type */
    char *device_name;                 /* Archive device name */
    char *changer_name;                /* Changer device name */
+   char *control_name;                /* SCSI control device name */
    char *changer_command;             /* Changer command  -- external program */
    char *alert_command;               /* Alert command -- external program */
    char *spool_directory;             /* Spool file directory */
-   int   label_type;                  /* label type */
+   uint32_t dev_type;                 /* device type */
+   uint32_t label_type;               /* label type */
+   bool enabled;                      /* Set when enabled (default) */
+   bool autoselect;                   /* Automatically select from AutoChanger */
+   bool read_only;                    /* Drive is read only */
    uint32_t drive_index;              /* Autochanger drive index */
    uint32_t cap_bits;                 /* Capabilities of this device */
-   uint32_t max_changer_wait;         /* Changer timeout */
-   uint32_t max_rewind_wait;          /* maximum secs to wait for rewind */
-   uint32_t max_open_wait;            /* maximum secs to wait for open */
-   uint32_t max_open_vols;            /* maximum simultaneous open volumes */
+   utime_t max_changer_wait;          /* Changer timeout */
+   utime_t max_rewind_wait;           /* maximum secs to wait for rewind */
+   utime_t max_open_wait;             /* maximum secs to wait for open */
+   uint32_t padding_size;             /* adata block padding -- bytes */
+   uint32_t file_alignment;           /* adata file alignment -- bytes */
    uint32_t min_block_size;           /* min block size */
    uint32_t max_block_size;           /* max block size */
    uint32_t max_volume_jobs;          /* max jobs to put on one volume */
    uint32_t max_network_buffer_size;  /* max network buf size */
+   uint32_t max_concurrent_jobs;      /* maximum concurrent jobs this drive */
    utime_t  vol_poll_interval;        /* interval between polling volume during mount */
    int64_t max_volume_files;          /* max files to put on one volume */
    int64_t max_volume_size;           /* max bytes to put on one volume */
    int64_t max_file_size;             /* max file size in bytes */
    int64_t volume_capacity;           /* advisory capacity */
+   int64_t min_free_space;            /* Minimum disk free space */
    int64_t max_spool_size;            /* Max spool size for all jobs */
    int64_t max_job_spool_size;        /* Max spool size for any single job */
-   
+
    int64_t max_part_size;             /* Max part size */
    char *mount_point;                 /* Mount point for require mount devices */
    char *mount_command;               /* Mount command */
    char *unmount_command;             /* Unmount command */
    char *write_part_command;          /* Write part command */
    char *free_space_command;          /* Free space command */
-   
+
+   /* The following are set at runtime */
    DEVICE *dev;                       /* Pointer to phyical dev -- set at runtime */
+   AUTOCHANGER *changer_res;          /* pointer to changer res if any */
 };
 
-class AUTOCHANGER {
-public:
-   RES hdr;
-   alist *device;
-   char *changer_name;                /* Changer device name */
-   char *changer_command;             /* Changer command  -- external program */
-};
 
 union URES {
    DIRRES      res_dir;