orber_acl(3)

πŸ“¦
version 5.2.2 Β· 2 versions
, in fedora 43, fedora 44

✨ 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