# The filename the config was read from, if any.
filename = None
+def has(key):
+ """Return true if a configuration key exists."""
+ return key in _config
+
def set(key, value):
"""Set a configuration value."""
_config[key] = value
filename = DEFAULT_UPDATE_YAML_PATH
# Apply command line arguments to the config.
-
for arg in vars(args):
if arg == "local":
for local in args.local:
elif arg == "data_dir" and args.data_dir:
logger.debug("Setting data directory to %s", args.data_dir)
_config[DATA_DIRECTORY_KEY] = args.data_dir
- elif getattr(args, arg):
+ elif getattr(args, arg) is not None:
key = arg.replace("_", "-")
val = getattr(args, arg)
logger.debug("Setting configuration value %s -> %s", key, val)
# User-Agent.
suricata.update.net.set_user_agent_suricata_version(suricata_version.full)
- # Load custom user-agent-string.
- user_agent = config.get("user-agent")
- if user_agent:
- logger.info("Using user-agent: %s.", user_agent)
- suricata.update.net.set_custom_user_agent(user_agent)
-
if args.subcommand:
if hasattr(args, "func"):
return args.func()
def build_user_agent():
params = []
-
- if custom_user_agent is not None:
- return custom_user_agent
+ has_custom_user_agent = config.has("user-agent")
+ if has_custom_user_agent:
+ user_agent = config.get("user-agent")
+ if user_agent is None or len(user_agent.strip()) == 0:
+ logger.debug("Suppressing HTTP User-Agent header")
+ return None
+ return user_agent
uname_system = platform.uname()[0]