Changesets: bareos

master b1c05f30

2013-12-10 17:00

mvwieringen

Ported: N/A

Details Diff
Add dummy default for NDMP port.
mod - src/win32/compat/include/winhost.h Diff File

master ad43c5db

2013-12-10 16:50

mvwieringen

Ported: N/A

Details Diff
Fix windows Makefile for new socket abstraction.
mod - src/win32/lib/Makefile Diff File

master 10b8c242

2013-12-10 15:37

mvwieringen

Ported: N/A

Details Diff
Backout new config engine.
mod - autoconf/config.h.in Diff File
mod - autoconf/configure.in Diff File
mod - configure Diff File
mod - debian/rules Diff File
mod - src/console/console.c Diff File
mod - src/console/console_conf.c Diff File
mod - src/console/console_conf.h Diff File
mod - src/dird/authenticate.c Diff File
mod - src/dird/bsr.c Diff File
mod - src/dird/dbcheck.c Diff File
mod - src/dird/dird.c Diff File
mod - src/dird/dird.h Diff File
mod - src/dird/dird_conf.c Diff File
mod - src/dird/dird_conf.h Diff File
mod - src/dird/expand.c Diff File
mod - src/dird/fd_cmds.c Diff File
mod - src/dird/inc_conf.c Diff File
rm - src/dird/inc_conf.h Diff File
mod - src/dird/job.c Diff File
mod - src/dird/migrate.c Diff File
mod - src/dird/ndmp_dma.c Diff File
mod - src/dird/newvol.c Diff File
mod - src/dird/run_conf.c Diff File
mod - src/dird/scheduler.c Diff File
mod - src/dird/testfind.c Diff File
mod - src/dird/ua_cmds.c Diff File
mod - src/dird/ua_dotcmds.c Diff File
mod - src/dird/ua_label.c Diff File
mod - src/dird/ua_output.c Diff File
mod - src/dird/ua_prune.c Diff File
mod - src/dird/ua_restore.c Diff File
mod - src/dird/ua_run.c Diff File
mod - src/dird/ua_select.c Diff File
mod - src/dird/ua_server.c Diff File
mod - src/dird/ua_status.c Diff File
mod - src/dird/verify.c Diff File
mod - src/filed/authenticate.c Diff File
mod - src/filed/backup.c Diff File
mod - src/filed/dir_cmd.c Diff File
mod - src/filed/filed.c Diff File
mod - src/filed/filed.h Diff File
mod - src/filed/filed_conf.c Diff File
mod - src/filed/filed_conf.h Diff File
mod - src/filed/restore.c Diff File
mod - src/filed/verify.c Diff File
mod - src/filed/verify_vol.c Diff File
mod - src/findlib/xattr.c Diff File
mod - src/include/baconfig.h Diff File
mod - src/lib/address_conf.c Diff File
mod - src/lib/address_conf.h Diff File
mod - src/lib/cram-md5.c Diff File
mod - src/lib/edit.c Diff File
rm - src/lib/generic_res.h Diff File
mod - src/lib/ini.c Diff File
mod - src/lib/ini.h Diff File
mod - src/lib/lex.c Diff File
mod - src/lib/lex.h Diff File
mod - src/lib/message.c Diff File
mod - src/lib/parse_bsr.c Diff File
mod - src/lib/parse_conf.c Diff File
mod - src/lib/parse_conf.h Diff File
mod - src/lib/protos.h Diff File
mod - src/lib/res.c Diff File
mod - src/lib/runscript.c Diff File
mod - src/lib/util.c Diff File
mod - src/plugins/filed/test-plugin-fd.c Diff File
mod - src/qt-console/bat.h Diff File
mod - src/qt-console/bat_conf.cpp Diff File
mod - src/qt-console/bat_conf.h Diff File
mod - src/qt-console/bcomm/dircomm.cpp Diff File
mod - src/qt-console/main.cpp Diff File
mod - src/qt-console/mainwin.cpp Diff File
mod - src/qt-console/restore/restore.cpp Diff File
mod - src/qt-tray-monitor/authenticate.cpp Diff File
mod - src/qt-tray-monitor/monitoritemthread.cpp Diff File
mod - src/qt-tray-monitor/tray-monitor.cpp Diff File
mod - src/qt-tray-monitor/tray_conf.cpp Diff File
mod - src/qt-tray-monitor/tray_conf.h Diff File
mod - src/stored/acquire.c Diff File
mod - src/stored/authenticate.c Diff File
mod - src/stored/autochanger.c Diff File
mod - src/stored/bcopy.c Diff File
mod - src/stored/bextract.c Diff File
mod - src/stored/bls.c Diff File
mod - src/stored/bscan.c Diff File
mod - src/stored/btape.c Diff File
mod - src/stored/butil.c Diff File
mod - src/stored/dev.h Diff File
mod - src/stored/dir_cmd.c Diff File
mod - src/stored/ndmp_tape.c Diff File
mod - src/stored/reserve.c Diff File
mod - src/stored/spool.c Diff File
mod - src/stored/status.c Diff File
mod - src/stored/stored.c Diff File
mod - src/stored/stored.h Diff File
mod - src/stored/stored_conf.c Diff File
mod - src/stored/stored_conf.h Diff File

bareos-13.2 7e055c03

2013-12-10 12:43

pstorz

Ported: N/A

Details Diff
Removed criticised code from annex 1
mod - src/cats/make_mysql_tables.in Diff File
mod - src/cats/make_postgresql_tables.in Diff File
mod - src/cats/make_sqlite3_tables.in Diff File
mod - src/cats/postgresql.c Diff File
mod - src/cats/update_postgresql_tables.in Diff File

bareos-12.4 7aad0941

2013-12-10 12:43

pstorz

Ported: N/A

Details Diff
Removed criticised code from annex 1
mod - src/cats/make_mysql_tables.in Diff File
mod - src/cats/make_postgresql_tables.in Diff File
mod - src/cats/make_sqlite3_tables.in Diff File
mod - src/cats/postgresql.c Diff File
mod - src/cats/update_postgresql_tables.in Diff File

master 1e784059

2013-12-10 12:43

pstorz

Ported: N/A

Details Diff
Removed criticised code from annex 1
mod - src/cats/make_mysql_tables.in Diff File
mod - src/cats/make_postgresql_tables.in Diff File
mod - src/cats/make_sqlite3_tables.in Diff File
mod - src/cats/postgresql.c Diff File
mod - src/cats/update_postgresql_tables.in Diff File

master 2ed70a3c

2013-12-09 17:10

Marco van Wieringen

Ported: N/A

Details Diff
Teach the qt programs the new socket abstraction.
mod - src/qt-console/bcomm/dircomm.cpp Diff File
mod - src/qt-tray-monitor/monitoritem.cpp Diff File

master 950e8ba1

2013-12-09 16:13

Marco van Wieringen

Ported: N/A

Details Diff
Implementation of Python Director Plugin

Implement a plugin that makes it possible to write Director plugins in Python.

Stub plugin function is available that loads a python interpreter per plugin
instance. Need to link the plugin events to Python methods and allow the Python
code to call the plugin code do read and write plugin variables.

Fixes 0000012: Implementation of Python Director Plugin
mod - src/dird/dir_plugins.c Diff File
mod - src/dird/dir_plugins.h Diff File
mod - src/plugins/dird/Makefile.in Diff File
add - src/plugins/dird/bareos-dir.py Diff File
add - src/plugins/dird/bareos_dir_consts.py Diff File
mod - src/plugins/dird/python-dir.c Diff File
add - src/plugins/dird/python-dir.h Diff File

master ef167c70

2013-12-09 16:13

Marco van Wieringen

Ported: N/A

Details Diff
Implementation of Python StorageDaemon Plugin

Implement a plugin that makes it possible to write Storage daemon plugins in Python.

Stub plugin function is available that loads a python interpreter per plugin
instance. Need to link the plugin events to Python methods and allow the Python
code to call the plugin code do read and write plugin variables.

Fixes 0000011: Implementation of Python StorageDaemon Plugin
mod - src/plugins/stored/Makefile.in Diff File
add - src/plugins/stored/bareos-sd.py Diff File
add - src/plugins/stored/bareos_sd_consts.py Diff File
mod - src/plugins/stored/python-sd.c Diff File
add - src/plugins/stored/python-sd.h Diff File
mod - src/stored/sd_plugins.c Diff File
mod - src/stored/sd_plugins.h Diff File

master ec78a841

2013-12-09 16:13

Marco van Wieringen

Ported: N/A

Details Diff
Implementation of Python FileDaemon Plugin

Implement a plugin that makes it possible to write File daemon plugins in Python.

Stub plugin function is available that loads a python interpreter per plugin
instance. Need to link the plugin events to Python methods and allow the Python
code to call the plugin code do read and write plugin variables.

Fixes 0000010: Implementation of Python FileDaemon Plugin
mod - src/filed/fd_plugins.c Diff File
mod - src/plugins/filed/Makefile.in Diff File
add - src/plugins/filed/bareos-fd.py Diff File
add - src/plugins/filed/bareos_fd_consts.py Diff File
mod - src/plugins/filed/python-fd.c Diff File
add - src/plugins/filed/python-fd.h Diff File

master 5aed978f

2013-12-09 16:13

Marco van Wieringen

Ported: N/A

Details Diff
Allow the conditional enabling of SO_KEEPALIVE on sockets.
mod - src/dird/dird_conf.h Diff File
mod - src/dird/fd_cmds.c Diff File
mod - src/dird/ua_server.c Diff File
mod - src/filed/dir_cmd.c Diff File
mod - src/filed/filed.c Diff File
mod - src/filed/filed_conf.h Diff File
mod - src/lib/bnet_server_tcp.c Diff File
mod - src/lib/bsock.h Diff File
mod - src/lib/bsock_sctp.c Diff File
mod - src/lib/bsock_tcp.c Diff File
mod - src/lib/bsock_udt.c Diff File
mod - src/lib/protos.h Diff File
mod - src/stored/dir_cmd.c Diff File
mod - src/stored/stored.c Diff File
mod - src/stored/stored_conf.h Diff File

master 0b1e25da

2013-12-09 16:13

Marco van Wieringen

Ported: N/A

Details Diff
Promote BSOCK to a proper class implementation.

First steps in abstracting network layer.

It would be nice to use other communication sockets then
only TCP ones as its done now. The whole socket abstraction needs
a major overhaul and some of the old bnet functions can be retired
now permanently and some functions are better written as methods
of the BSOCK class so we can write socket type specific implementations
of them.

This implements a BSOCK_TCP class which has the now used TCP sockets and
a dummy BSOCK_SCTP class which will eventually hold the SCTP sockets
and a dummy BSOCK_UDT class which will eventually hold the UDT sockets.
mod - src/console/console.c Diff File
mod - src/dird/backup.c Diff File
mod - src/dird/fd_cmds.c Diff File
mod - src/dird/job.c Diff File
mod - src/dird/msgchan.c Diff File
mod - src/dird/restore.c Diff File
mod - src/dird/sd_cmds.c Diff File
mod - src/dird/ua_cmds.c Diff File
mod - src/dird/ua_purge.c Diff File
mod - src/dird/ua_run.c Diff File
mod - src/dird/ua_server.c Diff File
mod - src/dird/verify.c Diff File
mod - src/filed/dir_cmd.c Diff File
mod - src/filed/filed.c Diff File
mod - src/filed/heartbeat.c Diff File
mod - src/filed/sd_cmds.c Diff File
mod - src/lib/Makefile.in Diff File
mod - src/lib/bnet.c Diff File
mod - src/lib/bsock.c Diff File
mod - src/lib/bsock.h Diff File
add - src/lib/bsock_sctp.c Diff File
add - src/lib/bsock_sctp.h Diff File
add - src/lib/bsock_tcp.c Diff File
add - src/lib/bsock_tcp.h Diff File
add - src/lib/bsock_udt.c Diff File
add - src/lib/bsock_udt.h Diff File
mod - src/lib/jcr.c Diff File
mod - src/lib/lib.h Diff File
mod - src/lib/protos.h Diff File
mod - src/stored/bscan.c Diff File
mod - src/stored/dir_cmd.c Diff File
mod - src/stored/job.c Diff File
mod - src/stored/ndmp_tape.c Diff File
mod - src/stored/sd_cmds.c Diff File
mod - src/stored/stored.c Diff File

master 73417509

2013-12-09 16:13

Marco van Wieringen

Ported: N/A

Details Diff
Build and package the windows storage daemon.
mod - platforms/win32/fillup.sed Diff File
add - platforms/win32/storagedialog.ini Diff File
add - platforms/win32/tray-monitor-conf-fd-sd.patch Diff File
mod - platforms/win32/winbareos-nsi.spec Diff File
mod - platforms/win32/winbareos.nsi Diff File
mod - platforms/win32/winbareos32.spec Diff File
mod - platforms/win32/winbareos64.spec Diff File
mod - src/filed/status.c Diff File
mod - src/include/version.h Diff File
mod - src/stored/Makefile.in Diff File
mod - src/stored/dev.c Diff File
mod - src/stored/dev.h Diff File
mod - src/stored/status.c Diff File
mod - src/stored/stored.h Diff File
add - src/stored/unix_device.c Diff File
add - src/stored/unix_device.h Diff File
mod - src/stored/vtape.c Diff File
mod - src/stored/vtape.h Diff File
mod - src/win32/Makefile Diff File
add - src/win32/compat/include/sys/mtio.h Diff File
mod - src/win32/filed/Makefile Diff File
mod - src/win32/filed/filedres.rc.in Diff File
mod - src/win32/filed/who.h Diff File
mod - src/win32/plugins/Makefile Diff File
mod - src/win32/plugins/filed/Makefile Diff File
add - src/win32/plugins/stored/Makefile Diff File
add - src/win32/stored/Makefile Diff File
add - src/win32/stored/storedres.rc.in Diff File
add - src/win32/stored/who.h Diff File
add - src/win32/stored/win32_file_device.c Diff File
add - src/win32/stored/win32_file_device.h Diff File
add - src/win32/stored/win32_tape_device.c Diff File
add - src/win32/stored/win32_tape_device.h Diff File

master 2242e405

2013-12-09 16:12

Marco van Wieringen

Ported: N/A

Details Diff
Bring windows support up to Windows 2012 server.

This commit bring the windows code to support all new
features that have been added to windows up till windows
2012 server. We also reindented a lot of code along the
way to be more readable and fixes most comments.

The actual added features:
- Volume Mountpoints support (VMP).

Windows for some version now supports so called Volume
MountPoint which allow you to mount a volume somewhere
in the filesystem layout analog to what UNIX has been
doing since it inception without assigning a drive letter.
We need to make sure we also add the VMPs to the VSS snapshot
list otherwise the backup will fail.

- Use GetFileInformationByHandleEx to get real changetime.

As it seems ctime in the stat struct on UNIX means for
some time now the last change time of the inode and not
the creation time. On Windows we need a special API to
get the actual change time named GetFileInformationByHandleEx().
While implementing this new feature we reformated some of
the layout and dropped some unused code.

- Windows dedup support

Windows 2012 has dedup support which needs handling.

To get rehydrated data when reading the file you should open
the file without the FILE_FLAG_OPEN_REPARSE_POINT flag set.
If you want to read the deduped data effeciently you need to
write new code which interfaces to a new API which is currently
out of scope. The original file on the filesystem is replaced
with a so called reparse point so if we open the reparse point
instead of where it points to we get data which has a pointer
to a map of all the data streams and chunks required to
“rehydrate” the file and not its actual data.

We now changed the stat emulation functions to detect the special
reparse point with type IO_REPARSE_TAG_DEDUP which indicates
a deduped file.

When that is set we set a special bit on the file so we know we
need to open the file with the O_NOFOLLOW flag which will open
the file without the FILE_FLAG_OPEN_REPARSE_POINT flag set.

More info at:

http://blogs.technet.com/b/filecab/archive/2012/05/21/introduction-to-data-deduplication-in-windows-server-2012.aspx

- Store all file attributes

Windows has gathered quite some special specific file
flags over the years but not all are saved during backup so
some are never restored by the restore process. The most
important ones are the ARCHIVE flag which is "misused" by
some programs for storing some special information. Others
that are known not to be stored are the COMPRESSED flag which
means that a restored file looses it and will be restored as
an uncompressed file.

As we are running out of opportunities to store the special
flags as some mode in the st_mode member of the stat struct
a redesign was needed to store the unique file flag somewhere
else. We are reusing the st_rdev field. That is already used for
reparse points in older versions but as those are never restored
anyway we can reuse them without breaking backwards compatability.

- Support for Windows EFS filesystems

Windows has for quite some time now support for a so called EFS
filesystem. This is an encrypted filesystem, to be able to backup the
data and to restore it we need to use a special API. With this API you
in essence export the data on backup and import it on restore. This
way you never have access to the unencrypted data but just import and
export the encrypted data. This is the cleanest way of handling
encryption by just seeing the data as some opaque data and not try to
do anything special with it. The problem with the restore API is
however that it kind of works in a completely different way then a
normal read/write API. You call a import function and that call the
read callback multiple times until all data is imported/restored. As
we don't want to rewrite the whole internal works of the filed for
this we now create a seperate thread that runs during the whole
restore of a filesystem and behaves as a consumer/producer problem
(well known in the pthreads world). In this solution the producer is
the filed that produces encrypted data out of the incoming data
streams from the storage daemon and the seperate thread consumes that
data by returning it as encrypted data in the callback function issues
by the special EFS import API. There is some synchronization between
the different threads so it knows when one file is done and it should
end the import of that file. We also keep some of the buffers
lingering around so we don't need to do malloc/free/malloc loops all
the time, we cleanup the whole thread and the buffers used at the end
of the whole restore process.

Fixes 0000228: Some windows file attributes are not handled.
Fixes 0000008: Handle Windows Encrypted Files using Win raw encryption

Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com>
mod - src/filed/backup.c Diff File
mod - src/filed/crypto.c Diff File
mod - src/filed/dir_cmd.c Diff File
mod - src/filed/fd_plugins.c Diff File
mod - src/filed/filed.c Diff File
mod - src/filed/fileset.c Diff File
mod - src/filed/protos.h Diff File
mod - src/filed/restore.c Diff File
mod - src/filed/verify.c Diff File
mod - src/findlib/attribs.c Diff File
mod - src/findlib/bfile.c Diff File
mod - src/findlib/bfile.h Diff File
mod - src/findlib/create_file.c Diff File
mod - src/findlib/find.c Diff File
mod - src/findlib/find.h Diff File
mod - src/findlib/find_one.c Diff File
mod - src/findlib/mkpath.c Diff File
mod - src/findlib/protos.h Diff File
mod - src/include/baconfig.h Diff File
mod - src/include/bareos.h Diff File
mod - src/include/bc_types.h Diff File
mod - src/include/jcr.h Diff File
mod - src/lib/Makefile.in Diff File
add - src/lib/cbuf.c Diff File
add - src/lib/cbuf.h Diff File
mod - src/plugins/filed/fd_common.h Diff File
mod - src/win32/Makefile Diff File
mod - src/win32/Makefile.inc Diff File
mod - src/win32/compat/compat.c Diff File
mod - src/win32/compat/include/compat.h Diff File
mod - src/win32/compat/include/mingwconfig.h Diff File
mod - src/win32/compat/print.c Diff File
mod - src/win32/compat/winapi.c Diff File
mod - src/win32/console/Makefile Diff File
mod - src/win32/filed/Makefile Diff File
mod - src/win32/filed/vss.c Diff File
mod - src/win32/filed/vss_generic.c Diff File
mod - src/win32/findlib/Makefile Diff File
add - src/win32/findlib/win32.c Diff File
mod - src/win32/include/vss.h Diff File
mod - src/win32/include/winapi.h Diff File
mod - src/win32/lib/Makefile Diff File
mod - src/win32/plugins/filed/Makefile Diff File

master 9ce1a008

2013-12-09 16:10

mvwieringen

Ported: N/A

Details Diff
Teach the qt programs the new socket abstraction.
mod - src/qt-console/bcomm/dircomm.cpp Diff File
mod - src/qt-tray-monitor/monitoritem.cpp Diff File

master 7790a32f

2013-12-09 15:13

mvwieringen

Ported: N/A

Details Diff
Implementation of Python Director Plugin

Implement a plugin that makes it possible to write Director plugins in Python.

Stub plugin function is available that loads a python interpreter per plugin
instance. Need to link the plugin events to Python methods and allow the Python
code to call the plugin code do read and write plugin variables.

Fixes 0000012: Implementation of Python Director Plugin
Affected Issues
0000012
mod - src/dird/dir_plugins.c Diff File
mod - src/dird/dir_plugins.h Diff File
mod - src/plugins/dird/Makefile.in Diff File
add - src/plugins/dird/bareos-dir.py Diff File
add - src/plugins/dird/bareos_dir_consts.py Diff File
mod - src/plugins/dird/python-dir.c Diff File
add - src/plugins/dird/python-dir.h Diff File

master 7c18ee65

2013-12-09 15:13

mvwieringen

Ported: N/A

Details Diff
Implementation of Python StorageDaemon Plugin

Implement a plugin that makes it possible to write Storage daemon plugins in Python.

Stub plugin function is available that loads a python interpreter per plugin
instance. Need to link the plugin events to Python methods and allow the Python
code to call the plugin code do read and write plugin variables.

Fixes 0000011: Implementation of Python StorageDaemon Plugin
Affected Issues
0000011
mod - src/plugins/stored/Makefile.in Diff File
add - src/plugins/stored/bareos-sd.py Diff File
add - src/plugins/stored/bareos_sd_consts.py Diff File
mod - src/plugins/stored/python-sd.c Diff File
add - src/plugins/stored/python-sd.h Diff File
mod - src/stored/sd_plugins.c Diff File
mod - src/stored/sd_plugins.h Diff File

master 740de8e2

2013-12-09 15:13

mvwieringen

Ported: N/A

Details Diff
Implementation of Python FileDaemon Plugin

Implement a plugin that makes it possible to write File daemon plugins in Python.

Stub plugin function is available that loads a python interpreter per plugin
instance. Need to link the plugin events to Python methods and allow the Python
code to call the plugin code do read and write plugin variables.

Fixes 0000010: Implementation of Python FileDaemon Plugin
Affected Issues
0000010
mod - src/filed/fd_plugins.c Diff File
mod - src/plugins/filed/Makefile.in Diff File
add - src/plugins/filed/bareos-fd.py Diff File
add - src/plugins/filed/bareos_fd_consts.py Diff File
mod - src/plugins/filed/python-fd.c Diff File
add - src/plugins/filed/python-fd.h Diff File

master 64f25767

2013-12-09 15:13

mvwieringen

Ported: N/A

Details Diff
Allow the conditional enabling of SO_KEEPALIVE on sockets.
mod - src/dird/dird_conf.c Diff File
mod - src/dird/dird_conf.h Diff File
mod - src/dird/fd_cmds.c Diff File
mod - src/dird/ua_server.c Diff File
mod - src/filed/dir_cmd.c Diff File
mod - src/filed/filed.c Diff File
mod - src/filed/filed_conf.c Diff File
mod - src/filed/filed_conf.h Diff File
mod - src/lib/bnet_server_tcp.c Diff File
mod - src/lib/bsock.h Diff File
mod - src/lib/bsock_sctp.c Diff File
mod - src/lib/bsock_tcp.c Diff File
mod - src/lib/bsock_udt.c Diff File
mod - src/lib/protos.h Diff File
mod - src/stored/dir_cmd.c Diff File
mod - src/stored/stored.c Diff File
mod - src/stored/stored_conf.c Diff File
mod - src/stored/stored_conf.h Diff File

master 49e41f5a

2013-12-09 15:13

mvwieringen

Ported: N/A

Details Diff
Promote BSOCK to a proper class implementation.

First steps in abstracting network layer.

It would be nice to use other communication sockets then
only TCP ones as its done now. The whole socket abstraction needs
a major overhaul and some of the old bnet functions can be retired
now permanently and some functions are better written as methods
of the BSOCK class so we can write socket type specific implementations
of them.

This implements a BSOCK_TCP class which has the now used TCP sockets and
a dummy BSOCK_SCTP class which will eventually hold the SCTP sockets
and a dummy BSOCK_UDT class which will eventually hold the UDT sockets.
Affected Issues
0000171
mod - src/console/console.c Diff File
mod - src/dird/backup.c Diff File
mod - src/dird/fd_cmds.c Diff File
mod - src/dird/job.c Diff File
mod - src/dird/msgchan.c Diff File
mod - src/dird/restore.c Diff File
mod - src/dird/sd_cmds.c Diff File
mod - src/dird/ua_cmds.c Diff File
mod - src/dird/ua_purge.c Diff File
mod - src/dird/ua_run.c Diff File
mod - src/dird/ua_server.c Diff File
mod - src/dird/verify.c Diff File
mod - src/filed/dir_cmd.c Diff File
mod - src/filed/filed.c Diff File
mod - src/filed/heartbeat.c Diff File
mod - src/filed/sd_cmds.c Diff File
mod - src/lib/Makefile.in Diff File
mod - src/lib/bnet.c Diff File
mod - src/lib/bsock.c Diff File
mod - src/lib/bsock.h Diff File
add - src/lib/bsock_sctp.c Diff File
add - src/lib/bsock_sctp.h Diff File
add - src/lib/bsock_tcp.c Diff File
add - src/lib/bsock_tcp.h Diff File
add - src/lib/bsock_udt.c Diff File
add - src/lib/bsock_udt.h Diff File
mod - src/lib/jcr.c Diff File
mod - src/lib/lib.h Diff File
mod - src/lib/protos.h Diff File
mod - src/stored/bscan.c Diff File
mod - src/stored/dir_cmd.c Diff File
mod - src/stored/job.c Diff File
mod - src/stored/ndmp_tape.c Diff File
mod - src/stored/sd_cmds.c Diff File
mod - src/stored/stored.c Diff File

master ca578b19

2013-12-09 15:13

mvwieringen

Ported: N/A

Details Diff
Build and package the windows storage daemon.
mod - platforms/win32/fillup.sed Diff File
add - platforms/win32/storagedialog.ini Diff File
add - platforms/win32/tray-monitor-conf-fd-sd.patch Diff File
mod - platforms/win32/winbareos-nsi.spec Diff File
mod - platforms/win32/winbareos.nsi Diff File
mod - platforms/win32/winbareos32.spec Diff File
mod - platforms/win32/winbareos64.spec Diff File
mod - src/filed/status.c Diff File
mod - src/include/version.h Diff File
mod - src/stored/Makefile.in Diff File
mod - src/stored/dev.c Diff File
mod - src/stored/dev.h Diff File
mod - src/stored/status.c Diff File
mod - src/stored/stored.h Diff File
add - src/stored/unix_device.c Diff File
add - src/stored/unix_device.h Diff File
mod - src/stored/vtape.c Diff File
mod - src/stored/vtape.h Diff File
mod - src/win32/Makefile Diff File
add - src/win32/compat/include/sys/mtio.h Diff File
mod - src/win32/filed/Makefile Diff File
mod - src/win32/filed/filedres.rc.in Diff File
mod - src/win32/filed/who.h Diff File
mod - src/win32/plugins/Makefile Diff File
mod - src/win32/plugins/filed/Makefile Diff File
add - src/win32/plugins/stored/Makefile Diff File
add - src/win32/stored/Makefile Diff File
add - src/win32/stored/storedres.rc.in Diff File
add - src/win32/stored/who.h Diff File
add - src/win32/stored/win32_file_device.c Diff File
add - src/win32/stored/win32_file_device.h Diff File
add - src/win32/stored/win32_tape_device.c Diff File
add - src/win32/stored/win32_tape_device.h Diff File

master fa9aabd5

2013-12-09 15:12

mvwieringen

Ported: N/A

Details Diff
Bring windows support up to Windows 2012 server.

This commit bring the windows code to support all new
features that have been added to windows up till windows
2012 server. We also reindented a lot of code along the
way to be more readable and fixes most comments.

The actual added features:
- Volume Mountpoints support (VMP).

Windows for some version now supports so called Volume
MountPoint which allow you to mount a volume somewhere
in the filesystem layout analog to what UNIX has been
doing since it inception without assigning a drive letter.
We need to make sure we also add the VMPs to the VSS snapshot
list otherwise the backup will fail.

- Use GetFileInformationByHandleEx to get real changetime.

As it seems ctime in the stat struct on UNIX means for
some time now the last change time of the inode and not
the creation time. On Windows we need a special API to
get the actual change time named GetFileInformationByHandleEx().
While implementing this new feature we reformated some of
the layout and dropped some unused code.

- Windows dedup support

Windows 2012 has dedup support which needs handling.

To get rehydrated data when reading the file you should open
the file without the FILE_FLAG_OPEN_REPARSE_POINT flag set.
If you want to read the deduped data effeciently you need to
write new code which interfaces to a new API which is currently
out of scope. The original file on the filesystem is replaced
with a so called reparse point so if we open the reparse point
instead of where it points to we get data which has a pointer
to a map of all the data streams and chunks required to
“rehydrate” the file and not its actual data.

We now changed the stat emulation functions to detect the special
reparse point with type IO_REPARSE_TAG_DEDUP which indicates
a deduped file.

When that is set we set a special bit on the file so we know we
need to open the file with the O_NOFOLLOW flag which will open
the file without the FILE_FLAG_OPEN_REPARSE_POINT flag set.

More info at:

http://blogs.technet.com/b/filecab/archive/2012/05/21/introduction-to-data-deduplication-in-windows-server-2012.aspx

- Store all file attributes

Windows has gathered quite some special specific file
flags over the years but not all are saved during backup so
some are never restored by the restore process. The most
important ones are the ARCHIVE flag which is "misused" by
some programs for storing some special information. Others
that are known not to be stored are the COMPRESSED flag which
means that a restored file looses it and will be restored as
an uncompressed file.

As we are running out of opportunities to store the special
flags as some mode in the st_mode member of the stat struct
a redesign was needed to store the unique file flag somewhere
else. We are reusing the st_rdev field. That is already used for
reparse points in older versions but as those are never restored
anyway we can reuse them without breaking backwards compatability.

- Support for Windows EFS filesystems

Windows has for quite some time now support for a so called EFS
filesystem. This is an encrypted filesystem, to be able to backup the
data and to restore it we need to use a special API. With this API you
in essence export the data on backup and import it on restore. This
way you never have access to the unencrypted data but just import and
export the encrypted data. This is the cleanest way of handling
encryption by just seeing the data as some opaque data and not try to
do anything special with it. The problem with the restore API is
however that it kind of works in a completely different way then a
normal read/write API. You call a import function and that call the
read callback multiple times until all data is imported/restored. As
we don't want to rewrite the whole internal works of the filed for
this we now create a seperate thread that runs during the whole
restore of a filesystem and behaves as a consumer/producer problem
(well known in the pthreads world). In this solution the producer is
the filed that produces encrypted data out of the incoming data
streams from the storage daemon and the seperate thread consumes that
data by returning it as encrypted data in the callback function issues
by the special EFS import API. There is some synchronization between
the different threads so it knows when one file is done and it should
end the import of that file. We also keep some of the buffers
lingering around so we don't need to do malloc/free/malloc loops all
the time, we cleanup the whole thread and the buffers used at the end
of the whole restore process.

Fixes 0000228: Some windows file attributes are not handled.
Fixes 0000008: Handle Windows Encrypted Files using Win raw encryption

Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com>
Affected Issues
0000008, 0000228
mod - src/filed/backup.c Diff File
mod - src/filed/crypto.c Diff File
mod - src/filed/dir_cmd.c Diff File
mod - src/filed/fd_plugins.c Diff File
mod - src/filed/filed.c Diff File
mod - src/filed/fileset.c Diff File
mod - src/filed/protos.h Diff File
mod - src/filed/restore.c Diff File
mod - src/filed/verify.c Diff File
mod - src/findlib/attribs.c Diff File
mod - src/findlib/bfile.c Diff File
mod - src/findlib/bfile.h Diff File
mod - src/findlib/create_file.c Diff File
mod - src/findlib/find.c Diff File
mod - src/findlib/find.h Diff File
mod - src/findlib/find_one.c Diff File
mod - src/findlib/mkpath.c Diff File
mod - src/findlib/protos.h Diff File
mod - src/include/baconfig.h Diff File
mod - src/include/bareos.h Diff File
mod - src/include/bc_types.h Diff File
mod - src/include/jcr.h Diff File
mod - src/lib/Makefile.in Diff File
add - src/lib/cbuf.c Diff File
add - src/lib/cbuf.h Diff File
mod - src/plugins/filed/fd_common.h Diff File
mod - src/win32/Makefile Diff File
mod - src/win32/Makefile.inc Diff File
mod - src/win32/compat/compat.c Diff File
mod - src/win32/compat/include/compat.h Diff File
mod - src/win32/compat/include/mingwconfig.h Diff File
mod - src/win32/compat/print.c Diff File
mod - src/win32/compat/winapi.c Diff File
mod - src/win32/console/Makefile Diff File
mod - src/win32/filed/Makefile Diff File
mod - src/win32/filed/vss.c Diff File
mod - src/win32/filed/vss_generic.c Diff File
mod - src/win32/findlib/Makefile Diff File
add - src/win32/findlib/win32.c Diff File
mod - src/win32/include/vss.h Diff File
mod - src/win32/include/winapi.h Diff File
mod - src/win32/lib/Makefile Diff File
mod - src/win32/plugins/filed/Makefile Diff File

bareos-13.2 9b03474f

2013-11-28 21:40

Marco van Wieringen

Ported: N/A

Details Diff
Add support for setting allowed cns for passive mode.

Fixes 0000257: When using passive mode and TLS using NAT the verify peer mode will fail.
mod - src/filed/authenticate.c Diff File
mod - src/filed/filed_conf.c Diff File
mod - src/filed/filed_conf.h Diff File

master 3bdfdd8f

2013-11-28 21:40

Marco van Wieringen

Ported: N/A

Details Diff
Add support for setting allowed cns for passive mode.

Fixes 0000257: When using passive mode and TLS using NAT the verify peer mode will fail.
mod - src/filed/authenticate.c Diff File
mod - src/filed/filed_conf.c Diff File
mod - src/filed/filed_conf.h Diff File

bareos-13.2 52acbfbc

2013-11-28 20:40

mvwieringen

Ported: N/A

Details Diff
Add support for setting allowed cns for passive mode.

Fixes 0000257: When using passive mode and TLS using NAT the verify peer mode will fail.
Affected Issues
0000257
mod - src/filed/authenticate.c Diff File
mod - src/filed/filed_conf.c Diff File
mod - src/filed/filed_conf.h Diff File
 First  Prev  1 2 3 ... 60 ... 120 ... 180 ... 240 ... 300 ... 360 ... 420 ... 480 ... 540 ... 600 ... 604 605 606 607 608 609 610 ... 641 642 643  Next  Last