]> git.sur5r.net Git - bacula/docs/blob - docs/techlogs/2003/kes-1.31a
Update FLA
[bacula/docs] / docs / techlogs / 2003 / kes-1.31a
1               Technical notes on version 1.31a 02Aug03
2                         02 Aug 2003
3                        Kern Sibbald
4
5 General:
6
7 Changes submitted this submission:
8 02Aug03
9 - Yifang Dai reported a case where he stress tested Bacula and
10   backed up to four volumes, but only two were selected for the
11   restore. This is because I forgot that the selection could
12   span a volume entirely.
13 31Jul03
14 - Added a missing CLIENT_FOUND_ROWS to the second attempt to open
15   the MySQL database -- this prevents UPDATE errors if nothing
16   actually changed.
17 - Applied corrections to the manual supplied by Bob Collins.  Many thanks!
18 30Jul03
19 - Integrated Robert Mathews improved description of Priorities into
20   the manual.
21 - Chased down the "The data is not valid" bug on WinMe/98/95.
22 - Found an orphaned buffer in the set_attributs part of WinMe/98/95.
23 28Jul03
24 - Add sleep(1) to console when it gets a SIGTSTP signal 
25   to prevent it from using 100% of the CPU.
26 - Improve description of Priorities.
27 - Add a bit more documentation to jobq.c
28 - Complete hash table routine htable.c htable.h
29 - Change M_INFO to M_ERROR in attribs.c for Windows errors.
30 23Jul03
31 - Apply a patch from Nic Bellamy that clarifies the error messages 
32   during recycling volumes.
33 22Jul03
34 - Documentation.
35 21Jul03
36 - Clear VolCatInfo in askdir.c so that readbytes is zeroed.
37 - Add SD statistics to backup report.
38 - Removed old workq code.
39 - Fixed rescheduling after error.
40 - Fixed delayed starts which were not working.
41 - Added priority to values that can change when starting
42   a job.
43 20Jul03
44 - Complete implementation of new job scheduler. jobq.h jobq.c
45   This code is turned off unless specifically enabled in src/version.h
46 - Integrate code from Nic Bellamy to check for recycled volume in
47   mount.c in SD.
48 19Jul03
49 - Fix a couple of bugs in dlist.c
50 - Begin implementation of new job scheduler.
51 17Jul03
52 - Take serial.h provided by David Craigon, which corrects differences in 
53   prototypes between serial.h and serial.c.
54 - Make db_get_media_ids() return Media Ids only for the current pool.
55 - Add new jobq.h and jobq.c drived from workq.
56 - Add JobPriority to jcr, and Priority to Job resource as well as
57   to the run line in a Schedule.
58 - Remove unused pool record from autoprune.c.
59 - Implement Nic Bellamy's RecycleCurrentVolume.     
60 - Implement RecycleOldestVolume.
61 - Begin adding new JOB_QUEUE code to the Director.
62 - Create a single routine recycle_volume().
63 - Retry accept(), bind() and socket() if EINTR occurs.
64 - Implement insert_before(), insert_after(), and empty() for dlist class.
65   Also require offset to be given by giving item and link address.
66 - Make error some messages in smtp.c a bit more explicit.
67 14Jul03
68 - Marc Brueckner reported a crash during restore (a missing tree->)
69 - Moved host.h.in file from filed to src.
70 - Update btraceback to include host os, distname, distver in output.
71 - Split list (in lib) into alist and dlist both with .h and .c.
72 - Update home page to include Project status page.
73 11Jul03
74 - Manual updates.
75 - Clean up some unused variables detected by the IRIX compiler.
76 - Test two directories on Win32 -- caused a crash. I forgot
77   to NULL the uid cache pointer after releasing it.
78 - Use bstrncpy() instead of strcpy() in find_files.
79 - Clear a few linked lists in the temp directory packed in find_one.c
80 - Eliminate an unnecessary variable in attr.c
81 - Clear the cache pointer after release in idcache.c
82 - Implement a new C++ doubly linked list class.
83 - Change "Back space" to Backspace.
84 08Jul03
85 - Update document for Win32 stuff.
86 - Ensure VolStatus value for update is permitted.
87 - Fix cached_path so that it is local to the jcr, otherwise, there
88   are problems from job to job.
89 - Fixed idcache.c which was not thread safe and didn't release memory,
90   and didn't always edit the userid correctly.
91 07Jul03 
92 - Correct missing pool memory allocation in update voluseduration.
93 - Release mutex in pool_mem.c before triggering ASSERT.
94 06Jul03
95 - Lock database while recycling.
96 - Fix a bug in editing since where I forgot to update to the new size.  
97 - Implement all the command line update arguments.
98 - Modify label to use volume=xxx for the new volume and oldvolume=yyy
99   if doing a relable.
100 - Added yes to run command line arguments.
101 - Clear errno in editing a string to utime.
102 - In restore print only volumes that will actually be used.
103 - Fix bextract -- add appropriate breaks in new case code.
104 - Add a new test -- bsr-opt-test for testing bsr optimization. As usual,
105   it pointed out a bug where the directory tree handling code destroyed
106   the restore arg list.
107 - Many updates to the manual.
108 - Pass prefix links flag to FD.
109 - Sort list of commands for Console
110 - Set default FD and SD concurrent jobs to 10.
111 05Jul03 (from vacation)
112 - Rework the find next volume code in catreq.c to correct some minor
113   but subtle logic errors and to eliminate a goto.
114 - Did spell check on manual.
115 - Removed bindtextdomain() as it conflicted with RH8.0 headers
116 - Fixed parse_args to pass address of POOLMEM struct.
117 - Constrain FileIndexes written to BSR to be within range of Volume.
118 - Suppress writing volumes to BSR if they are not actually referenced.
119 - Make FOPTS use alist for match and base entries.
120 - Pass prefix_links to SD.
121 - Add command line interface to most items in "update volume=xxx"
122 - Add command line interface to restore "jobid", "current", "before", "all".
123 - Add command line "yes" to run command to supress prompt.
124 - In new alist code, free only if allocated.
125 - Overload [] with get() code for alist.
126 - Fixed the code that wrote FirstIndex and LastIndex to the database. It
127   was not correct at the end of a volume (basically included indexes in
128   the second volume).
129 - Fixed bscan to work with the new code and to properly build JobMedia
130   records.
131 - Added code to the read end of block.c to properly track Volume bytes,
132   blocks, and files. I thought this was not necessary, but it is critical
133   for bscan to work correctly.
134 - Modified read_record to properly track First/LastIndex -- needed by
135   bscan.
136 - Eliminated some old Volume write code.
137 28Jun03
138 - Changed RecycleOldestVolume to PurgeOldestVolume
139 27Jun03
140 - Added what I hope are the "final" touches for Win32 stuff.  There
141   are still a lot of annoying little problems.
142 - Added the "portable=yes/no" option to Include. If set, it disables
143   use of BackupRead/Write for Win32, so in principle, the data should
144   be portable.
145 26Jun03
146 - Pulled in more recent config.sub and config.guess from /usr/share/libtool
147 - Replaced the system fgets() by a Bacula version that ignores
148   interrupts (i.e. signals).  This truncated output from child processes.
149 - Make file_index int32_t everywhere.
150 - Moved LinkFI into ATTR structure.  Also integrated data_stream there too.
151 - Moved code that sets the stream for writing into create_file.
152 - Removed a signal(SIG_IGN, SIGCHLD) from dird.c that prevented getting
153   the status of child processes.  This allowed removing the FreeBSD 
154   kludge to bpipe.c -- the status is now obtained correctly.
155 - Hand scan the stream header that arrives in append.c to avoid machine
156   dependencies of sscanf().
157 25Jun03
158 - Implemented code to put Data stream in Attributes record. 
159 - Check if data stream is supported, if not, ignore.
160 - Fix crash when multiple Includes are given (missing parens).
161 - Clear WroteVol in askdir.c when JobMedia record is created.
162 24Jun03
163 - Implement simple array list class for use in Bacula.  New files
164   are lib/list.c lib/list.h. Probably will not use until version 1.32.
165 23Jun03
166 - Change Purging Oldest Volume message to Recycling Oldest Volume.
167 - Limit results from find_oldest_volume to one.
168 - Fix possible buffer overrun in the restore tree handling routines.
169 - Fixed a crash in VerifyToVolume because I moved the close_db()
170   down into the free_ua_context() and should not have done so.
171 21Jun03
172 - At a "var" command in the Console that does variable expansion and
173   prints it.
174 - Implement first cut of estimate command.
175 20Jun03 
176 - Change find_next_volume() for oldest to use LastWritten instead of
177   FirstWritten -- also add Append to volumes slected.
178 - Do normal recycling before checking for RecycleOldestVolume.
179 - Implemented block rejection on read. This should make restores run
180   much faster. Next release will have block positioning -- even faster.
181 19Jun03
182 - Very preliminary support for Gnome-2.0.  Text does not yet work.
183 - Correct buffer corruption in find_one.c with long directory names.
184 - Make setting owner on directories M_ERROR rather than M_WARNING.
185 - Fix printing of JobId in run listing.
186 - Reduce heartbeat poll interval to every 10 seconds on Cygwin because
187   there is no kill.
188 18Jun03 
189 - I finally implemented a test for multiple simultaneous jobs,
190   and sure enough it broke when the jobs are split over multiple
191   volumes.  Now fixed and working!
192 - Eliminated a few "duplicate" error messages by testing for canceled.
193 17Jun03
194 - Add ASSERT for device use count going negative.
195 - Fix BlockNumber checking in stored/read.c (got first one wrong).
196 - If socket is timed out, do a shutdown(fd,2) instead of close().
197 16Jun03
198 - Fixed return status from SD to FD by setting JobStatus in append_end() 
199 - Add arrays to Environment variables. Elements separated by |.
200 - Implement Reschedule On Error, Reschedule Interval, Reschedule Times.
201 - Add a new pool PM_NAME -- gets a name length buffer.
202 - Implement fast cancel of FD blocked on writing to SD by using
203   pthread_cancel(). Turned off on Cygwin due to bug.
204 - Add code to handle EAGAIN in writing (probably not necessary). Use
205   select().
206 - Eliminate size_t from pool control buffers.
207 15Jun03
208 - Complete Counter resource.
209 - Complete LabelFormat (except for WrapCounter) plus counter
210   inrementation.
211 - This needs a database change to eliminate PoolId from counters.
212 14Jun03
213 - Modify the manual's index to be a bit more compact. Less space
214   between lines.
215 - Add Phil's checkhost to examples directory (thanks Phil).
216 - Implement generalized LabelFormat (documentation to come).
217 - Implement Counter resource.
218 13Jun03
219 - Cleanup examples/kernsconfig
220 - Fix new bug introduced in newvol.c
221 - Implement restore to a specific date.
222 12Jun03
223 - Fixed a but in automatic labeling (and use durations expiring) analysed
224   and reported by Rob Proffitt (thanks!).
225 - Cleaned up a few Cygwin compile problems.
226 - Made a 10Jun03 release (it is in production here)
227 11Jun03
228 - Finally took the big plunge and fixed restoration of links and other
229   files that have been changed between the backup and restore. Basically
230   if the file exists, it is deleted, then re-created.
231 - Purge only Volumes marked Append, Full, Used, or Error.
232 - Allow pruning of volumes marked Append, in addition to Full and Used.
233 10Jun03
234 - Eliminated all plain email addresses and replaced them with " at " in
235   place of @ to reduce havesting by spammers.  Doc + Web Site.
236 - Started working on making POOLMEM a struct rather than a char. Lots of
237   work to do.
238 - Fixed bscan to handle -V option.
239 - Fixed bscan to handle two File volumes.
240 - Corrected a misplaced comma it get_fileset() in cats pointed out by bscan.
241 - Added two Volume bscan test to regression scripts -- write two volumes,
242   purge and delete everything, bscan the tapes, and do a restore. It works!
243 09Jun03
244 - Reorganized the backup/restore code to move the attribute information into
245   an ATTR packet, which is passed in place of tons of arguments.  Moved some
246   code into lib/attr.c and lib/attr.h.  Then eliminated all the duplicate
247   attribute code.
248 - Moved FT_ types into baconfig.h.
249 - Defined FT_ types to use only 16 bits. The upper half of the word is
250   reserved for adding optional fields in the attributes packet.
251 - Moved jcr->where into common part of jcr and have it deleted in lib/jcr.c
252 - Put all attribute reading code on switch() with cases instead of a big
253   if (restore.c, bls.c, bextract.c, bscan.c, ...)
254 - set_attributes() now takes ATTR packet, and thus has much fewer args.
255 - moved print_ls_output() into lib/attr.c  
256 - implemented is_stream_supported().
257 - create_file() now takes ATTR packet so has many fewer args.
258 - add mtime_only code.
259 - Rewrote bnet.c read and write routines to quit if bsock->terminated is
260   set.  This will allow setting non-blocking writes and then receiving
261   a termination message and terminating the Job immediately rather than
262   waiting 2 hours for the line to timeout.
263 - Put catalog db name in some error messages.
264 - Code for restore is now much cleaner, with much of it in lib/attr.c,
265   and it is now common for all readers.
266 07Jun03
267 - Add first cut of proper support for Win32 Backup code.
268 - Fix bug in restore Win95/98/Me.
269 - Pass mtime_only flag to FD. Needs config record.
270 04Jun03
271 - Added documentation on how to add a Client.
272 - Add VolIndex update when creating JobMedia based on count.
273 - Sort JobMedia records by VolIndex,JobMediaId works for new and old format.
274 - Print an error message when cannot open database.
275 - Update query.sql to include                
276     List all backups for a Client after a specified time
277     List all backups for a Client
278 - Change a bunch of command names to xxx_cmd.
279 - Add Release command. 
280 - Removed update of EndBlock/EndFile on EOM in attempt to get it right.
281 - Add rawfill command to btape.
282 - Tweak fill command (something isn't right with last block).
283 03Jun03
284 - Fix block.c to check errno only in case of return status -1 as 
285   suggested by Justin Gibbs (FreeBSD).
286 - Implemented qfill command in btape for quick testing write/read of a tape.
287 - Discovered that FreeBSD pthreads re-use the same thread id, which causes
288   the SD to fail when a user leaves a device unmounted (old pid is reused
289   and lock_device() thinks the same thread is calling again leading to
290   inconsistent state). Set id to zero after blocking the device during
291   unmount.
292 02Jun03
293 - A lot of clean up, moving subroutines around for TermCode.
294 - Free ua->prompt when Job terminates.
295 - Add AutoPrune and Recycle to values copied from Pool resource
296   into Pool record on create/updated.
297 - Implemented bsr for Verify VolumeToCatalog. 
298 - Improved the Verify Job report using SD and FD term codes.
299 - Split tree handling routines from ua_restore.c to ua_tree.c
300 - Split bsr routines from ua_restore.c to bsr.c and bsr.h 
301 01Jun03
302 - Fixed clash between FD and SD returned job values. Report now contains
303   values from FD.  Maybe I should change? or give both.
304 - Attempt to fix negative use_count for dev packet in SD by adding
305   a couple of open_dev().   This may be cause of Dan's crash.
306 - Clear no_wait_id when device is unblocked. This may be cause of Dan's crash.
307 - Eliminate old "new lock code".
308 31May03
309 - Add configure of mtx-changer for mtx path.
310 - Always rewind tape before releasing it (for FreeBSD).
311 - StartBlock was one too large for second volume.
312 - Fixed restore to display status from both SD and FD.
313 - Unified return status message for backup and restore.
314 30May03
315 - Corrected segmentation fault reported by Dan when doing "label barcodes"
316   on a File.
317 - Corrected a segmentation fault when attempting to send a JobMedia record
318   to the Console -- reported by Dan.
319 - Added MySQL documentation for using the threaded libraries.
320 - Added new columns and tables to Catalog database.
321 - Wrote alter scripts and tested them (thanks to Dan for the help) on
322   MySQL and SQLite.
323 - Started using enums where ever possible when passing flags to 
324   subroutines. This helps make the source much more readable.
325 - Corrected a bug where a vertical database listing was being used in
326   the query command.
327 - Added new argument to parse_args() to prevent command arg overflow.
328 - Renamed ua_db_query.c ua_query.c.
329 - Split scan.c out of lib/util.c
330 - Perhaps I have *finally* fixed the command line history in gnome-console.
331 - Added support for smartalloc for any global new or delete command
332   by overloading the global operators.
333 - Made the default time with no qualifier day rather than seconds.
334 - Fixed a bug in the store_size() routine that improperly converted from
335   double to uint32_t.
336 - Started using "bool" where possible.
337 - Zap SD session key once it is used.
338 - Added *lots* more checking for strcpy -- bstrncpy(), ... 
339 27May03
340 - Added CreateTime field to FileSet record and print it to distinguish
341   FileSets. 
342 - Print an information message when a new FileSet is created.
343 - Include the FileSet date/time in the Job report.
344 - Indicate if a Job is upgraded in the Job report and from what previous level.
345 - Incremented the database version.
346 - Ensure that any DB error message is printed if the start_time of a previous
347   save is not found.
348 - Free orphaned buffer in ua_restore.c in case of database error.
349 - Implement enum for response DISPLAY_ERROR and NO_DISPLAY
350 - Implement enum for create_pool (POOL_OP_CREATE, POOL_OP_UPDATE).
351 - Make sure FileSets printed in restore are in order.
352 - Add a number of bstrncat, and other protected string operations.
353 26May03
354 - Clean up old structs in dird_conf.h
355 - Remove all Slot invalidation code.
356 - Add Automatic choice message to all do_prompt() calls.
357 - Eliminate JobId from restore if not used.
358 - Clean up a few error messages.
359 - Make fill/unfill commands work correctly in btape.
360 25May03
361 - Enhance btape fill and unfill commands.
362 - Implement real Pmsg() code so that negative levels work in Dmsg()
363 - Implement block number check -- had to turn it off because it doesn't
364   work.  Need to verify that it is the correct block and that block
365   numbers are properly written.
366 - Moved readline from depkgs1 to depkgs.
367 - Reworked the configure code to handle readline correctly. This was broken
368   mostly due to the fact that the readline routines are nested down one
369   directory.  Also, I missed one header file that was needed (possibly added
370   in a later version).
371 - Put correct include on the dependencies make for Console readline.
372 - Remove JobMediaId from VOL_PARAMS (no longer needed).
373 - Sort VOL_PARAMS by JobMediaId using SQL in cats.
374 - Add jcr as argument to block.c read_block... routines so that error
375   messages are immediately displayed.
376 - Make bsr_dev() edit an error message if it is turned off and return 0.
377 - Add checking for the BlockNumber in the read routines -- lots of
378   false matches are found -- much check writing end.
379 24May03
380 - Now sort bsr volumes by JobMediaId -- produces better results.
381 - It turns out that under certain circumstances, when doing a restore, the
382   Volumes will not be written to the BSR in the correct order.  I don't
383   know exactly why, but many thanks to Dan Langille for reporting this.
384   The solution is to sort the Vol_Params within each bsr (done), and to
385   sort the bsr chain (not yet implemented). Note, the bsr chain should
386   always be in order unless the user explicitly specifies the JobIds in
387   a different order.          
388 - Began implementing C++ structs rather than typedef structs as in C.
389 - Added volatile to a lot of variables that are used in two threads at
390   the same time. This should prevent improper optimization.   
391 - Fixed a missing space in the "run job=xxx where=" the where was
392   glued to the end of the previous stuff (bootstrap filename). 
393 - I *finally* found the cause of the mysterious failure of shell expansion.
394   It was due to the read() getting interrupted!  That's what opening up
395   SIGCHLD will do!
396 - Remove unused default tape drive names.
397 - Create a new status.c file in stored and split the status code out of dircmd.c
398 22May03
399 - I discovered that C++ permits "prototyping" structures e.g. struct A; is
400   a valid statement. This permitted me to eliminate all the void *jcr, in
401   favor of JCR *jcr, which pointed out a number of bugs in block.c.
402 - Change lib/bmisc.c to bsys.c (system routines).
403 - Add set_working_directory() to lib/util.c
404 - Remove some unneeded setjcr_job_status() since Jmsg(jcr, M_FATAL,...)
405   already sets it.  
406 - Do not increment jcr->Errors for Fatal errors -- they represent non-fatal
407   errors.
408 - Fix a few more places in FD where Errors was not incremented.
409 - Print unexpected (or incorrect) termination message returned from FD.
410 - Use switch() instead of giant if statement in verify_vol.c
411 - Protect overrun from do_shell_expansion() by passing max length.
412 20May03
413 - Add mandrake to platforms
414 - Suppress error messages if no bytes written to tape.
415 - Suck up bootstrap file even on error so that Dir sees our error message.
416 - Pretty much finish off the Win32 backup code.
417 - Add DESTDIR code to autostart for creating non-root rpms
418 - Echo input read from a script in Console.
419 - Clarify error message for VerifyToCatalog
420 - Add error counts in restore for M_NOTSAVED.
421 - Adapt bfile.c to handle both Win95 files as well as WinXP files.
422 - Add MTIOCERRSTAT for FreeBSD (clear error status).
423 - Correct double jobmedia record when cancel at EOM reported by Phil.
424 - Correct possible write at beginning of tape during cancel at EOM
425   as reported by Phil.
426 - Document in detail how Incremental and Differential jobs work.
427 - Add non-fatal error count on backup and restore Job reports.
428 - Remove a couple uses of lld -- now prefer to edit and use %s.
429 - Fix directory could not be accessed on Win32.
430 - Improve message indicating that last Full backup not found. 
431 - Fix free() too early in directory traversal code.
432 19May03
433 - Prune Jobs with no JobFiles or that have JobStatus!='T'
434 - Add a few more command line scans for prune/purge.
435 - Restrict valid characters in a Volume name, and document it.
436 18May03
437 - Make new Win32 save/restore work. Still a bit more to do.
438 17May03
439 - Use reentrant version of mysqlclient library.
440 - Use more machine independent way of finding gcc version.
441 - Fix race condition in sql_list where messages edited before locking.
442 - Lots of testing saving/restoring 6GB files.
443 - Add where to restore where=/tmp
444 - Complete implementation of Win32 streams in FD. Must test. Also,
445   must implement new streams in SD.
446 - Make termination of daemons more "error" tolerant.  
447 - Make default "duration" days rather than seconds if there is no modifier.
448 - Install bcopy.
449 15May03
450 - Add detection of available Win API's so that a single binary will
451   work on all Windows systems.  Reference those APIs through a pointer.
452 - Remove use_win_backup_api and enable it in bfile.c if system supports it.
453 - Modify dev.c so that it works if MTEOM is not defined (BSDI).
454 - Change MT_xxx to BMT_xxx to prevent conflicts with BSDI.
455 - Detect strtoll() in configure.
456 - Implement replacement for strtoll() for BSDI.
457 - Add platform files for BSDI.
458 - Use Jmsg() instead of Jmsg1() in acquire because File:line prefixed in dev.c
459 - Use Jmsg() in write_block_to_dev() so that no messages are lost.
460 - Rework autochanger code in restore to handle case of cassette not in magazine.
461 14May03
462 - Implement Windows BackupRead/Write(). I now have permissions right!!!!
463 - Additions to the manual (Purging, Autopruning).
464 - Add doc to code in autoprune.
465 - Begin adding Level = Base.
466 - Make Jmsg recognize console and direct messages directly back to it.
467 13May03
468 - Hopefully fix mess in mount.c when a tape expires.  
469 - Fix restore bug recently introduced due to Unix backwards status convention.
470 - New bacula.spec from Scott
471 - Add globals for database name and version and print them in traceback.
472 - Eliminate SubSysDirectory in each daemon conf file.
473 - Implement get_yesno() and get_pint() in UA.
474 - Make Jmsg aware of console. Messages now sent directly to Console.
475 11May03
476 - Created a single bacula.spec.in for by the MySQL and SQLite builds.
477 - Added proper configuration to console.in and gconsole.in
478 - Start adding textdomain() code for translating.
479 10May03
480 - A number of minor code cleanups.
481 - Rework shell expansion just a bit.
482 - Add rewind() when releasing a tape before acquiring the next one.
483 09May03
484 - Implement addition of Description in Service entry for Win32.
485 - Update manual to eliminate unclear autochanger points as mentioned
486   by Dan Langille.
487 08May03
488 - Implement DESTDIR everywhere.
489 - Rework spec files for 1.31 and combine the main spec and the client
490   only spec making a client package. At the same time, rename the packages
491   so it is a bit clearer to the user. Also fix the build to work
492   as non-root (scriptdir was not prefixed with $RPM_BUILD_ROOT).
493 - Correct Auto Changers and all other forms to Autochangers in the
494   manual.
495 07May03
496 - John reported needing to do two "mount" requests, and indeed that
497   was the case. It turns out that pthread_cond_timedwait() does not
498   always return zero when awaken by a pthread_cond_signal().
499 - Include RunBeforeJob and RunAfterJob output in job output report.
500 - Implement a "real" Admin job that prints a mini-job report.
501 - Clean up a few error messages in findlib and filed.
502 06May03
503 - Recent changes to gnome-console caused initial output to be
504   lost -- now fixed.
505 05May03
506 - The Win32 version crashed after each job. After hours, it turns out
507   that when running with LocalSystem privilege (and not as a user), when
508   Cygwin does pthread_kill(id, SIGUSR2), it gets a memory fault.
509 - Moved stored/fdmsg.c to lib/bget_msg.c, and moved SD messages to
510   stored.c.  So now bget_msg() can be used by both the SD and FD.
511 - Changed Director's bget_msg() to be called bget_dirmsg() to avoid
512   any possible confusion.
513 - Implemented bget_msg() in general everywhere in the FD except for
514   job.c where the Dir and FD are communicating.
515 - Implemented a Director only heartbeat in the FD for the cases where
516   there is either no connection to the SD or the FD is already reading
517   from the SD.  start_dir_heartbeat() ...
518 04May03
519 - Add heartbeat to restore and verify volume.
520 - Add "Heartbeat Interval" to Storage resource, which sets interval the
521   SD sends heartbeats to the FD and DIR, 0 disables heartbeats.
522 - Add "Heartbeat Interval" to FileDaemon resource, which sets the interval
523   the FD sends heartbeats to the DIR, 0 disables heartbeats. 
524 - Added heartbeat from FD to Dir every HB_TIME rather than forwarding
525   SD heartbeats.
526 03May03
527 - First cut label dialog.
528 - Turn on new semaphore code for simultaneous Jobs.
529 - Fix cancel trying to release semaphore's not acquired.
530 - Implement get_pint() and get_yesno() for UA.
531 - Implement find_arg_with_value() for UA.
532 - All command line "slot" to be specified for label command.
533 - Rework heartbeat code in FD to correctly terminate.
534 - Fix btraceback to use smtp and to eliminate double //
535 02May03
536 - Fix "storage" command to include ssl for verify and restores.
537 - Add Heartbeat code when SD is waiting on a tape -- heartbeat every 20 mins
538   to keep stateful firewalls from timing out the connections.
539 - Fix src/stored/Makefile.in typo causing problems in statically linking
540   btape.  Thanks to Lutz for reporting this.
541 - Create an is_client_alive script for checking if a client is alive.
542   Using this script prevents generating error messages.
543 - Added corrections and updates to manual provided by Phil -- thanks.
544 01May03
545 - Added RequireSSL to each program/daemon configuration.
546 - Added EnableSSL to each correspondent for each program.
547 - Added the Console resource to the Director (need to
548   implement individual Console authorization).