ARPA2 Common Libraries  2.6.2
Modules | Typedefs
Group Rules for ARPA2 Identities
Collaboration diagram for Group Rules for ARPA2 Identities:

Modules

 Group Types
 

Typedefs

typedef bool group_iterate_upcall(void *updata, group_marks marks, const a2act_t *sender, const a2act_t *recipient, const char *delivery, unsigned deliverylen)
 Callback Function for Group Processing. More...
 

Detailed Description

Our blog introduces Groups as a form of Identity and discusses backgrounds in the Identity series.

We define an efficient mechanism to iterate over members, and alter addresses while traffic passes through. These addresses <group>+<member><domain> can protect the privacy of group members while they are communicating in the group. The privacy does not reach a level where administrators could not trace abuse, however.

This is a minimal abstraction over a framework for Policy Rules that also serves Access Control. It uses the <domain> as Access Domain, has a registered Access Type 5a1a2596-1763-36bf-a7b2-814ad98083ca and sets the Access Name to <group>. Triggers are used to provide ^<member><address> where the <address> is the delivery address for the member, as well as the address they can use to contact the group. The Policy Rules also define flags with the properties for the triggers that follow; members may not all read all traffic and some may have special functions.

Typedef Documentation

◆ group_iterate_upcall

typedef bool group_iterate_upcall(void *updata, group_marks marks, const a2act_t *sender, const a2act_t *recipient, const char *delivery, unsigned deliverylen)

Callback Function for Group Processing.

This callback function prototype is used in group_iterate() and will be called for all group members that look like they should receive delivery of the intended communication. It is up to the callback implementation to decide if a fork of the communication is actually created for the recipient.

The sender is described with its Group Identity as supplied in the original call. The recipient is described by their group member name (the alias part after '+') and its coupled delivery address is also given.

Parameters
[in,out]updatais a data structure into which state can accumulate between callbacks.
[in]marksholds the GROUP_xxx marks for the current recipient and delivery addresses.
[in]senderis the sender address. This is a group member address, which usually differs from the Remote Identity that was used in the Communication Access lookup.
[in]recipientis the recipient address. This is a group member address, which usually differs from the delivery address.
[in]deliveryis the delivery address for the recipient. It cannot be assumed to be terminated with a NUL character.
[in]deliverylenis the length of the delivery string.
Returns
For future compatibility, this function must always return true.