mod_security(3)
π mod_security β the manual page, but make it make sense π
okay bestie, welcome to the mod_security page β that's section 3 of the Erlang manual, the module-definition corner of the library. Sit down, grab a strawberry drink π, and let's get into it.
β¨ NAME β¨
mod_security β Security Audit and Trailing Functionality π
πΈ DESCRIPTION πΈ
ngl there is literally no description text here, the original page just goes straight into the functions. iconic of it, honestly. so let's go. π¦
π FUNCTIONS π
block_user(User, Address, Port, Dir, Seconds) -> true | {error, Reason}β the "you are SO blocked rn" function π«
block_user(User, Address, Port, Dir, Seconds) ->
true | {error, Reason}
when
User :: string(),
Port :: inet:port_number(),
Address ::
inet:ip4_address() |
inet:ip6_address() |
string() |
undefined,
Dir :: string(),
Seconds :: non_neg_integer() | infinity,
Reason :: no_such_directory.
block_user/4 and block_user/5 each blocks the user User from directory Dir for a specified amount of time. like, a timeout, but for a person. π
list_auth_users(Address, Port, Dir) -> Users | []β "who's actually logged in bestie" π
list_auth_users(Address, Port, Dir) -> Users | []
when
Port :: inet:port_number(),
Address ::
inet:ip4_address() |
inet:ip6_address() |
string() |
undefined,
Dir :: string(),
Users :: [string()].
list_auth_users/1, list_auth_users/2, and list_auth_users/3 each returns a list of users that are currently authenticated. heads up tho π β these authentications are only stored for SecurityAuthTimeout seconds, and then they get discarded. gone. deleted. no trace. β¨
list_blocked_users(Address, Port, Dir) -> Users | []β the block list, the naughty list if you will π
list_blocked_users(Address, Port, Dir) -> Users | []
when
Port :: integer(),
Address ::
inet:ip4_address() |
inet:ip6_address() |
string() |
undefined,
Dir :: string(),
Users ::
[{blocked_user,
term(),
term(),
term(),
term()}].
list_blocked_users/1, list_blocked_users/2, and list_blocked_users/3 each returns a list of users that are currently blocked from access. main character energy: denied. π«β¨
unblock_user(User, Address, Port, Dir) -> true | {error, Reason}β the redemption arc ποΈ
unblock_user(User, Address, Port, Dir) -> true | {error, Reason}
when
User :: string(),
Port :: integer(),
Address ::
inet:ip4_address() |
inet:ip6_address() |
string() |
undefined,
Dir :: string(),
Reason :: term().
unblock_user/2, unblock_user/3, and unblock_user/4 each removes the user User from the list of blocked users for Port (and Dir). forgive and forget fr fr π«Ά
π CALLBACKS π
event(What, Address, Port, Dir, Data)
event/4 or event/5 is called whenever an event occurs in the mod_security Erlang web server API module. quick vibe check: event/4 gets called if Address is undefined, otherwise it's event/5. π§
the argument What specifies the type of event that has occurred, and it's one of these:
auth_failβ a failed user authentication. we've all been there πuser_blockβ a user is being blocked from access. πuser_unblockβ a user is being removed from the block list. π¦
NOTE: the eventuser_unblockis not triggered when a user is removed from the block list explicitly using theunblock_userfunction. yeah, sneaky. don't say I didn't warn you π
and that's the whole page, bestie, no skips, no skimming π this one comes to you courtesy of Ericsson AB, from inets 9.7.2, and it's the mod_security(3) page from the Erlang manual β so you know it's the real deal. periodt. πβ¨
π¦ where this page comes from
- ubuntu stonking: erlang-doc 1:29.0.6+dfsg-1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms