- Correct buffer length passed to inet_ntop() in address_conf.c
- Increase the debug level of a lot of messages to reduce the
debugging noise.
- Modify how ST_APPEND is handled so that nothing is written
to the Volume if it is not set. It is now set only when
the Volume label is verified, and released when the volume
is released. This required a number of minor but rather
critical and fundamental changes.
- Improve quickly terminating a job in the SD when it errs.
More status checking and a few additional checks on
job_canceled() and check more error return statuses.
- Added a number of debug statements (to be removed later) that
check the VolCatName for a name.
- Create a single subroutine that handles terminating writing
on a Volume at the end of the volume (or after an error).
- Continued to add use of the berrno classs for strerror().
- Make run_grub print manual procedure for installing grub
- Add extra setsockopt keepalive.
- Add code to set as many options as possible in the system
tape driver for different OSes.
- Apply Peter Eriksson's patch to configure.in fixes finding
correct libs on Solaris to link conio -- bug 121
- Add expected number of files to Verify VolumeToCatalog, and
if it does not equal the examined files, fail the job.
Fixes bug -- 114
- Modify the depend section of each Makefile.in to reference
instead of -- bug 118
- Remove the word restore from the Volumes needed message in
dird/bsr.c since the message is used for Restore and Verify.
- Fix initialization and copying of the storage resource when
starting jobs (and in jobq.c when restarting). In some cases
jcr->store was not set causing a segfault -- bug 116
- Turn on transactions for SQLite and PostgreSQL if
multiple connections are turned on.
- Removed stripping of filename in ua_tree insertion routine.
- Fix split_path_and_filename() routines to return zero length
path and files.
- Modify update_tables scripts to convert a single blank filename
into an empty filename.
- Incremented the release number because this version requires
an update to the database.
Use:
cd src/cats
./update_bacula_tables
to update an existing database.
- Implemented EndFile and EndBlock in the Media record. This will
allow Bacula to know exactly when to stop reading a tape if the
stupid tape driver does not give a logical end of tape indication
and Bacula writes to the end of the tape getting an I/O error.
- Added new routines to update the database, and there are
new database creation routines to add the two new Media columns.
- The Media record is updated each time a JobMedia record is created.
This keeps the Media record up to date.
- Undid the code to use automatic type converions to char * in
POOL_MEM. This is due to the ugly consequences of essentially
destroying the class type nature of the class.
- Removed all the old mp_char() #define code.
Dan Langille [Mon, 20 Sep 2004 14:46:24 +0000 (14:46 +0000)]
Kern had a better idea:
- alter src/dird/bacula-dir.conf.in to pass database and user
- alter src/cats/make_catalog_backup.in so that the database name
and user name come in as $1 and $2 respectively.
Dan Langille [Mon, 20 Sep 2004 12:54:43 +0000 (12:54 +0000)]
See http://bugs.bacula.org/bug_view_advanced_page.php?bug_id=0000103
Alter src/cats/make_catalog_backup.in so it does need incoming parameters to
do its job correctly. Different options are needed for different database
tools. e.g. '-u bacula' for MySQL, versus '-U bacula' for PostgreSQL.
At the same time, remove the parameters passed to this script in
src/dird/bacula-dir.conf.in
- Tweak install chapter of French manual to add new paragraph
from English.
- Tweak restore tree message to be a bit clearer.
- Modify watchdog to wakeup after 60 seconds, or wakeup if
there is work to do.
- Modify watchdog stop routine to ping watchdog so that it
stops immediately rather than after sleep time.
- Fix btape to use new dcr blocks rather than its own.
- Fix butil.c to correctly handle Volume names for the
utility routines (broke when updating to dcrs).
- Send all queued messages in SD and FD prior to closing down
the job.
- Send queued messages in Jobs before terminating the job
so that the messages print before the job report.
- Add a destructor so that the Console ACLs are properly
freed.
- Implement isolinux boot disk.
- Integrate Phil Stracchino's code (thanks for Matt's help).
It permits lists and ranges of jobids on the delete as in:
delete job jobid=1,3,5,11-16
- Apply Mike Acar's suggestion when looking for the next volume
to check purged volumes for recycling before doing a purge.
- Make some improvements to CDROM disk.
- Take another crack at ignoring drive open() errors during
polling.
- Added argument to berrno::strerror() to pass errno.
- Cleaned up a few more old strerror() calls and eliminated a
few of the now unnecessary set_errno() calls.
- Fixed a bug in the polling code that prevented more than 100
label reads (insanity check disabled if polling).
- Ignore bad return from open_device() if polling.
- Short circuit code if fatal error return from read_label() in
mount.c
- Add index file to JobId field of File records for PostgreSQL.
- Correct several bugs in the job queue scheduler concerning
rescheduled jobs: 1. The SD status was not cleared causing a
wrong status to be displayed by Dir after rescheduling. 2. All
rescheduled jobs became zombies because the jcr use_count was
not decremented properly.
- Make the Catalog resource required in Client records.
- Order the listing of where a file is (item 2 on the restore
menu) by StartTime.
- Clarify when a filename only and a full path + filename must
be entered in items 2 and 8 of the restore menu.
- Fix logic error in resolution of names on IPv4 systems.
Meno Abels [Wed, 1 Sep 2004 06:37:56 +0000 (06:37 +0000)]
A improvment of the sqlite detection. Now
it searches in $prefix/[bin|lib|include] and
if you specifiy -with-sqlite=path in path/[bin|lib|include]
which is need on freebsd and macosx. Where are the library of
external programms in e.g. /usr/local/...
Kern Sibbald [Mon, 30 Aug 2004 20:39:58 +0000 (20:39 +0000)]
- Inhibit printing of FileSet for a restore as it is misleading.
- Cleaned up a number of minor scripting problems with the CDROM
creation.
- Fixed a race condition causing a Director crash on termination,
if a large number of SIGHUPs were sent during a multiple concurrent
set of backups.
Nicolas Boichat [Wed, 25 Aug 2004 12:20:01 +0000 (12:20 +0000)]
- Add spin button to set refresh interval.
- Add button to force refresh.
- Left light on the cassette indicate the current status, right indicates the status of the last job.
Kern Sibbald [Tue, 24 Aug 2004 12:18:45 +0000 (12:18 +0000)]
- Applied a patch from Peter Eriksson that removes a dynamic stack
allocation (replaced by alloca) and fixes some const problems.
- Fixed a free() of a static variable in the new IP code bnet.c
- Got the new Bacula Rescue CDROM booting.
- Replaced a dynamic template by a simple store when using the
native C compiler.
- Reworked some of the block.c error handling.
- Changed a Dmsgx(000, to Dmsgx(100 in dev.c that was dumping
debug output on a user.
- Integrated patch from 1.34.6 block.c to 1.35
Nicolas Boichat [Sun, 22 Aug 2004 17:37:46 +0000 (17:37 +0000)]
- Add default Console resource in src/dird/bacula-dir.conf.in with
access restricted to commands used by tray-monitor: status and
.status.
- Add default Director ressource in src/filed/bacula-fd.conf.in and
src/stored/bacula-sd.conf.in with Monitor directive enabled.
- Add .status dir [current|last] command to dird.
- Add Monitor directive in fd/sd configuration file (restrict
access to status and .status commands).
@meno: I made some changes in src/filed/authenticate.c and
src/stored/authenticate.c, which must be adapted to your new
authentication code. Please contact me if you have any questions.
Nicolas Boichat [Tue, 17 Aug 2004 19:19:40 +0000 (19:19 +0000)]
- Set WANT_AUTOCONF to 2.5 before running autoconf and autoheader in the main Makefile (force Gentoo to use the newer version of autoconf/autoheader).
- Add HAVE_GTK_2_4 in autoconf/config.h.in
Meno Abels [Thu, 12 Aug 2004 22:13:51 +0000 (22:13 +0000)]
!!! I didn't run the regression tests.!!!
1. Find and fix the memory leak (most likely in address_conf.c)
in address_conf there was no memory leak-:) the parser calls my init_default_addresses
but also resets the datastructurs by memset so allocated resource will be lost.
I added the pass number to init_defaults so that i could call my init_default only once
per server.
2. Find some why to have smartalloc work correctly with new.
*Please* note, you cannot simply put everything on SMARTALLOC --
this will not work because some of the delete's *must* de-allocate
all the items in the list. I.e. by default, my lists own the
list items.
There was a missing brace
in the use of my new operator to write new(fname, line) Type in the define.
And also there was some operator definitions in dlist,alist,htable which causes
that trouble.
I only added the SMARTALLOC to all classes these are generated by new and removed
by delete.
3. I believe I've fixed the byte order problem by modifying get_port().
However, if you turn on the debug statement at the top of
init_bnet() src/lib/bnet.c:917 by setting the 100 to 000, you will
see that the host address is not correct in all cases.
Kern and I decided to add
get_port_net_order
get_port_host_order
get_first_port_net_order
get_first_port_host_order
to the code.
4. Eliminate the use of inet_addr() -- it is deprecated.
Done
5. Check the SetIP command in src/dir/fd_cmds.c
fixed mixup of sockaddr and in_addr
6. There is too much #ifdefing in the code to deal with IPv4 and IPv6
I don't mind it in bnet.c and bnet_server.c (too much), but we should
try to eliminate it elsewhere.
I cleaned it up.
Is this too much yes it is but, we can't reach the heaven in one day-:)
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#if defined(HAVE_INET_NTOP) && defined(HAVE_IPV6)
./lib/address_conf.c:#ifdef HAVE_IPV6
./lib/address_conf.c:#ifdef HAVE_INET_NTOP
./lib/address_conf.h:#ifdef HAVE_IPV6
./lib/address_conf.h:#ifdef HAVE_IPV6
./lib/address_conf.h:#ifdef HAVE_IPV6
./lib/bnet.c:#ifdef HAVE_IPV6
./lib/bnet.c:#ifdef HAVE_IPV6
./lib/bnet.c:#ifdef HAVE_IPV6
./lib/bnet.c:#ifdef HAVE_IPV6
./lib/bnet.c:#ifdef HAVE_IPV6
./lib/bnet_server.c:#ifndef HAVE_INET_NTOP
./lib/bnet_server.c:#ifdef HAVE_INET_NTOP