Justify the state test by what peers write, not by what this library happens to write
This commit is contained in:
@@ -296,8 +296,9 @@ Grouped by what each one constrains.
|
|||||||
library cannot read with no `messageDlr` at all — goal 2 wants that reported as undetermined, not
|
library cannot read with no `messageDlr` at all — goal 2 wants that reported as undetermined, not
|
||||||
withheld. Both spellings resolve into `Dlr.intermediate` at the boundary rather than being read a
|
withheld. Both spellings resolve into `Dlr.intermediate` at the boundary rather than being read a
|
||||||
second time in `DlrMerger`, so the library cannot answer the application one way and conclude the
|
second time in `DlrMerger`, so the library cannot answer the application one way and conclude the
|
||||||
other. `sendDlr('ENROUTE')` writes 0x04, so the state test is what the marker test cannot replace.
|
other. Not every peer marks a transient report 0x20 — an ordinary receipt carrying `stat:ENROUTE`
|
||||||
`message_state` 0 is 5.0's `SCHEDULED` and undefined in 3.4; a peer that writes it is read as
|
is common — so the state test is what the marker test cannot replace. `message_state` 0 is 5.0's
|
||||||
|
`SCHEDULED` and undefined in 3.4; a peer that writes it is read as
|
||||||
transient rather than as saying nothing, maintainer's call, 2026-09-03, since the codec refuses a
|
transient rather than as saying nothing, maintainer's call, 2026-09-03, since the codec refuses a
|
||||||
zero-length integer TLV and so an absent one cannot land there.
|
zero-length integer TLV and so an absent one cannot land there.
|
||||||
|
|
||||||
|
|||||||
@@ -132,6 +132,13 @@ session message is a change to every call site.
|
|||||||
and applies it to the other is wrong. A budget type both take would close it. Raised by review,
|
and applies it to the other is wrong. A budget type both take would close it. Raised by review,
|
||||||
2026-09-01.
|
2026-09-01.
|
||||||
|
|
||||||
|
- [ ] **Write a transient state as an intermediate delivery notification.** `sendDlr()` marks every
|
||||||
|
receipt `esm_class` 0x04, so `sendDlr('ENROUTE')` announces a non-final state with the marker
|
||||||
|
SMPP 3.4 Appendix B reserves for the final one — the two disagreeing spellings of finality the
|
||||||
|
reading side was taught to reconcile on 2026-09-03. Decided the same day: fix it, off
|
||||||
|
`transientStates` in `dlr.ts` so the writer and the reader cannot drift, in a PR of its own.
|
||||||
|
Costs a bullet in README's "Behaviour that changed on the wire".
|
||||||
|
|
||||||
- [ ] **`once()` is copied into four test files, and two copies never give up.**
|
- [ ] **`once()` is copied into four test files, and two copies never give up.**
|
||||||
`session-extras.test.ts` and `readme.test.ts` reject after 5000 ms; `session.test.ts` and
|
`session-extras.test.ts` and `readme.test.ts` reject after 5000 ms; `session.test.ts` and
|
||||||
`tls.test.ts` wait forever, so an event that never fires still hangs the run the way an
|
`tls.test.ts` wait forever, so an event that never fires still hangs the run the way an
|
||||||
|
|||||||
Reference in New Issue
Block a user