Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ When _has add to_ IS set: perform the steps below for each unique participant do
- **add-to set** (adding recipients):
- pid MUST also be set. Fail → respond code 1, close.
- Check if parent stored (§11):
- **Stored**: parent must not be terminal (code 1 if fail); check time travel (code 9 if fail).
- **Stored**: parent must not be terminal (code 1 if fail); check time travel (code 9 if fail); _add to from_ must be in the stored parent's _from_ or _to_ (code 1 if fail). The incoming header's _from_ and _to_ are not evidence of this: the sender wrote them.
- **Not stored**: if ≥ 1 recipient in _to_ or _add to_ belongs to Host B's domain, treat as full message delivery. Otherwise (Host B hosts only non-recipient participants) respond code 6 (parent not found), close.
8. Optionally issue a CHALLENGE on Connection 2 (see §10.5).

Expand Down
1 change: 1 addition & 0 deletions SPECIFICATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,7 @@ The following variables corresponding to host defined configuration are used in
3. If original message referred to by _pid_ is verified to be stored AND;
1. The stored message MUST NOT have the _terminal_ flag bit set; otherwise Host B MUST respond with REJECT code 1 (invalid) completing the message exchange.
2. The stored message for _pid_'s _time_ minus MAX_TIME_SKEW MUST be before _time_ on the incoming message header; otherwise Host B MUST respond with REJECT code 9 (time travel).
3. _add to from_ MUST be in the stored message's _from_ or _to_; otherwise Host B MUST respond with REJECT code 1 (invalid) completing the message exchange. The incoming header's own _from_ and _to_ (checked in step 1) are written by the sender, so only the stored message shows who its participants are; a recipient added by an earlier batch is a participant of that batch, not of the original.
4. Otherwise (original message has not been found, possible because Host B was never a participant of the message, or the message referenced by _pid_ is no longer held):
1. If at least one recipient in _to_ or _add to_ belongs to Host B, the message is treated as a full message delivery.
2. Otherwise Host B hosts only non-recipient participants of the message; Host B MUST respond REJECT code 6 (parent not found) then close the connection completing the message exchange.
Expand Down