/* Set if Bacula conio support enabled */
#undef HAVE_CONIO
+/* Define if encryption support should be enabled */
+#undef HAVE_CRYPTO
+
/* Define to 1 if you have the <curses.h> header file. */
#undef HAVE_CURSES_H
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
+/* Define to 1 if you have the `fdatasync' function. */
+#undef HAVE_FDATASYNC
+
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)])
AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)])
AC_CHECK_FUNCS(posix_fadvise)
+AC_CHECK_FUNCS(fdatasync)
AC_CHECK_FUNCS(chflags)
done
+for ac_func in fdatasync
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+ { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
for ac_func in chflags
do
02-Feb 11:00 btape: Fatal Error because: Bacula interrupted by signal 11: Segmentation violation
Kaboom! btape, btape got signal 11. Attempting traceback.
+- Encryption -- email from Landon
+ > The backup encryption algorithm is currently not configurable, and is
+ > set to AES_128_CBC in src/filed/backup.c. The encryption code
+ > supports a number of different ciphers (as well as adding arbitrary
+ > new ones) -- only a small bit of code would be required to map a
+ > configuration string value to a CRYPTO_CIPHER_* value, if anyone is
+ > interested in implementing this functionality.
+
- Ensure that moving a purged Volume in ua_purge.c to the RecyclePool
does the right thing.
- Why doesn't @"xxx abc" work in a conf file?
#include <sys/paths.h>
#endif
+#if !defined(HAVE_FDATASYNC)
+#define fdatasync(fd)
+#endif
+
+
/* ===============================================================
*
* U N I X AND W I N D O W S
}
}
bfd->berrno = errno;
+ bfd->m_flags = flags;
Dmsg1(400, "Open file %d\n", bfd->fid);
errno = bfd->berrno;
bfd->win32DecompContext.liNextHeader = 0;
#if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED)
- if (bfd->fid != -1) {
+ if (bfd->fid != -1 && flags & O_RDONLY) {
int stat = posix_fadvise(bfd->fid, 0, 0, POSIX_FADV_WILLNEED);
Dmsg2(400, "Did posix_fadvise on %s stat=%d\n", fname, stat);
}
if (bfd->fid == -1) {
return 0;
}
+#if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_DONTNEED)
+ if (bfd->m_flags & O_RDONLY) {
+ fdatasync(bfd->fid); /* sync the file */
+ /* Tell OS we don't need it any more */
+ posix_fadvise(bfd->fid, 0, 0, POSIX_FADV_DONTNEED);
+ }
+#endif
/* Close normal file */
stat = close(bfd->fid);
-/*
- * Bacula low level File I/O routines. This routine simulates
- * open(), read(), write(), and close(), but using native routines.
- * I.e. on Windows, we use Windows APIs.
- *
- * Kern Sibbald May MMIII
- */
/*
Bacula® - The Network Backup Solution
- Copyright (C) 2003-2006 Free Software Foundation Europe e.V.
+ Copyright (C) 2003-2007 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
*/
+/*
+ * Bacula low level File I/O routines. This routine simulates
+ * open(), read(), write(), and close(), but using native routines.
+ * I.e. on Windows, we use Windows APIs.
+ *
+ * Kern Sibbald May MMIII
+ */
#ifndef __BFILE_H
#define __BFILE_H
/* Basic Unix low level I/O file packet */
struct BFILE {
int fid; /* file id on Unix */
+ int m_flags; /* open flags */
int berrno;
char *prog; /* reader/writer program if any */
JCR *jcr; /* jcr for editing job codes */
POOL_MEM msg(PM_MESSAGE);
int len;
+ len = Mmsg(msg, _("Spooling statistics:\n"));
+
if (spool_stats.data_jobs || spool_stats.max_data_size) {
len = Mmsg(msg, _("Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n"),
spool_stats.data_jobs, edit_uint64_with_commas(spool_stats.data_size, ed1),
sendit(msg.c_str(), len, arg);
}
+ len = Mmsg(msg, "====\n");
+ sendit(msg.c_str(), len, arg);
}
bool begin_data_spool(DCR *dcr)
struct tm tm;
char tzbuf[MAXSTRING];
long my_timezone;
- struct timeval tv;
- struct timezone tz;
/* Add RFC822 date */
(void)localtime_r(&now, &tm);
my_timezone /= 60;
#else
+ struct timeval tv;
+ struct timezone tz;
gettimeofday(&tv, &tz);
my_timezone = tz.tz_minuteswest; /* timezone offset in mins */
#endif
must be declared in a header file and MUST NOT be declared in a
source file referencing the variable.
+Exporting functions is now more or less automated. If you find that
+a function name has been added, changed, or an argument modified,
+simply do the following:
+
+ cd .../bacula/src/win32/dll
+ make (to build the .o files, note the link will fail)
+ ./make_def >bacula.def
+
+This should rebuild the bacula.def file.
+
+===== manual changing of bacula.def no longer necessary =====
+If you want to do it manually, please see below:
Exporting a function requires a bit more work. You must determine the
C++ mangled name of the new function.
in the file
.../bacula/src/win32/dll/bacula.def
+=== end manual changing of bacula.def ==========
If you add a new file, you will need to specify its name in
New data variables are exported by placing their name in the file
.../bacula/src/win32/cats/bacula_cats.def.
+As with the bacula.def file above, this is now more or less automated.
+When the link dies, simply do the following:
+
+ cd .../bacula/src/win32/cats
+ make (to build the .o files, note the link will fail)
+ ./make_def >bacula_cats.def
+
+This should rebuild the bacula_cats.def file. Note, if you have
+changed any data entry points, you will need to modify the make_def
+script -- it should be rather obvious.
+
+
+===== manual changing of bacula_cats.def no longer necessary =====
Exporting a function requires a bit more work. You must determine the
C++ mangled name of the new function.
which contains the new function. Replace <symbol> with the name of
the new function. Remove the leading underscore and place the result
in the .../bacula/src/win32/cats/bacula_cats.def file.
+=== end manual changing of bacula_cats.def ==========
Structure of the MinGW32 build environment
LIBRARY bacula_cats.dll\r
EXPORTS\r
-\r
-; bdb.c:\r
-; mysql.c:\r
-; postgresql.c:\r
-; sqlite.c:\r
-_Z11db_get_typev\r
-_Z12db_sql_queryP4B_DBPKcPFiPviPPcES3_\r
-_Z16db_escape_stringPcS_i\r
-_Z16db_init_databaseP3JCRPKcS2_S2_S2_iS2_i\r
-_Z16db_open_databaseP3JCRP4B_DB\r
-_Z17db_close_databaseP3JCRP4B_DB\r
-_Z17db_thread_cleanupv\r
-\r
-; sql.c:\r
+ \r
+; sql.o\r
_Z10_db_unlockPKciP4B_DB\r
_Z11db_strerrorP4B_DB\r
+_Z11list_dashesP4B_DBPFvPvPKcES1_\r
+_Z11list_resultP3JCRP4B_DBPFvPvPKcES3_11e_list_type\r
_Z16db_int64_handlerPviPPc\r
_Z18db_end_transactionP3JCRP4B_DB\r
+_Z18get_sql_record_maxP3JCRP4B_DB\r
+_Z19split_path_and_fileP3JCRP4B_DBPKc\r
+_Z20check_tables_versionP3JCRP4B_DB\r
_Z20db_start_transactionP3JCRP4B_DB\r
+_Z7QueryDBPKciP3JCRP4B_DBPc\r
+_Z8DeleteDBPKciP3JCRP4B_DBPc\r
+_Z8InsertDBPKciP3JCRP4B_DBPc\r
+_Z8UpdateDBPKciP3JCRP4B_DBPc\r
_Z8_db_lockPKciP4B_DB\r
-\r
-; bdb_create.c:\r
-; sql_create.c:\r
+ \r
+; sql_create.o\r
+_Z12my_batch_endP3JCRP4B_DBPKc\r
+_Z14my_batch_startP3JCRP4B_DB\r
+_Z15my_batch_insertP3JCRP4B_DBP8ATTR_DBR\r
_Z20db_create_job_recordP3JCRP4B_DBP7JOB_DBR\r
_Z21db_create_pool_recordP3JCRP4B_DBP8POOL_DBR\r
_Z22db_create_media_recordP3JCRP4B_DBP9MEDIA_DBR\r
_Z23db_create_client_recordP3JCRP4B_DBP10CLIENT_DBR\r
+_Z23db_create_device_recordP3JCRP4B_DBP10DEVICE_DBR\r
_Z24db_create_counter_recordP3JCRP4B_DBP11COUNTER_DBR\r
_Z24db_create_fileset_recordP3JCRP4B_DBP11FILESET_DBR\r
_Z24db_create_storage_recordP3JCRP4B_DBP11STORAGE_DBR\r
_Z25db_create_jobmedia_recordP3JCRP4B_DBP12JOBMEDIA_DBR\r
_Z26db_create_mediatype_recordP3JCRP4B_DBP13MEDIATYPE_DBR\r
-_Z32db_create_file_attributes_recordP3JCRP4B_DBP8ATTR_DBR\r
_Z27db_write_batch_file_recordsP3JCR\r
-\r
-; bdb_delete.c:\r
-; sql_delete.c:\r
+_Z32db_create_file_attributes_recordP3JCRP4B_DBP8ATTR_DBR\r
+ \r
+; sql_delete.o\r
_Z21db_delete_pool_recordP3JCRP4B_DBP8POOL_DBR\r
+_Z21db_purge_media_recordP3JCRP4B_DBP9MEDIA_DBR\r
_Z22db_delete_media_recordP3JCRP4B_DBP9MEDIA_DBR\r
-\r
-; bdb_find.c:\r
-; sql_find.c:\r
+ \r
+; sql_find.o\r
_Z18db_find_last_jobidP3JCRP4B_DBPKcP7JOB_DBR\r
_Z19db_find_next_volumeP3JCRP4B_DBibP9MEDIA_DBR\r
_Z22db_find_job_start_timeP3JCRP4B_DBP7JOB_DBRPPc\r
_Z24db_find_failed_job_sinceP3JCRP4B_DBP7JOB_DBRPcRi\r
-\r
-; bdb_get.c:\r
-; sql_get.c:\r
+ \r
+; sql_get.o\r
_Z15db_get_pool_idsP3JCRP4B_DBPiPPj\r
_Z16db_get_media_idsP3JCRP4B_DBP9MEDIA_DBRPiPPj\r
_Z17db_get_client_idsP3JCRP4B_DBPiPPj\r
_Z18db_get_pool_recordP3JCRP4B_DBP8POOL_DBR\r
_Z19db_get_media_recordP3JCRP4B_DBP9MEDIA_DBR\r
_Z20db_get_client_recordP3JCRP4B_DBP10CLIENT_DBR\r
+_Z21db_get_counter_recordP3JCRP4B_DBP11COUNTER_DBR\r
_Z21db_get_fileset_recordP3JCRP4B_DBP11FILESET_DBR\r
_Z23db_get_job_volume_namesP3JCRP4B_DBjPPc\r
+_Z23db_get_num_pool_recordsP3JCRP4B_DB\r
+_Z24db_get_num_media_recordsP3JCRP4B_DB\r
_Z28db_get_job_volume_parametersP3JCRP4B_DBjPP10VOL_PARAMS\r
_Z29db_get_file_attributes_recordP3JCRP4B_DBPcP7JOB_DBRP8FILE_DBR\r
-\r
-; bdb_list.c:\r
-; sql_list.c:\r
+ \r
+; sql_list.o\r
_Z17db_list_sql_queryP3JCRP4B_DBPKcPFvPvS4_ES5_i11e_list_type\r
_Z18db_list_job_totalsP3JCRP4B_DBP7JOB_DBRPFvPvPKcES5_\r
_Z19db_list_job_recordsP3JCRP4B_DBP7JOB_DBRPFvPvPKcES5_11e_list_type\r
_Z21db_list_media_recordsP3JCRP4B_DBP9MEDIA_DBRPFvPvPKcES5_11e_list_type\r
_Z22db_list_client_recordsP3JCRP4B_DBPFvPvPKcES3_11e_list_type\r
_Z24db_list_jobmedia_recordsP3JCRP4B_DBjPFvPvPKcES3_11e_list_type\r
-\r
-; bdb_update.c:\r
-; sql_update.c:\r
+ \r
+; sql_update.o\r
_Z19db_mark_file_recordP3JCRP4B_DBjj\r
_Z21db_update_pool_recordP3JCRP4B_DBP8POOL_DBR\r
_Z22db_update_media_recordP3JCRP4B_DBP9MEDIA_DBR\r
_Z24db_update_storage_recordP3JCRP4B_DBP11STORAGE_DBR\r
_Z26db_update_job_start_recordP3JCRP4B_DBP7JOB_DBR\r
_Z28db_add_digest_to_file_recordP3JCRP4B_DBjPci\r
-\r
+ \r
+_Z11db_get_typev\r
+_Z12db_sql_queryP4B_DBPKcPFiPviPPcES3_\r
+_Z13db_next_indexP3JCRP4B_DBPcS3_\r
+_Z16db_escape_stringPcS_i\r
+_Z16db_init_databaseP3JCRPKcS2_S2_S2_iS2_i\r
+_Z16db_open_databaseP3JCRP4B_DB\r
+_Z17db_close_databaseP3JCRP4B_DB\r
+_Z17db_thread_cleanupv\r
client_backups DATA\r
list_pool DATA\r
drop_deltabs DATA\r
cnt_JobMedia DATA\r
sel_JobMedia DATA\r
upd_Purged DATA\r
-\r
uar_list_jobs DATA\r
uar_file DATA\r
uar_count_files DATA\r
LIBRARY bacula.dll
EXPORTS
-
-;
-; compat
-;
-; compat.c:
+
+; compat.o
_Z10open_bpipePciPKc
_Z11close_bpipeP5BPIPE
+_Z11close_wpipeP5BPIPE
+_Z11strncasecmpPKcS0_i
_Z11win32_cgetsPci
+_Z11win32_chdirPKc
_Z11win32_fputsPKcP6_iobuf
+_Z11win32_mkdirPKc
+_Z12UTF8_2_wcharPPcPKc
_Z12gettimeofdayP7timevalP8timezone
_Z12init_signalsPFviE
_Z12wchar_2_UTF8PcPKwi
+_Z12win32_getcwdPci
_Z12win32_unlinkPKc
_Z15init_stack_dumpv
+_Z15win32_ftruncateix
+_Z16wchar_win32_pathPKcPw
_Z17SetVSSPathConvertPFiPKcPciEPFiPKwPwiE
+_Z18CreateChildProcessPKcPvS1_S1_
+_Z18GetApplicationNamePKcPPcPS0_
+_Z18cvt_ftime_to_utimeRK9_FILETIME
+_Z18cvt_utime_to_ftimeRKlR9_FILETIME
+_Z18unix_name_to_win32PPcS_
+_Z21Win32ConvCleanupCachev
+_Z21make_wchar_win32_pathPcPi
+_Z23conv_unix_to_win32_pathPKcPcm
+_Z28make_win32_path_UTF8_2_wcharPPcPKcPi
+_Z4forkv
_Z4killii
+_Z4pipePi
_Z4statPKcP4stat
+_Z5chmodPKct
+_Z5chownPKcjj
+_Z5fcntlii
_Z5fcntliil
_Z5fstatiP4stat
_Z5lstatPKcP4stat
_Z5sleepi
+_Z6execvpPKcPPc
+_Z6lchownPKcjj
_Z6randomv
+_Z7geteuidv
_Z7opendirPKc
+_Z7openlogPKcii
_Z7srandomj
+_Z7waitpidiPii
+_Z8WSA_Initv
_Z8closedirPv
+_Z8closelogv
+_Z8getArgv0PKc
+_Z8getgrgidj
+_Z8getpwuidj
_Z8pathconfPKci
-_Z8WSA_Initv
+_Z8readlinkPKcPci
+_Z9ErrorExitPKc
+_Z9inet_atonPKcP7in_addr
+_Z9nanosleepPK8timespecPS_
_Z9readdir_rPvP6direntPS1_
-_Z15win32_ftruncateix
-
-; print.c:
-
-; winapi.c:
+_ZN6winverC1Ev
+_ZN6winverC2Ev
+syslog
+umask
+utime
+
+; print.o
+_Z10__snprintfPcjPKcz
+_Z10__vsprintfPcPKcS_
+_Z11__vsnprintfPcjPKcS_
+_Z4doprPcjPKcS_PFvS_PjjiE
+_Z9__sprintfPcPKcz
+
+; winapi.o
_Z17InitWinAPIWrapperv
-
-;
-; findlib
-;
-; attribs.c:
+
+; attribs.o
_Z11decode_statPcP4statPi
_Z11encode_statPcP6FF_PKTi
_Z13decode_LinkFIPcP4stat
_Z14set_attributesP3JCRP4ATTRP5BFILE
_Z16encode_attribsExP3JCRPcP6FF_PKT
_Z18select_data_streamP6FF_PKT
-
-; bfile.c:
+_Z4plugIjEvRT_y
+_Z4plugIlEvRT_y
+_Z4plugImEvRT_y
+_Z4plugIsEvRT_y
+_Z4plugItEvRT_y
+_Z4plugIyEvRT_y
+_Z9win_errorP3JCRPcS1_
+_Z9win_errorP3JCRPcm
+
+; bfile.o
+_Z11bget_handleP5BFILE
+_Z11int32_LE2BEPii
+_Z11int64_LE2BEPxx
_Z14have_win32_apiv
_Z15is_win32_streami
_Z15stream_to_asciii
+_Z16set_win32_backupP5BFILE
_Z18is_portable_backupP5BFILE
_Z19set_portable_backupP5BFILE
_Z26processWin32BackupAPIBlockP5BFILEPvl
_Z6bwriteP5BFILEPvj
_Z8is_bopenP5BFILE
_Z8set_progP5BFILEPcP3JCR
-
-; create_file.c:
+
+; create_file.o
_Z11create_fileP3JCRP4ATTRP5BFILEi
-
-; drivetype.c:
+
+; drivetype.o
_Z9drivetypePKcPci
-
-; enable_priv.c:
+
+; enable_priv.o
_Z24enable_backup_privilegesP3JCRi
-
-; find.c:
+
+; find.o
_Z10find_filesP3JCRP6FF_PKTPFiS2_PvbES3_
_Z15init_find_filesv
_Z15term_find_filesP6FF_PKT
_Z16set_find_optionsP6FF_PKTil
_Z22get_win32_drivelettersP6FF_PKTPc
-
-; find_one.c:
+
+; find_one.o
_Z13find_one_fileP3JCRP6FF_PKTPFiS2_PvbES3_Pcjb
+_Z13term_find_oneP6FF_PKT
_Z16has_file_changedP3JCRP6FF_PKT
-
-
-; fstype.c:
+
+; fstype.o
_Z6fstypePKcPci
-
-; makepath.c:
-
-; match.c:
+
+; match.o
_Z11match_filesP3JCRP6FF_PKTPFiS2_PvbES3_
_Z16file_is_excludedP6FF_PKTPKc
_Z16file_is_includedP6FF_PKTPKc
+_Z22get_next_included_fileP6FF_PKTP15s_included_file
_Z25add_fname_to_exclude_listP6FF_PKTPKc
_Z25add_fname_to_include_listP6FF_PKTiPKc
_Z26term_include_exclude_filesP6FF_PKT
-
-; save-cwd.c:
-
-;
-; lib
-;
-; address_conf.c:
+
+; address_conf.o
_Z14free_addressesP5dlist
_Z15store_addressesP13s_lex_contextP8RES_ITEMii
_Z17get_first_addressP5dlistPci
+_Z17sockaddr_get_portPK8sockaddr
_Z17sockaddr_to_asciiPK8sockaddrPci
+_Z19build_addresses_strP5dlistPci
_Z20store_addresses_portP13s_lex_contextP8RES_ITEMii
_Z22init_default_addressesPP5dlisti
_Z23store_addresses_addressP13s_lex_contextP8RES_ITEMii
+_Z24get_first_port_net_orderP5dlist
_Z25get_first_port_host_orderP5dlist
_Z27sockaddr_get_port_net_orderPK8sockaddr
_ZN6IPADDR11get_addressEPci
+_ZN6IPADDR12get_sockaddrEv
+_ZN6IPADDR12set_addr_anyEv
+_ZN6IPADDR12set_port_netEt
+_ZN6IPADDR16get_sockaddr_lenEv
+_ZN6IPADDR17build_address_strEPci
+_ZN6IPADDR8set_typeENS_6i_typeE
+_ZN6IPADDR9copy_addrEPS_
+_ZN6IPADDR9set_addr4EP7in_addr
+_ZN6IPADDRC1ERKS_
+_ZN6IPADDRC1Ei
+_ZN6IPADDRC2ERKS_
+_ZN6IPADDRC2Ei
+_ZNK6IPADDR10get_familyEv
_ZNK6IPADDR18get_port_net_orderEv
-
-; alist.c:
+_ZNK6IPADDR8get_typeEv
+
+; alist.o
_ZN5alist3getEi
+_ZN5alist4lastEv
_ZN5alist4nextEv
+_ZN5alist4prevEv
_ZN5alist5firstEv
_ZN5alist6appendEPv
_ZN5alist6removeEi
_ZN5alist7destroyEv
_ZN5alist7prependEPv
-
-; alloc.c:
-
-; attr.c:
+_ZN5alist9grow_listEv
+
+; attr.o
_Z15print_ls_outputP3JCRP4ATTR
_Z24build_attr_output_fnamesP3JCRP4ATTR
_Z24unpack_attributes_recordP3JCRiPcP4ATTR
_Z8new_attrv
_Z9free_attrP4ATTR
-
-; base64.c:
+
+; base64.o
+_Z11base64_initv
+_Z11from_base64PxPc
_Z13bin_to_base64PciS_ii
-
-; berrno.c:
+_Z9to_base64xPc
+
+; berrno.o
_ZN6berrno20format_win32_messageEv
_ZN6berrno9bstrerrorEv
-
-; bget_msg.c:
+
+; bget_msg.o
_Z8bget_msgP5BSOCK
-
-; bnet.c:
+
+; bnet.o
_Z10bnet_closeP5BSOCK
_Z10bnet_fsendP5BSOCKPKcz
_Z10init_bsockP3JCRiPKcS2_iP8sockaddr
_Z10term_bsockP5BSOCK
+_Z11read_nbytesP5BSOCKPci
_Z12bnet_connectP3JCRixxPKcPcS3_ii
_Z12is_bnet_stopP5BSOCK
+_Z12write_nbytesP5BSOCKPci
_Z13bnet_get_peerP5BSOCKPci
_Z13bnet_strerrorP5BSOCK
_Z13is_bnet_errorP5BSOCK
_Z14bnet_wait_dataP5BSOCKi
_Z15bnet_tls_clientP11TLS_ContextP5BSOCKP5alist
_Z15bnet_tls_serverP11TLS_ContextP5BSOCKP5alist
+_Z17bnet_host2ipaddrsPKciPS0_
+_Z17bnet_set_blockingP5BSOCK
_Z17bnet_sig_to_asciiP5BSOCK
_Z19bnet_wait_data_intrP5BSOCKi
_Z20bnet_set_buffer_sizeP5BSOCKji
-; _Z21bnet_despool_to_bsockP5BSOCKPFvlEl
+_Z20bnet_set_nonblockingP5BSOCK
+_Z21bnet_restore_blockingP5BSOCKi
_Z28bnet_suppress_error_messagesP5BSOCKb
_Z8bnet_sigP5BSOCKi
_Z9bnet_recvP5BSOCK
_Z9bnet_sendP5BSOCK
_Z9dup_bsockP5BSOCK
-
-; bnet_server.c:
+
+; bnet_server.o
_Z18bnet_thread_serverP5dlistiP9workq_tagPFPvS3_E
_Z23bnet_stop_thread_serverP10pthread_t_
-
-; bpipe.c:
+
+; bpipe.o
_Z11run_programPciS_
_Z23run_program_full_outputPciS_
-
-; breg.c:
-_Z12get_bregexpsPKc
-_Z19bregexp_build_wherePciS_S_S_
+
+; breg.o
+_Z11new_bregexpPKc
_Z12free_bregexpP7BREGEXP
+_Z12get_bregexpsPKc
_Z13free_bregexpsP5alist
-_Z11new_bregexpPKc
_Z14apply_bregexpsPKcP5alistPPc
+_Z19bregexp_build_wherePciS_S_S_
_Z21bregexp_escape_stringPcS_c
_Z28bregexp_get_build_where_sizePcS_S_
-
-; bregex.c:
+_ZN7BREGEXP10edit_substEPKcP12b_regmatch_t
+_ZN7BREGEXP12return_fnameEPKci
+_ZN7BREGEXP14extract_regexpEPKc
+_ZN7BREGEXP16compute_dest_lenEPKcP12b_regmatch_t
+_ZN7BREGEXP5debugEv
+_ZN7BREGEXP7replaceEPKc
+
+; bregex.o
+_Z24re_registers_to_regmatchP12re_registersP12b_regmatch_tj
+b_re_compile_fastmap
+b_re_compile_initialize
+b_re_compile_pattern
+b_re_match
+b_re_search
+b_re_set_syntax
b_regcomp
b_regerror
b_regexec
b_regfree
-
-; bsnprintf.c:
+
+; bsnprintf.o
_Z10bvsnprintfPciPKcS_
_Z9bsnprintfPciPKcz
-
-; bsock.c
+
+; bsock.o
+_Z9new_bsockv
+_ZN5BSOCK10free_bsockEv
+_ZN5BSOCK12set_blockingEv
+_ZN5BSOCK14wait_data_intrEi
+_ZN5BSOCK15set_buffer_sizeEji
+_ZN5BSOCK15set_nonblockingEv
+_ZN5BSOCK16restore_blockingEi
+_ZN5BSOCK4initEv
_ZN5BSOCK4recvEv
_ZN5BSOCK4sendEv
+_ZN5BSOCK5_openEP3JCRPKcPcS4_ixPi
_ZN5BSOCK5closeEv
_ZN5BSOCK5fsendEPKcz
_ZN5BSOCK6signalEi
-_ZN5BSOCK7destroyEv
+_ZN5BSOCK7connectEP3JCRixxPKcPcS4_ii
_ZN5BSOCK7despoolEPFvlEl
-
-; bsys.c:
+_ZN5BSOCK7destroyEv
+_ZN5BSOCK8fin_initEP3JCRiPKcS3_iP8sockaddr
+_ZN5BSOCK8get_peerEPci
+_ZN5BSOCK9bstrerrorEv
+_ZN5BSOCK9wait_dataEi
+
+; bsys.o
+_Z10b_strerroriPcj
_Z11bmicrosleepll
_Z15create_pid_filePcPKci
_Z15delete_pid_filePcPKci
_Z15escape_filenamePKc
_Z15read_state_filePcPKci
_Z16write_state_filePcPKci
+_Z20make_unique_filenamePPciS_
_Z2_pPP16pthread_mutex_t_
_Z2_vPP16pthread_mutex_t_
_Z4dropPcS_
_Z5bfreePv
_Z6bfgetsPciP6_iobuf
+_Z7bcallocjj
_Z7bstrcmpPKcS0_
_Z7cstrlenPKc
_Z8b_mallocPKcij
_Z8breallocPvj
_Z8bstrncatPcPKci
+_Z8bstrncatPcR8POOL_MEMi
_Z8bstrncpyPcPKci
_Z8bstrncpyPcR8POOL_MEMi
-
-; btime.c:
+
+; btime.o
_Z10bstrftimesPcix
+_Z11date_decodedPjPhS0_
+_Z11date_encodejhh
+_Z11time_decodedPhS_S_Pf
+_Z11time_encodehhhf
_Z12bstrftime_ncPcix
+_Z12bstrftime_nyPcix
_Z12str_to_utimePc
_Z13btime_to_unixx
_Z14btime_to_utimex
+_Z16date_time_decodeP9date_timePjPhS2_S2_S2_S2_Pf
+_Z16date_time_encodeP9date_timejhhhhhf
_Z16get_current_timeP9date_time
+_Z17date_time_compareP9date_timeS0_
_Z17get_current_btimev
+_Z6tm_womii
_Z6tm_woyl
_Z9bstrftimePcix
_Z9bstrutimePcix
_Z9tm_decodeP9date_timeP2tm
-
-; btimers.c:
+_Z9tm_encodeP9date_timeP2tm
+
+; btimers.o
_Z16stop_bsock_timerP10s_btimer_t
+_Z16stop_child_timerP10s_btimer_t
_Z17start_bsock_timerP5BSOCKj
+_Z17start_child_timerij
_Z17stop_thread_timerP10s_btimer_t
_Z18start_thread_timerP10pthread_t_j
-
-; cram-md5.c:
+
+; cram-md5.o
_Z16cram_md5_respondP5BSOCKPcPiS2_
_Z18cram_md5_challengeP5BSOCKPcii
-
-; crc32.c:
+
+; crc32.o
_Z6bcrc32Phi
-
-; crypto.c:
+
+; crypto.o
_Z11init_cryptov
+_Z13CryptoData_itv
+_Z13SignerInfo_itv
+_Z14CryptoData_newv
+_Z14SignerInfo_newv
_Z14cleanup_cryptov
+_Z14d2i_CryptoDataPP10CryptoDataPPKhl
+_Z14d2i_SignerInfoPP10SignerInfoPPKhl
+_Z14i2d_CryptoDataP10CryptoDataPPh
+_Z14i2d_SignerInfoP10SignerInfoPPh
+_Z15CryptoData_freeP10CryptoData
+_Z15SignerInfo_freeP10SignerInfo
_Z15crypto_sign_newP3JCR
_Z15crypto_strerror14crypto_error_t
+_Z16RecipientInfo_itv
+_Z16SignatureData_itv
_Z16crypto_sign_freeP9Signature
+_Z17RecipientInfo_newv
+_Z17SignatureData_newv
_Z17crypto_cipher_newP14Crypto_SessionbPj
_Z17crypto_digest_newP3JCR15crypto_digest_t
+_Z17d2i_RecipientInfoPP13RecipientInfoPPKhl
+_Z17d2i_SignatureDataPP13SignatureDataPPKhl
+_Z17i2d_RecipientInfoP13RecipientInfoPPh
+_Z17i2d_SignatureDataP13SignatureDataPPh
+_Z18RecipientInfo_freeP13RecipientInfo
+_Z18SignatureData_freeP13SignatureData
_Z18crypto_cipher_freeP14Cipher_Context
_Z18crypto_digest_freeP6Digest
_Z18crypto_digest_nameP6Digest
_Z23crypto_keypair_load_keyP12X509_KeypairPKcPFiPciPKvES5_
_Z24crypto_keypair_load_certP12X509_KeypairPKc
_Z25crypto_digest_stream_typei
-
-; daemon.c:
+_Z27crypto_default_pem_callbackPciPKv
+
+; daemon.o
_Z12daemon_startv
-
-; dlist.c:
+
+; dlist.o
_Z15new_dlistStringPKc
_Z15new_dlistStringPKci
+_ZN5dlist12insert_afterEPvS0_
_ZN5dlist13binary_insertEPvPFiS0_S0_E
_ZN5dlist13binary_searchEPvPFiS0_S0_E
_ZN5dlist13insert_beforeEPvS0_
_ZN5dlist6removeEPv
_ZN5dlist7destroyEv
_ZN5dlist7prependEPv
-
-; edit.c:
+
+; edit.o
_Z10add_commasPcS_
_Z10edit_int64xPc
_Z10edit_utimexPci
_Z17duration_to_utimePcPx
_Z23edit_uint64_with_commasyPc
_Z23edit_uint64_with_suffixyPc
-
-; enh_fnmatch.c:
-
-; fnmatch.c:
+
+; fnmatch.o
fnmatch
-
-; hmac.c:
-
-; htable.c:
-
-; idcache.c:
+
+; idcache.o
+_Z18free_getuser_cachev
+_Z19free_getgroup_cachev
_Z7getuserjPci
_Z8getgroupjPci
-
-; jcr.c:
+
+; jcr.o
_Z10b_free_jcrPKciP3JCR
_Z11unlock_jobsv
_Z12jcr_walk_endP3JCR
_Z18get_jcr_by_sessionjj
_Z18init_jcr_subsystemv
_Z18set_jcr_job_statusP3JCRi
+_Z19init_last_jobs_listv
_Z19lock_last_jobs_listv
+_Z19read_last_jobs_listiy
_Z19term_last_jobs_listv
_Z20get_jcr_by_full_namePc
+_Z20write_last_jobs_listiy
_Z21unlock_last_jobs_listv
_Z23get_jcr_by_partial_namePc
_Z7new_jcriPFvP3JCRE
_Z9lock_jobsv
-
-; lex.c:
+timeout_handler
+
+; lex.o
_Z11scan_to_eolP13s_lex_context
+_Z12lex_get_charP13s_lex_context
_Z13lex_get_tokenP13s_lex_contexti
_Z13lex_open_fileP13s_lex_contextPKcPFvS2_iS0_S2_zE
_Z14lex_close_fileP13s_lex_context
_Z14lex_tok_to_stri
+_Z14lex_unget_charP13s_lex_context
+_Z20scan_to_next_not_eolP13s_lex_context
_Z29lex_set_default_error_handlerP13s_lex_context
_Z32lex_set_error_handler_error_typeP13s_lex_contexti
-
-; md5.c:
+
+; md5.o
+_Z12MD5TransformPjS_
_Z7MD5InitP10MD5Context
_Z8MD5FinalPhP10MD5Context
_Z9MD5UpdateP10MD5ContextPhj
-
-; mem_pool.c:
+
+; mem_pool.o
_Z13sm_get_memoryPKcii
_Z17close_memory_poolv
_Z18sm_get_pool_memoryPKcii
_Z22sm_realloc_pool_memoryPKciPci
_Z23print_memory_pool_statsv
_Z25sm_check_pool_memory_sizePKciPci
+_Z27garbage_collect_memory_poolv
_Z9pm_strcatPPcPKc
_Z9pm_strcatR8POOL_MEMPKc
_Z9pm_strcatRPcPKc
+_Z9pm_strcatRPcR8POOL_MEM
_Z9pm_strcpyPPcPKc
_Z9pm_strcpyR8POOL_MEMPKc
_Z9pm_strcpyRPcPKc
_Z9pm_strcpyRPcR8POOL_MEM
-
-; message.c:
+_ZN8POOL_MEM10realloc_pmEi
+_ZN8POOL_MEM6strcatEPKc
+_ZN8POOL_MEM6strcpyEPKc
+_ZN8POOL_MEM8max_sizeEv
+
+; message.o
_Z10my_name_isiPPcPKc
+_Z11get_db_typev
+_Z11set_db_typePKc
_Z12add_msg_destP4MSGSiiPcS1_
_Z12rem_msg_destP4MSGSiiPc
_Z13free_msgs_resP4MSGS
_Z16dequeue_messagesP3JCR
_Z16dispatch_messageP3JCRilPc
_Z16init_console_msgPKc
+_Z25register_message_callbackPFviPcE
_Z4JmsgP3JCRilPKcz
_Z4MmsgPPcPKcz
_Z4MmsgR8POOL_MEMPKcz
_Z5m_msgPKciRPcS0_z
_Z5p_msgPKciiS0_z
_Z5q_msgPKciP3JCRilS0_z
+_Z5t_msgPKciiS0_z
_Z8init_msgP3JCRP4MSGS
_Z8term_msgv
_Z9close_msgP3JCR
_Z9get_tracev
_Z9set_tracei
-_Z11set_db_typePKc
-
-; openssl.c:
-
-; pythonlib.c:
+
+; pythonlib.o
_Z21generate_daemon_eventP3JCRPKc
_Z23init_python_interpreterPKcS0_S0_
_Z23term_python_interpreterv
-
-; queue.c:
+
+; queue.o
_Z5qnextP7b_queueS0_
_Z7qdchainP7b_queue
_Z7qinsertP7b_queueS0_
-
-; rblist.c:
+_Z7qremoveP7b_queue
+
+; rblist.o
+_ZN6rblist11left_rotateEPv
+_ZN6rblist12right_rotateEPv
+_ZN6rblist3anyEPv
_ZN6rblist4nextEPv
_ZN6rblist5firstEv
_ZN6rblist6insertEPvPFiS0_S0_E
_ZN6rblist6removeEPv
_ZN6rblist6searchEPvPFiS0_S0_E
_ZN6rblist7destroyEv
-
-; runscript.c:
+
+; runscript.o
_Z11run_scriptsP3JCRP5alistPKc
_Z13new_runscriptv
_Z14copy_runscriptP9RUNSCRIPT
_ZN9RUNSCRIPT13reset_defaultEb
_ZN9RUNSCRIPT3runEP3JCRPKc
_ZN9RUNSCRIPT5debugEv
-
-; rwlock.c:
+_ZN9RUNSCRIPT8is_localEv
+
+; rwlock.o
_Z11rwl_destroyP12s_rwlock_tag
+_Z12rwl_readlockP12s_rwlock_tag
_Z13rwl_writelockP12s_rwlock_tag
+_Z14rwl_readunlockP12s_rwlock_tag
+_Z15rwl_readtrylockP12s_rwlock_tag
_Z15rwl_writeunlockP12s_rwlock_tag
+_Z16rwl_writetrylockP12s_rwlock_tag
_Z8rwl_initP12s_rwlock_tag
-
-; scan.c:
+
+; scan.o
_Z10parse_argsPcPS_PiS0_S0_i
-_Z15parse_args_onlyPcPS_PiS0_S0_i
_Z11skip_spacesPPc
_Z14skip_nonspacesPPc
+_Z15parse_args_onlyPcPS_PiS0_S0_i
_Z19strip_leading_spacePc
_Z19strip_trailing_junkPc
_Z22strip_trailing_newlinePc
+_Z22strip_trailing_slashesPc
+_Z23split_path_and_filenamePKcPPcPiS2_S3_
_Z7bsscanfPKcS0_z
_Z7fstrschPKcS0_
-
-; semlock.c:
-
-; serial.c:
+_Z8next_argPPc
+
+; serial.o
_Z12serial_btimePPhx
+_Z12serial_int16PPhs
_Z12serial_int32PPhi
+_Z12serial_int64PPhx
_Z13serial_stringPPhPKc
+_Z13serial_uint16PPht
_Z13serial_uint32PPhj
_Z13serial_uint64PPhy
_Z14serial_float64PPhd
_Z14unserial_btimePPh
+_Z14unserial_int16PPh
_Z14unserial_int32PPh
_Z15unserial_stringPPhPc
+_Z15unserial_uint16PPh
_Z15unserial_uint32PPh
_Z15unserial_uint64PPh
_Z16unserial_float64PPh
-
-; sha1.c:
-
-; signal.c:
-
-; smartall.c:
+
+; smartall.o
_Z10sm_reallocPKciPvj
+_Z12actuallyfreePv
+_Z12sm_check_rtnPKcib
+_Z12sm_new_ownerPKciPc
+_Z14actuallycallocjj
+_Z14actuallymallocj
+_Z15actuallyreallocPvj
_Z7sm_dumpb
_Z7sm_freePKciPv
_Z8sm_checkPKcib
_Z9sm_callocPKcijj
_Z9sm_mallocPKcij
-
-; tls.c:
+_Z9sm_staticb
+
+; tls.o
_Z15new_tls_contextPKcS0_S0_S0_PFiPciPKvES3_S0_b
+_Z15tls_bsock_readnP5BSOCKPci
_Z16free_tls_contextP11TLS_Context
-
-; tree.c:
+_Z16tls_bsock_acceptP5BSOCK
+_Z16tls_bsock_writenP5BSOCKPci
+_Z17tls_bsock_connectP5BSOCK
+_Z18new_tls_connectionP11TLS_Contexti
+_Z18tls_bsock_shutdownP5BSOCK
+_Z19free_tls_connectionP14TLS_Connection
+_Z25tls_postconnect_verify_cnP14TLS_ConnectionP5alist
+_Z27tls_postconnect_verify_hostP14TLS_ConnectionPKc
+
+; tree.o
+_Z11tree_relcwdPcP11s_tree_rootP11s_tree_node
_Z12tree_getpathP11s_tree_nodePci
+_Z14make_tree_pathPcP11s_tree_root
_Z16insert_tree_nodePcS_iP11s_tree_rootP11s_tree_node
_Z8new_treei
_Z8tree_cwdPcP11s_tree_rootP11s_tree_node
_Z9free_treeP11s_tree_root
-
-; util.c:
+
+; util.o
_Z11bash_spacesPc
_Z11bash_spacesR8POOL_MEM
_Z11encode_modetPc
_Z17job_status_to_stri
_Z18do_shell_expansionPci
_Z18jobstatus_to_asciiiPci
+_Z19last_path_separatorPKc
_Z21set_working_directoryPc
_Z5lcasePc
-
-; var.c:
+
+; var.o
_Z10var_configP6var_st12var_config_tz
_Z10var_createPP6var_st
_Z10var_expandP6var_stPKciPPcPii
+_Z10var_formatP6var_stPPciPKcz
_Z11var_destroyP6var_st
+_Z11var_formatvP6var_stPPciPKcS1_
_Z12var_strerrorP6var_st8var_rc_t
_Z12var_unescapeP6var_stPKciPcii
-
-; watchdog.c:
+
+; watchdog.o
_Z12new_watchdogv
_Z13stop_watchdogv
_Z14start_watchdogv
_Z17register_watchdogP12s_watchdog_t
-
-; workq.c:
+_Z19unregister_watchdogP12s_watchdog_t
+watchdog_thread
+
--- /dev/null
+#!/bin/sh
+#
+# Make the stupid bacula.def file so that we don't have to do it
+# manually
+#
+
+echo "LIBRARY bacula.dll"
+echo "EXPORTS"
+echo " "
+
+OBJS="compat.o print.o winapi.o attribs.o bfile.o create_file.o \
+ drivetype.o enable_priv.o find.o find_one.o fstype.o match.o \
+ address_conf.o alist.o attr.o base64.o berrno.o bget_msg.o \
+ bnet.o bnet_server.o bpipe.o breg.o bregex.o bsnprintf.o \
+ bsock.o bsys.o btime.o btimers.o cram-md5.o crc32.o crypto.o \
+ daemon.o dlist.o edit.o fnmatch.o idcache.o jcr.o lex.o md5.o \
+ mem_pool.o message.o pythonlib.o queue.o rblist.o runscript.o \
+ rwlock.o scan.o serial.o smartall.o tls.o tree.o util.o var.o \
+ watchdog.o"
+
+
+for i in ${OBJS}; do \
+ echo "; $i"; \
+ nm $i | grep "^[0-9a-f]* T _" | cut -c21-; \
+ echo " "; \
+done
General:
24May07
+kes Add code to tell the OS that we no longer need a cached
+ file that we were reading. In findlib/bfile.c. Also,
+ only cache files that we are reading.
+kes Tweak to bsmtp to eliminate compiler warnings on Win32.
+kes Implement script to automatically generate cats and dll .def
+ files for Win32 dll.
+kes Update README.mingw32 to include new .def file generation.
kes Correct typo in UTF-8 error message as reported by:
jhernandez <julianhernandez@gmail.com>
kes Add additional sm_check() code on debug level 1.