              Technical notes on version 1.32 28Sep03
                        28 Sep 2003
                        Kern Sibbald

General:

Changes submitted this submission:
28Sep03
- Enhance manual faq, regression ...
- Make FreeBSD read sizes always be a multiple of 512. Needed
  to read raw disks.
- Make FreeBSD accept block AND character devices for raw
  disk reads.  On FreeBSD there are no block devices.
27Sep03
- Fix printing of EndTime on job report after rescheduling.
- Fix jobq.c error returns to clean up before returning.
- Make Cleaning tape aware of "unlabeled" volumes.
- If a job is rescheduled, ensure that old job is
  removed from SD's jcr queue -- i.e. it is still waiting
  for FD connection.
- Test rescheduling code.
- Change ./configure to detect Cygwin enviornments.
26Sep03
- Release beta version.
25Sep03
- Add regression and GUI-interface chapters to the manual.
- Fix "label" of a volume that is already in the catalog,
  but not yet labeled.
- Correct the test for spooling attributes which was backward.
  This caused the creation of a spool file in the working
  directory for every job run.
- Print to the job output stream when block checksum errors
  occur, but continue processing. If more than one occurs,
  print number at end of job.
24Sep03
- Remove a few unneeded tests from configure.in
- Modify configure to use -pthread on FreeBSD 4.8,
  but nothing on FreeBSD 5.1
- Clarify that bmicrosleep() takes sec and microsecs
- Apply Franc Carter's code to specify a DB host in 
  bscan.
- Fix sanity login length test in stored/dircmd.c
- remove old code fro stored/job.c
- Lots of work on regress so that it works on FreeBSD
  and Solaris.
20Sep03
- Make the default gnome-console wider (console.c)
- Add \r to the items that terminate a token.
- Replace a number strcpy() calls with bstrncpy().
- Added code to ensure that the names for each resource
  type are unique. Two resources of different types can
  have the same name.
- More documentation
- Added new full length modifiers for time intervals.
  Compatible with previous method EXCEPT a modifier is now
  manditory.
18Sep03
- Completely restructured recycling. It should work now, but
  in any case, the logic is much cleaner. A lot of new
  code in next_vol.c
- Added a few pthread_xx_destroy() for items inited.
- Nic Bellamy pointed out that it wasn't necessary to do 
  destroy() of static initialized pthread variables -- fixed
  watchdog.
- update VolStatus asked for the media and volume twice.
- Changed a few more strcpy() to bstrncpy().
16Sep03
- Made VolBytes=1 as indicator that the Volume is labeled.
- Modified creation of Media record to include VolBytes,
  same for sql_update - also set LabelDate if VolBytes = 1.
- Copy any statically linked programs to install directory.
- Change relabel flag to label in Update_media protocol Dir<->SD.
- Change a few strcpy to bstrncpy ...
- Update Media record after an automatic tape label.  
- Added more debug code to bnet_server and bnet.c to attempt to
  track down Alex's SD segfault (BSOCK==0)
- Add additional debug code for authentication errors in cram-md5.     
15Sep03
- Implement "list nextvol job=xx" and add Volume to Dir status.
- Retry waitpid if interrupted -- needed for FreeBSD!
- Move lex.c debug level to 900
12Sep03
- Add new aliases SDAddress, ...
- Final changes for variable expansion
- Possible fix to Alex's SD crashes
11Sep03
- Correct incrementing counters not in catalog -- reported by
  Chris Allen.
- Correct memory leak in core var.c code -- reported by 
  Chris Allen.
- Make documentation of variable substitution a bit clearer.
- Apply Nic Bellamy's patch to dbcheck.c to fix SQL to work
  on both MySQL and SQLite.
10Sep03
- Finally fixed the .messages that was sent during prompts
  in the console with no readline.
- Implement new Include/Exclude semantics.
- Fix a good number of segfaults reported by Chris Allen in
  the variable expansion code. 
- Print warning message if a job is blocked by user unmount.
- Fix additional variable expansion problem reported by Chris Allen.
- Fix pathconf() error status bug that caused a segfault on
  a FreeBSD system -- reported by Gernot Hueber.
07Sep03
- Make sure the console sends ".messages" only when at the
  command line prompt.
- Apply a patch from Nic Bellamy that corrects a file descriptor
  leak in the Storage deamon when a job is canceled. (Thanks)
06Sep03
- Implement < and | in File daemon.
- Implement ClientRunBeforeJob and ClientRunAfterJob.
- Corrected BSRatEOF to be BSFatEOF in btape --
  reported by Lars Koller.
- Documented BSFatEof
- Eliminated save_level in FD replaced by JobLevel.
- Increased MAX_RES_ITEMS from 35 to 50 to handle
  new ClientRunBeforeJob ...
05Sep03
- Add line number in error message for restore from file.
- Correct editing of jobids (misplaced comma).
04Sep03
- Implement restore files.
03Sep03
- Quickie patch to allow Purged Volumes to be mounted.   
  Must review algorithm.
02Sep03
- Eliminate a duplicated query from query.sql
- Restructure ua_restore.c so that I can add restore files.
- Correct positioning problem at beginning of a second volume 
  introduced with the new forward spacing code.
01Sep03
- Eliminated a sprintf() in the tree routines.
- Doc updates
- Added HOST_OS, DISTNAME, and DISTVER to the status output.
- Eliminated a few stray Dmsgn(000, messages making them either
  debug_level 100, or Pmsg().
- Made the default "Maximum File Size" 1Gbyte in SD.
- Cache path in tree.c to reduce calls to make_tree_path 
31Aug03
- Documentation updates
- Implement forward space file and block when reading a bsr.
- Fixed a bug in db_find_next_volume() where the VolStatus was
  not being returned.
- Rework some of the query.sql records that were incomplete.
- Fixed an ambigous SQL statement in restore.
- Fix proper sorting order in restore display last 20 jobs.
- Remove duplicate JobId's in feeding the directory tree.
- Fix an orphaned ua buffer due to a return that should have been 
  break so that cleanup code executed.
- Changed some strcats and sprintfs int bstrncat() ... to prevent
  possible buffer overflows.
- Fix max file size code on tape so that after writing EOF, 
  an appropriate jobmedia record is created.
- Fix error messages in dev.c, which were copied into lots of
  different subroutines without updating the text.
- Add reposition_dev(), and make more of the return statuses of
  dev routine standard.
24Aug03
- Eliminate old semaphore and workq code. Keep only new jobq code.
- Try to get a better default size for the gnome-console
- Add code to avoid race conditions in starting/stoping the
  heartbeat thread.
22Aug03
- Correct potential race condition in heartbeat_stop().
20Aug03
- Correct segmentation fault in mysql.c if no password given.
19Aug03
- make pm_strcat and pm_strcpy return the string length
17Aug03 
- Use Phil's code to get the unadorned job name.
16Aug03
- Move the MTIOCERRSTAT from just after a write() failure to
  after writing the EOF marks on FreeBSD systems.
- Enhance packet too big error in bnet.c and add some
  ASSERTs in the send code.
- Set heartbeat interval to zero by default.
- Add Recycle to list of Update Volume parameters.
- Use bget_dirmsg() wherever possible in Director.
- Split next_volume code from catreq.c to next_vol.c
- Consolidate editing job codes into a single routine.
- Add Job resource name
- Remove check for Win32 attributes in bls.  It doesn't
  need to read them, only print ls -l.
12Aug03
- Add SDConnectTimeout in FD.
11Aug03 
- Add Scott's perlgui directory
10Aug03
- Upgrade from RH7.3 to RH9.  New autoconf.
- Eliminate gnome2-console directory.
08Aug03
- Correct English in status command.
- Eliminate old shell expansion code and use BPIPE to call shell      
  with echo command.
07Aug03
- Documentation as usual.
- Add a new bacula.spec for Mandrake
- Add ownership to alist items. Default the list owns the items.
- Make record_cb return a status (preparation for internal use).
- Remove all clearing of remainder in read_record.c -- not necessary
- Write a tapetest program for FreeBSD end of tape testing.
- Modify read.c in Bacula to use read_record.c
- Implement multiple records in read_record.c. One for each session that
  is open.  Free the record with the EOS_LABEL is found (or at the
  end of the scan).
