TURN module (rfc5766)

Permission

A single TURN permission entry associating a peer IP with a 5-minute expiry timer.

#include <icy/turn/permission.h>

struct Permission

Defined in src/turn/include/icy/turn/permission.h:37

A single TURN permission entry associating a peer IP with a 5-minute expiry timer. Per RFC 5766 section 8, permissions last exactly 300 seconds and must be refreshed via a new CreatePermission request before they expire.

Public Attributes

ReturnNameDescription
std::stringipIPv4 address string of the permitted peer.
KeykeyBinary IP key for allocation hot-path comparisons.
TimeouttimeoutCountdown timer; expires after PERMISSION_LIFETIME milliseconds.

ip

std::string ip

Defined in src/turn/include/icy/turn/permission.h:102

IPv4 address string of the permitted peer.


key

Key key

Type: Key

Defined in src/turn/include/icy/turn/permission.h:103

Binary IP key for allocation hot-path comparisons.


timeout

Timeout timeout

Type: Timeout

Defined in src/turn/include/icy/turn/permission.h:104

Countdown timer; expires after PERMISSION_LIFETIME milliseconds.

Public Methods

ReturnNameDescription
Permission inlineConstructs a permission for ip and immediately starts the expiry timer.
Permission inlineConstructs a permission from a binary socket address.
voidrefresh inlineResets the expiry timer, extending the permission lifetime by another 300 seconds.
booloperator== const inlineEquality comparison against an IP string.
boolmatches const inlineBinary IP comparison used on the TURN relay hot path.

Permission

inline

inline Permission(const std::string & ip)

Defined in src/turn/include/icy/turn/permission.h:108

Constructs a permission for ip and immediately starts the expiry timer.

Parameters

ParameterTypeDescription
ipconst std::string &IPv4 address string of the permitted peer.

Permission

inline

inline Permission(const net::Address & address)

Defined in src/turn/include/icy/turn/permission.h:118

Constructs a permission from a binary socket address.

Parameters

ParameterTypeDescription
addressconst net::Address &Peer IP address; port is ignored.

refresh

inline

inline void refresh()

Defined in src/turn/include/icy/turn/permission.h:127

Resets the expiry timer, extending the permission lifetime by another 300 seconds.


operator==

const inline

inline bool operator==(std::string_view r) const

Defined in src/turn/include/icy/turn/permission.h:132

Equality comparison against an IP string.

Returns

true if this permission's IP matches r.

Parameters

ParameterTypeDescription
rstd::string_viewIPv4 address string to compare against.

matches

const inline

inline bool matches(const net::Address & address) const

Defined in src/turn/include/icy/turn/permission.h:135

Binary IP comparison used on the TURN relay hot path.