Kern Sibbald [Tue, 14 Feb 2006 14:11:10 +0000 (14:11 +0000)]
- Add disk-changer to scripts directory + configure/Makefile
- Eliminate PoolId from jcr -- it is in jcr->jr.PoolId
- Implement store_bit scanner to replace store_yesno. Mostly done.
- Implement new store_bool that stores in a bool.
- Add true/false to yes/no conf directives.
- Make first cut at changing appropriate store_yesno to store_bool.
- Complete implementation of Pool storage devices.
- Move starting clones to job.c
- Move create_restore_bootstrap_file() to job.c
- Make copy_storage() more general to be able to handle
Pool storage.
- Cleanup a lot of migration code for manual running, including
using Pool storage.
- Move getting a scratch Volume into a subroutine.
- Make all places a Volume that is added to a pool to
respect max vols.
- Fix bug in autochanger recycle code (improper edit 64 bit).
- Fix segfault in restore command when no value specified.
- Start adding code to handle multiple MediaTypes in restore.
- Eliminate race condition in getting Volume name for
two drive autochanger.
- More debug code in autochanger.
- Add storage keyword to bootstrap file, add parsing.
- Move slot in bsr file into Volume record as there will be
a different slot for each Volume.
- Create reserve.h
Kern Sibbald [Mon, 30 Jan 2006 14:24:17 +0000 (14:24 +0000)]
- Continue implementing migration.
- Implement support for removable filesystems in SD.
- Ensure that btraceback scripts can be read by anyone.
- Replace dvd-freespace and dvd-writepart by dvd-handler.
- Correct bug where canceling restore before the FD contacts
the SD causes the drive to be left in read mode.
- Move ofline_or_rewind into DEVICE::close().
- Eliminate close_device.
- Convert several dev subroutines to methods (e.g. bsf,
eod, ...)
- Eliminate force_close_device().
- Implement Device Type directive in Device resource that
can have values File, Tape, Fifo, DVD, or Prog.
- Add has_cap() method to Device.
Landon Fuller [Tue, 17 Jan 2006 06:26:20 +0000 (06:26 +0000)]
Support for FD-side file encryption.
- Added MIN() and MAX() macros to baconfig.h
- Added stream types for win32, file, and macos encrypted data (with and without gzip)
- Added FO_ENCRYPT file flag.
- Implement crypto_cipher_* encryption functions
- Add encryption logic to save_file()
Decryption support has not been committed (yet):
If you use this code to encrypt your data, you will be unable to decrypt it!
Landon Fuller [Mon, 16 Jan 2006 02:45:19 +0000 (02:45 +0000)]
Fix a logic error in the restoration code that could cause the signature of the last restored file to not be validated, and leak both the crypto session and the signature data.
Landon Fuller [Mon, 16 Jan 2006 02:01:47 +0000 (02:01 +0000)]
- Add support for testing the availability of a PEM-encoded private key
- Load private keys from Master Keys and Signing Keys where possible
- Clarify pki_* variable names in the JCR structure.
- Fix small bugs in RES_CLIENT deallocation and copying.
- Add full support for decoding and decrypting crypto session w/ symmetric keys
Kern Sibbald [Sun, 15 Jan 2006 11:21:54 +0000 (11:21 +0000)]
15Jan06
- Add periodic (every 24 hours) garbage collection of memory
pool by releasing free buffers.
14Jan06
- Correct bug counting sized (for display only) in smartall.c
- Print FD mempool stats if debug > 0 rather than 5.
12Jan06
- Make db_lock() mutex error fail the job rather than abort
Bacula. Canceling the job caused the mutex to fail.
- Correct bug in alist.c that re-allocated the list if the
number of items goes to zero.
- Move the reservation system thread locking to the top level
so that one job at a time tries all possible drives before
waiting.
- Implement a reservation 'fail' message queue that is built
and destroyed on each pass through the reservation system.
These messages are displayed in a 'Jobs waiting to reserve
a drive' list during a 'status storage='. Note, multiple
messages will generally print for each JobId because they
represent the different problems with either the same drive
or different drives. If this output proves too confusing
of voluminous, I will display it only when debug level 1
or greater is enabled in the SD.
11Jan06
- Add enable/disable job=<job-name>. This command prevents
the specified job from being scheduled. Even when disabled,
the job can be manually started from the console.
- During 'update slots' clear all InChanger flags where the
StorageId is zero (old Media records).
Landon Fuller [Sat, 14 Jan 2006 22:23:22 +0000 (22:23 +0000)]
- Rename "crypto_recipients" to "crypto_session" to more accurate describe the crypto session data (which includes the symmetric session keys).
- Add the STREAM_ENCRYPTED_SESSION_DATA stream type.
- Add support for encoding and decoding session data.
- Send encoded session data to the storage daemon
Kern Sibbald [Sat, 7 Jan 2006 15:02:14 +0000 (15:02 +0000)]
07Jan06
- Add PoolId to Job record when updating it at job start time.
06Jan06
- Pull in more code from 1.39 so that there are fewer file
differences (the new ua_dotcmds.c, base64.h, crypto.h
hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c
util.c. Aside from ua_dotcmds.c these are mostly crypto
upgrades.
- Implement new method of walking the jcr chain. The
incr/dec of the use_count is done within the walking
routines. This should prevent a jcr from being freed
from under the walk routines.
Kern Sibbald [Thu, 5 Jan 2006 16:23:46 +0000 (16:23 +0000)]
- Start implementing Verify list output.
- Move the suitable_drive flag to a better place to prevent
premature termination of the reservation if all drives
are busy -- should fix Arno's diff/inc pool failures. 26Dec05
- Add mutex to single thread VSS code in Win32.
Kern Sibbald [Thu, 22 Dec 2005 21:37:01 +0000 (21:37 +0000)]
- Simplify code in askdir.c that waits for creating an appendable
volume so that it can handle multiple returns from the wait
code.
- Modify the wait code to permit multiple returns.
- Return a zero when autochanger drives is called and
it is not an autochanger.
- Make rewind_dev() a method taking a DCR as an argument.
This permits closing and reopening the drive if the
rewind fails as happens if the drive was loaded while the
file descriptor was open. This refreshes the file descriptor.
- Remove the ST_OPENED flag and always rely on fd < 0 for knowing
if the device is open or not. This should eliminate
Arnos problem.
- Return error if reserve cannot find at least one suitable device.
- Make wait_for_sysop() return correct state information.
- Fix Win32 state file problem. write was not using compat
code. This should fix bug #500.
Kern Sibbald [Sat, 17 Dec 2005 19:47:58 +0000 (19:47 +0000)]
- Fix seg fault if user labels a drive directory bug #513
- Remove quotes around Version as it breaks things. 16Dec05
- Merge in Aleksandar Milivojevic's mods to the spec file.
- Apply sparse code fix for raw drives and fifos. Bug 506
- Thorsten fixed Unicode cd problem with wx-console bug 505.
Kern Sibbald [Thu, 8 Dec 2005 20:32:17 +0000 (20:32 +0000)]
- Apply patch supplied by user (slightly modified) to fix
correct detection of holes in block devices and FIFOs.
Bug # 506.
- Apply patch supplied by user (slightly modified)
to fix SD hang with multiple pools and bad client
IP. Fixes bug # 508.
Kern Sibbald [Wed, 7 Dec 2005 18:20:58 +0000 (18:20 +0000)]
- Modify most restore error messages to be queued so that they
appear at the end of the job rather than mixted with the restore
listing where they could be lost.
Kern Sibbald [Wed, 7 Dec 2005 10:10:30 +0000 (10:10 +0000)]
- Remove warning message about multiple saves of hardlinked files
from find_one.c as it can generate too many warning messages. 06Dec05
- Reset timeout values before select() per patch from
Frank Sweetser for problems with non-blocking sockets.
- Unlink the state file if either reading or writing it gets
errors. Hopefully this will fix Win32 exit problems.
- Add sanity check in append.c to ensure that dcr is not NULL.
This can happen if multiple drive autochanger SCSI control
channel and drive indicies do not correspond.
Kern Sibbald [Mon, 5 Dec 2005 11:49:34 +0000 (11:49 +0000)]
- Remove argument from create_bacula_database for SQLite as it
caused an error.
- Add back index code so that two drive autochangers can get
a second tape.
- Change a bunch of debug levels to aid debugging autochangers.
- Fix reservation so that mutexes are properly applied.
- Rework reservation algorithm so that two drives can be used
at the same time.