lilleman
880454b4f4
Split a retried drop out of close, and range-check the backoff
...
`close` fires only where nothing will bring the session back; a drop the
reconnect loop will retry is `disconnected`, pairing with `reconnected`.
`minDelay: 0` never doubles, so the backoff never started — both delays
are range-checked now, and only `false` spells reconnect off.
2026-08-31 21:11:19 +02:00
lilleman
18177053bc
Re-bind a dropped client link by default, and take false to turn it off
...
Surviving a drop is most of what the session layer is for, and behind an
opt-in an application that never read the options table got none of it.
`reconnect` still takes `{ minDelay, maxDelay }` to retune the backoff;
`false` is the one spelling for off.
2026-08-31 20:18:29 +02:00
lilleman
706b61d6ca
Leave an unknown notation alone and read a receipt's TLV as the id the submit answered
2026-08-30 23:01:39 +02:00
lilleman
696e018b77
Derive the notation names from one table and refuse an smsIdFormat that is not the pair
2026-08-30 22:45:02 +02:00
lilleman
8e5b9bb556
Read a peer's submit and receipt message ids into one notation before comparing them
2026-08-30 22:35:09 +02:00
lilleman
098891bb84
Cover the enquire_link we answer and stop draining a peer that answers nothing
2026-08-30 22:17:27 +02:00
lilleman
685495f534
Let a listener's teardown run last and answer the sends the tests left hanging
2026-08-30 22:03:23 +02:00
lilleman
427565ed3e
Tear down what a test opens in t.after so a failing assertion ends the run
2026-08-30 21:35:09 +02:00
lilleman
7e8af3c308
Tear down at once on a peer unbind and stop reporting a reconnect after close
2026-08-30 21:01:46 +02:00
lilleman
5c618e0061
Stop accepting before the drain and report the link that dropped during it
2026-08-30 20:27:38 +02:00
lilleman
bebd74b42b
Drain the requests already on the wire before close() and unbind() tear down
2026-08-30 20:08:36 +02:00
lilleman
c06eda4582
Pin the spent-base cap and state the boundary the merge rule covers
2026-08-30 11:39:09 +02:00
lilleman
5c797f5383
Forget the base closed longest ago rather than the one handed out again
2026-08-30 11:31:22 +02:00
lilleman
aa3cf41c7f
Merge a message id base once so a straggler cannot join a later report
2026-08-30 11:17:02 +02:00
lilleman
f4e55909a1
Keep the delivery-receipt merges across a reconnect instead of dropping them
2026-08-28 14:44:32 +02:00
lilleman
30e0cfd38a
Record what re-declaring the listener methods costs a subclass
2026-08-27 23:15:46 +02:00
lilleman
344249b080
Accept an async listener in the types and normalise any rejection reason
2026-08-27 23:07:48 +02:00
lilleman
a5fe43d7a9
Normalise a listener's rejection reason before routing it to sessionError
2026-08-27 22:41:26 +02:00
lilleman
0e8f298957
Route a rejecting async listener to sessionError instead of the process
2026-08-27 22:22:51 +02:00
lilleman
3c6195a938
Collapse the two id emptiness tests into one and pin the reassembler wording
2026-08-27 16:42:26 +02:00
lilleman
cf315737b7
Keep the body scrape for reserved message types and an empty receipt id marker
2026-08-27 16:32:01 +02:00
lilleman
c9c3121d40
Give the esm_class bits one owner beside the constants
2026-08-27 16:18:05 +02:00
lilleman
b9f77ec969
Decode a receipt body before reading it and stop an unnameable state TLV overriding it
2026-08-27 16:08:54 +02:00
lilleman
4c08fe8fa3
Classify a deliver_sm by esm_class and document the messageDlr precondition
2026-08-27 15:52:33 +02:00
lilleman
366fa26b1c
Enforce bind direction, cap segments per message and pin the README examples
2026-08-27 14:07:42 +02:00
lilleman
8d245c82c4
Declare the logger contract in the library instead of depending on @larvit/log
2026-08-27 13:42:58 +02:00
lilleman
8a182604b7
Address the CodeRabbit review: inbound SMS, binary payloads and untrusted input
2026-08-27 11:52:43 +02:00
lilleman
884afdb87b
Stop a thrown listener escaping, bound what a peer can pin, and drop the body from failure responses
2026-08-27 10:55:34 +02:00
lilleman
5af75a3c57
Close the stability findings and settle the sendResp, sendSms and unbind contracts
2026-08-27 00:17:48 +02:00
lilleman
435fa42708
Decompose the codec, document the session surface and record the review decisions
2026-08-26 22:59:39 +02:00
lilleman
6d842a8539
Split the session, gate optional parameters on the peer version, own the SMPP version in defs
2026-08-26 22:41:28 +02:00
lilleman
1e5807f647
Record the TLS certificate decision
2026-08-26 21:50:09 +02:00
lilleman
54b73205ac
Document the finished API and make the test scripts portable across Node versions
2026-08-25 17:02:57 +02:00
lilleman
db5dc8cd15
Add message helpers: segmentation, bit counting and SMPP time
2026-08-25 16:23:23 +02:00
lilleman
79c9df79c6
Record wire-format defects and drop the dormant filters layer
2026-08-25 16:20:25 +02:00
lilleman
16c935bb18
Scaffold ESM TypeScript rewrite as @larvit/smpp
2026-08-25 16:02:27 +02:00