* Version $Id$
*/
/*
- Copyright (C) 2000-2005 Kern Sibbald
+ Copyright (C) 2000-2006 Kern Sibbald
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.
+ modify it under the terms of the GNU General Public License
+ version 2 as amended with additional clauses defined in the
+ file LICENSE in the main source directory.
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.
-
- 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ the file LICENSE for additional details.
*/
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 */
+ int tls_enable; /* Enable TLS */
+ int tls_require; /* Require TLS */
+ int 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 */
};
char *working_directory; /* working directory for checkpoints */
char *pid_directory;
char *subsys_directory;
- int require_ssl; /* Require SSL on all connections */
+ char *scripts_directory;
uint32_t max_concurrent_jobs; /* maximum concurrent jobs to run */
MSGS *messages; /* Daemon message handler */
utime_t heartbeat_interval; /* Interval to send hb to FD */
+ int tls_enable; /* Enable TLS */
+ int tls_require; /* Require TLS */
+ int 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 */
+};
+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 */
+ pthread_mutex_t changer_mutex; /* One changer operation at a time */
};
-typedef struct s_res_store STORES;
/* Device specific definitions */
class DEVRES {
char *changer_command; /* Changer command -- external program */
char *alert_command; /* Alert command -- external program */
char *spool_directory; /* Spool file directory */
+ int dev_type; /* device type */
int label_type; /* label type */
+ int autoselect; /* Automatically select from AutoChanger */
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 */
+ 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 max_open_vols; /* maximum simultaneous open volumes */
uint32_t min_block_size; /* min block size */
uint32_t max_block_size; /* max block size */
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;