dummy — an underworld of pure imagination

Remembers what it was told and does nothing else. No commands are run, no rules are created; bans live in the kur process's memory (and its clay tablet) and nowhere else. For testing Ereshkigal itself, protocol glue, and integrations without touching a firewall.

[kur.pretend]
backend = "dummy"

Requirements

None. No binaries, no privileges, no firewall. This is the one backend that works as an unprivileged user, provided run_base_dir and cache_base_dir point somewhere that user can write.

Settings

What each operation does

| operation | effect | |------------|----------------------------------------------------------------| | init | marks the backend inited; nothing else | | ban | adds the IP to the in-memory ban hash | | unban | removes the IP from the hash | | list | returns the hash keys | | check | always reports healthy — it cannot fail | | flush | clears the hash | | re_init | clears and re-marks inited | | teardown | clears the inited flag |

IPv6 addresses are lowercased on the way in, matching every other backend, so 2001:DB8::1 and 2001:db8::1 are one ban.

self_heal

Never fires. check cannot fail, so the probe before each ban/unban always passes and there is never a re_init — which is the point: a dummy kur costs the same one no-op probe a real one costs, without any of the healing being exercised. If you are testing self_heal itself, you want a real backend or the shell one.

Behavior worth knowing

Errors

Only the shared validation errors apply (bad port, bad protocol, bad prefix/name, options not a hash); the operations themselves cannot fail. See Net::Firewall::BlockerHelper::backends::dummy for the flag list.