if NOD_ENABLED
AM_CXXFLAGS += \
- -DNODCACHEDIR=\"$(nodcachedir)\"
+ -DNODCACHEDIRNOD=\"$(nodcachedir)/nod\" -DNODCACHEDIRUDR=\"$(nodcachedir)/udr\"
endif
if FSTRM
"""Return a quoted string"""
return '"' + arg + '"'
+def isEnvVar(name):
+ return name in ('SYSCONFDIR', 'NODCACHEDIRNOD', 'NODCACHEDIRUDR')
+
def gen_cxx_defineoldsettings(file, entries):
"""Generate C++ code to declare old-style settings"""
file.write('void pdns::settings::rec::defineOldStyleSettings()\n{\n')
elif entry['type'] == LType.Command:
file.write(f" ::arg().setCmd({oldname}, {helptxt});\n")
else:
- cxxdef = 'SYSCONFDIR' if entry['default'] == 'SYSCONFDIR' else quote(entry['default'])
+ cxxdef = entry['default'] if isEnvVar(entry['default']) else quote(entry['default'])
file.write(f" ::arg().set({oldname}, {helptxt}) = {cxxdef};\n")
file.write('}\n\n')
return gen_rust_authzonevec_default_functions(name)
ret = f'// DEFAULT HANDLING for {name}\n'
ret += f'fn default_value_{name}() -> {rust_type} {{\n'
- rustdef = 'env!("SYSCONFDIR")' if entry['default'] == 'SYSCONFDIR' else quote(entry['default'])
+ defvalue = entry['default']
+ rustdef = f'env!("{defvalue}")' if isEnvVar(defvalue) else quote(defvalue)
ret += f" String::from({rustdef})\n"
ret += '}\n'
if rust_type == 'String':
# should actually end up in a target specific dir...
libsettings.a lib.rs.h: src/bridge.rs src/lib.rs src/helpers.rs Cargo.toml Cargo.lock build.rs
- SYSCONFDIR=$(sysconfdir) $(CARGO) build --release $(RUST_TARGET)
+ SYSCONFDIR=$(sysconfdir) NODCACHEDIRNOD=$(localstatedir)/nod NODCACHEDIRUDR=$(localstatedir)/udr $(CARGO) build --release $(RUST_TARGET)
cp target/$(RUSTC_TARGET_ARCH)/release/libsettings.a libsettings.a
cp target/$(RUSTC_TARGET_ARCH)/cxxbridge/settings/src/lib.rs.h lib.rs.h
cp target/$(RUSTC_TARGET_ARCH)/cxxbridge/rust/cxx.h cxx.h
'section' : 'nod',
'oldname' : 'new-domain-history-dir',
'type' : LType.String,
- 'default' : '/usr/local/var/lib/pdns-recursor/nod',
+ 'default' : 'NODCACHEDIRNOD',
'help' : 'Persist new domain tracking data here to persist between restarts',
'doc' : '''
This setting controls which directory is used to store the on-disk
The default depends on ``LOCALSTATEDIR`` or the ``--with-socketdir`` setting when building (usually ``/var/run`` or ``/run``).
When using :ref:`setting-chroot` the default becomes ``/``.
+Defaults to the ``RUNTIME_DIRECTORY`` environment variable when that variable has a value (e.g. under systemd).
''',
},
{
'name' : 'unique_response_history_dir',
'section' : 'nod',
'type' : LType.String,
- 'default' : '/usr/local/var/lib/pdns-recursor/udr',
+ 'default' : 'NODCACHEDIRUDR',
'help' : 'Persist unique response tracking data here to persist between restarts',
'doc' : '''
This setting controls which directory is used to store the on-disk