View Issue Details

IDProjectCategoryView StatusLast Update
0000164bareos-coreGeneralpublic2015-03-25 19:19
Reportermvwieringen Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
PlatformOpenIndianaOSOpenIndianaOS Versionb151a
Product Version13.2.0 
Fixed in Version13.4.0 
Summary0000164: Remove MAXSTRING variable
DescriptionFix long standing TODO to remove the MAXSTRING definition. Use POOLMEM
and POOL_MEM to replace the fixed sized buffers.
TagsNo tags attached.

Relationships

child of 0000202 closed Config engine redesign 

Activities

maik

maik

2013-07-05 16:40

administrator   ~0000503

Implemented but will be published together with general config rewrite patch
mvwieringen

mvwieringen

2013-09-30 19:36

developer   ~0000680

Fix committed to bareos master branch with changesetid 1164.
mvwieringen

mvwieringen

2015-03-25 16:51

developer   ~0001474

Fix committed to bareos2015 bareos-14.2 branch with changesetid 4856.
joergs

joergs

2015-03-25 19:19

developer   ~0001628

Due to the reimport of the Github repository to bugs.bareos.org, the status of some tickets have been changed. These tickets will be closed again.
Sorry for the noise.

Related Changesets

bareos: master 12a0fdd0

2013-09-27 18:00

pstorz


Committer: mvwieringen

Ported: N/A

Details Diff
Config engine redesign Phase 1

This whole wad is the first phase of a bigger full overhaul of the config
engine. The following is in here:

1)
Instead of using function pointers for storing the config parser function
to call use integer types which are translated at runtime to the correct
function to call. This should work around hardening being performed on
shared libraries on some Linux platforms. On those platforms the actual
comparing of the function pointers fail, using integers for the different
data types makes it also possible to use an elegant switch to jump to the
correct parsing function instead of using an endless set of ifs needed when
comparing memory addresses of functions.

An extra side effect of not using function pointers is that the store functions
don't need to be global so the parse_conf.c in the shared library only exports
10 instead of 32 symbols and also the daemon specific store function can be
local only functions. The only thing needed is a callback to a dispatch function
in the daemon when it uses non standard config items which are not of a generic
type (e.g. not bool, integer etc but things like protocol etc.) which leads to a
very small extra payload which is probably not even measurable.

2)
Bring config engine to 2013 and don't polute namespace.

Implement a TODO from June 2008 and get ride of a slack of global
variables used by the config engine. The code seems to be have been
refactored in 2008 to access most configfile parsing via the CONFIG
class and it already has most of the needed structures which also were
kept as global variables. From now on the config engine is accessed via
the CONFIG class and only res_all is left as global variable. As a side
effect the config CLASS is now available as my_config and is a global
variable.

Global variable introduced:

- CLASS CONFIG *my_config (Global configuration)

Global variables removed:

- res_all_size
- r_first
- r_last
- resources
- res_head

It should be possible also to get ride of res_all but that needs some
more testing. And is currently not very high on our urgency map.

3)
Fix long standing TODO to remove the MAXSTRING definition.
Use POOLMEM and POOL_MEM to replace the fixed sized buffers.

4)
First basic part of printing config information out from the internal
tables. We will enhance this in the second phase to be more generic
and to allow it to write out the config maybe in different formats.
(JSON/XML comes to mind).

Fixes 0000059: bareos failed to start when linked with hardening linker flags LDFLAGS
Fixes 0000164: Remove MAXSTRING variable
Fixes 0000202: Config engine redesign
Affected Issues
0000059, 0000164, 0000202
mod - autoconf/configure.in 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
add - 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/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
add - 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-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/dir_cmd.c Diff File
mod - src/stored/ndmp_tape.c Diff File
mod - src/stored/reserve.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

bareos2015: bareos-14.2 9fb8fc3c

2014-04-05 12:10

mvwieringen

Ported: N/A

Details Diff
Remove MAXSTRING variable

Fix long standing TODO to remove the MAXSTRING definition.
Use POOLMEM and POOL_MEM to replace the fixed sized buffers.

Fixes 0000164: Remove MAXSTRING variable
Affected Issues
0000164
mod - autoconf/configure.in Diff File
mod - src/dird/expand.c Diff File
mod - src/dird/fd_cmds.c Diff File
mod - src/dird/ndmp_dma.c Diff File
mod - src/dird/newvol.c Diff File
mod - src/dird/ua_select.c Diff File
mod - src/dird/verify.c Diff File
mod - src/filed/backup.c Diff File
mod - src/filed/verify.c Diff File
mod - src/findlib/xattr.c Diff File
mod - src/include/baconfig.h Diff File
mod - src/lib/cram-md5.c Diff File
mod - src/lib/ini.c 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/runscript.c Diff File
mod - src/lib/util.c Diff File
mod - src/qt-console/restore/restore.cpp Diff File
mod - src/stored/acquire.c Diff File
mod - src/stored/ndmp_tape.c Diff File

Issue History

Date Modified Username Field Change
2013-04-28 11:42 mvwieringen New Issue
2013-04-28 15:43 mvwieringen Assigned To => mvwieringen
2013-04-28 15:43 mvwieringen Status new => assigned
2013-04-28 15:43 mvwieringen Description Updated
2013-04-30 12:18 mvwieringen Status assigned => acknowledged
2013-05-09 10:17 mvwieringen Status acknowledged => confirmed
2013-05-09 10:17 mvwieringen Assigned To mvwieringen =>
2013-06-26 22:37 mvwieringen Assigned To => mvwieringen
2013-06-26 22:37 mvwieringen Status confirmed => assigned
2013-07-05 16:40 maik Note Added: 0000503
2013-07-05 16:40 maik Status assigned => resolved
2013-07-05 16:40 maik Fixed in Version => 13.4.0
2013-07-05 16:40 maik Resolution open => fixed
2013-07-05 16:51 maik Relationship added child of 0000202
2013-09-30 19:36 mvwieringen Changeset attached => bareos master 12a0fdd0
2013-09-30 19:36 mvwieringen Note Added: 0000680
2013-10-02 16:21 mvwieringen Status resolved => closed
2015-01-19 19:37 mvwieringen adm Assigned To mvwieringen =>
2015-03-25 16:51 mvwieringen Changeset attached => bareos2015 bareos-14.2 9fb8fc3c
2015-03-25 16:51 mvwieringen Note Added: 0001474
2015-03-25 16:51 mvwieringen Status closed => resolved
2015-03-25 19:19 joergs Note Added: 0001628
2015-03-25 19:19 joergs Status resolved => closed