Compile the crypto, config, DNS, ACL and plugin modules as C++

Rename netutils, jconf, stream, aead, aead2022, aead2022_udp, crypto,
acl, plugin, plugin_disabled and resolv from .c to .cpp without changing
their contents, and update source lists, snippet references, test
comments and debian/copyright.

The Doxygen source list and scripts/check_cli_docs.py now accept either
extension for each module, so the remaining programs can move one at a
time. The new .cpp files are added to the no-heap ratchet baseline.
This commit is contained in:
Max Lv
2026-10-14 22:51:16 +08:00
parent 3ae698f5be
commit 349d895fd2
24 changed files with 69 additions and 48 deletions
+10 -2
View File
@@ -98,13 +98,21 @@ def documented_options(source_name, sources):
return result
def module_source(sources, module):
"""Source file name for a program module; modules move from .c to .cpp."""
for suffix in ('.c', '.cpp'):
if module + suffix in sources:
return module + suffix
raise ValueError(f"No source file for module {module}")
def check(root=ROOT, rendered=None):
sources = {path.name: path.read_text(encoding='utf-8')
for path in (root / 'src').glob('*.c')}
for pattern in ('*.c', '*.cpp') for path in (root / 'src').glob(pattern)}
sources['ss-nat'] = (root / 'src/ss-nat').read_text(encoding='utf-8')
for module in PROGRAMS:
program = 'ss-' + module
filename = 'ss-nat' if module == 'nat' else module + '.c'
filename = 'ss-nat' if module == 'nat' else module_source(sources, module)
declared = options(sources[filename], shell=module == 'nat')
documented = documented_options(filename, sources)
missing = declared.keys() - documented.keys()