Design Protocol for Sharing Forums
The protocol will look like a simpler version of the introduction protocol, with two parties per session, and messages for invite/accept/decline/abort. (if you share a forum with more than one contact we can just create one session per contact, there's no reason to tie them together.)
1: INVITATION - This is send by the sharer to one of her contacts. The content is a BDF list.
- (int) The type of the message, here 1
- (raw) SessionId chosen by the sharer
- (string) name of the forum
- (raw) salt to uniquely identify this forum
- (string) optional invitation message
2: ACCEPT RESPONSE - This should be sent by contacts that received a sharing invitation. The content is a BDF list with these elements:
- (int) The type of the message, here 2
- (raw) SessionId must match the SessionId of an unanswered invitation.
3: DECLINE RESPONSE - This should be sent by contacts that received a sharing invitation and do not want to add the forum. The content is a BDF list with these elements:
- (int) The type of the message, here 3
- (raw) SessionId must match the SessionId of an unanswered invitation.
4: LEAVE - This should be send by a contact that is unsubscribing from the forum. The content is a BDF list with two elements:
- (int) The type of the message, here 4
- (raw) SessionId must match the SessionId of a previous (un)answered invitation.
5: ABORT - This should be send by a contact that encountered an error, so that it can not complete the protocol. The content is a BDF list with two elements:
- (int) The type of the message, here 5
- (raw) SessionId must match the SessionId of an unanswered invitation.
A successful run of the protocol would look like this:
Sharer
Invitee
Arrows that have no label stand for 'all other actions'.
It should be documented in the wiki as well: https://code.briarproject.org/akwizgran/briar/wikis/ForumSharingClient
This is a subtask of Issue #322 (closed).