Shell (ruantiblock):
- fix broken 'ip' command check — was 'export IP_CMD=ip' followed
by checking $? (always 0 from export); now uses 'which ip' like
other utility checks
- fix LOGGER_CMD check — export swallowed which exit code; split
assignment and export
- fix 'return 1' outside function in main case block — changed to
'exit 1'
- fix '==' to '=' in test expressions for POSIX sh compliance
(script uses #!/bin/sh)
- fix typo 'Искоючить' -> 'Исключить' in comment
- remove unused variable _dnsmasq_data_file in AddUserEntries()
Lua (ruab_parser.lua):
- fix global variable leak: 'val' in Config:load_environ_config()
was not declared local, polluting global scope
- fix global function leak: 'load_file' inside
Config:load_filter_files() was not declared local
- fix premature return in Summarize.remove_items() — only first
matching item was deleted from range, rest were skipped
Python (ruab_parser.py):
- fix AttributeError crash in Summarize._group_ip_ranges() —
raw_list is a dict but .remove() was called (dict method);
changed to .pop() with default None