orber_acl(3)
β¨ orber_acl β the manual page bestie π
ok so you're looking at orber_acl(3), which lives in the Erlang Module Definition corner of the manual world. it's the Orber ACL operations module and honestly? it's giving gatekeeper energy but in a helpful way π
πΈ NAME πΈ
orber_acl β Orber ACL operations, no cap π
π¦ DESCRIPTION π¦
ok so listen, bestie. this module is full of functions made for analyzing Access Control List (ACL) filters. and these filters? they use an extended format of Classless Inter Domain Routing (CIDR). iykyk π§
so like, for example:
"123.123.123.10"β this one limits the connection to that particular host, periodt. one host only, that's it, that's the vibe."123.123.123.10/17"β this one allows connections to or from any host equal to the 17 most significant bits. so like, a whole lil neighborhood of hosts ποΈ
and it gets better β Orber also lets you specify a certain port or a port range, like:
"123.123.123.10/17#4001"β single port, iconic"123.123.123.10/17#4001/5001"β port range, even more iconic β¨
and bestie, IPv4 or none compressed IPv6 strings are accepted π so bring whichever, it's fine.
π EXPORTS π
π« match(IP, Direction) -> boolean()
π« match(IP, Direction, GetInfo) -> Reply
Types:
IP = tuple() | [integer()]
Direction = tcp_in | ssl_in | tcp_out | ssl_out
GetInfo = boolean()
Reply = boolean() | {boolean(), [Interface], PortInfo}
Interface = string()
PortInfo = integer() | {integer(), integer()}
ok so here's the tea β if GetInfo isn't supplied, or it's set to false, this operation returns a boolean that tells you whether the IPv4 or IPv6 address would pass the ACL filter or not. and that filter is defined by the iiop_acl configuration parameter, in case you were wondering π
but when GetInfo is set to true? you get a tuple that, besides that same boolean telling you if access was granted, also includes the defined interfaces and port(s). more info, more slay π«Ά
β οΈ heads up bestie: this operation requires that Orber is running. and you can use it on a live node to determine if Orber has been properly configured. very much main character energy for debugging π
π« verify(IP, Filter, Family) -> Reply
Types:
IP = string()
Filter = string()
Family = inet | inet6
Reply = true | {false, From, To} | {error, string()}
From = string()
To = string()
this one returns true if the IPv4 or IPv6 address would pass the supplied ACL. ate π
but if that's not the case? it gives you a tuple containing the accepted range instead, so you're not left hanging.
π¨ ok but fr fr β this operation should only be used for test purposes. don't go building your whole production situation on it, bestie.
π« range(Filter, Family) -> Reply
Types:
Filter = string()
Family = inet | inet6
Reply = {ok, From, To} | {error, string()}
From = string()
To = string()
returns the range of accepted IP addresses based on the supplied filter. cute, simple, useful π
π¨ same energy as above: this operation should only be used for test purposes. not me stressing this twice but here we are π
that's the whole page, babe. every flag, every type, every warning, all of it β nothing skipped, nothing faked, we keep the facts and add the flavor π β¨
this lil masterpiece comes to you from Ericsson AB, rocking orber version 5.2.2, filed under orber_acl(3) β k bye, go configure something responsibly ππ¦π
π¦ where this page comes from
- fedora 43: erlang-orber 1:5.2.2-1.fc43 Β· Apache-2.0
- fedora 44: erlang-orber 1:5.2.2-1.fc44 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms