Serval DNA Configuration

The Serval DNA configuration system was developed in early 2013, under the New America Foundation - Second Contractor Agreement “NAF2”, with the following characteristics:

  • built entirely using the GNU C macro preprocessor, no extra utilities or tools needed
  • all configuration options are defined in a single header file conf_schema.h
  • detailed diagnostic log messages cite filename and line number
  • warns of duplicate settings
  • warns of missing or inconsistent settings
  • warns of unsupported options (to catch misspellings and backward-incompatible schema upgrades)
  • new user commands for listing schema and examining run-time (loaded) configuration values
  • provision for future built-in comments to annotate schema (built-in help)
  • clearly defined semantics for run-time loading of defective configuration files
  • daemon automatically re-loads changed configuration file
  • coded with re-use in mind (eg, for limited, robust, textual data serialisation)

Login