Kern Sibbald [Fri, 17 Mar 2006 17:42:42 +0000 (17:42 +0000)]
17Mar06
- Implement regex test program in tools directory.
- Attempt to fix time problem with bsmtp with foreign langs.
- Add strip_trailing_newline() submitted by user.
- Implement regex matching in migrate.c
16Mar06
- Fix bug #537 to allow arbitrary time to mount a volume for
restore, if polling is turned on.
- If dir_user or dir-group is specified in ./configure apply it to
the working-dir. Fixes bug #533.
- If rescheduling a job cancel the previous incarnation with the SD.
Fixes bugs #566 and 557.
- Fix bug #567 do_message() definition type conflict.
Kern Sibbald [Tue, 14 Mar 2006 19:37:20 +0000 (19:37 +0000)]
- Add more jcr methods and make mutex and use_count private.
- Create lock/unlock methods for jcr.
- Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading
records to get to seek position.
- Integrate patch from bug #561 to correct conio.c signal definitions.
- Fix Rescheduling failed Jobs. Ensure that SD message thread
terminates correctly by doing pthread_kill(). Do not destroy
SD cond wait variable between executions of the job. Use local
mutex for cond variable to avoid blocking jcr chain. Fix poor
use of jcr use count in jobq.c for restarted jobs.
- Fix obsolete usage of foreach_dlist() to use foreach_jcr() in
lib/jcr.c -- prevents locking the jcr chaing.
- Apply patch from bug #564, which corrects listing volumes with
multiple autochangers. Apply same fix to next volume list.
- Fix bug #562 where restore bootstrap file is not unique.
- More details in implementing David's migration syntax proposal.
- Save and restore dcr when swapping drives so that if we have
a write dcr it is not lost.
- Use new routine lock_reservations() to lock the reservations
system, and call it while looking for a volume in askdir.c.
This could possibly fix bug #543.
- Stop SD command loop if job is canceled.
Kern Sibbald [Wed, 8 Mar 2006 21:17:07 +0000 (21:17 +0000)]
- Rename mac.c migrate.c
- Add user friendly display of VolBytes in job report.
- Rename target... to previous... to make it a bit easier to
understand.
- Add selection type and selection pattern to Migration (idea
given by David Boyes)
Kern Sibbald [Mon, 27 Feb 2006 11:21:44 +0000 (11:21 +0000)]
27Feb06
- Modify the Python class examples to inherit object -- new way
of defining classes. Patch from Felix Schwartz.
- Implement jobuid to replace old usage of job in keywords as
suggested by Eric Bollengier.
- Apply patch for enhancing wait from Eric Bollengier. On can now:
wait (wait for all jobs to stop)
wait jobid=nn
wait jobuid=unique id
wait job=job-name
- Implement write variables for Python to set Priority (anytime), and
Job Level, only during JobInit event.
Kern Sibbald [Thu, 23 Feb 2006 20:04:22 +0000 (20:04 +0000)]
- Add Rudolf Cejka's new rc-chio-changer.
- Implement pulling Volume from Scratch Pool if the
Volume is in the autochanger.
- Implement additional command arguments for update Volume.
Kern Sibbald [Mon, 20 Feb 2006 20:04:01 +0000 (20:04 +0000)]
20Feb06
- Note. Your database must be updated, or you must create
a new database. I have not yet incremented the database level.
- Add Location table.
- Add LocationId, DeviceId, and MediaTypeId to Media record. 18Feb06
- Implement create/get mac record in database for adding extended
Migration data to the job record.
- Add new MAC table to update/make database scripts.
- Return Storage name used when getting VolumeNames for a job.
- Change bsr file keyword Storage to Device, which is more accurate.
- Ensure that Mac records are pruned/purged.
- Tweak SD tools to deal with changing media type.
- Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...)
- Pass pointer to dcr pointer to acquire_device_for_read() so
that the subroutine can switch devices, and hence dcrs.
- Modify the multiple MediaType read code to re-use the same
dcr when switching devices. This makes the code much more
robust.
- Integrate patch from Karl Hakimian that reads JobIds, FileIndexes
from a table for restore.
- Add Storage name to VolParams, but it really should be Device.
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.