Commit Graph

16 Commits

Author SHA1 Message Date
lilleman afe188eecd Retry the first connect and bind on reconnect fromStart (#80)
* Regression tests for a client that retries its first connect and bind

* Retry the first connect and bind on reconnect: { fromStart: true }

* Pin that the signal bounding the first bind also closes the session

* Name a failed connect once, default the backoff where it lives, and fix the deadline advice

* Carry the failure that started the retries on the abort that ends them

* Pin one retry announcement per attempt when a link drops mid-bind

* Announce a retry when its wait is over, not when it is scheduled

* Say what the process-hold assertion expects, not what a failure would mean
2026-09-05 22:47:06 +02:00
lilleman 2e422c7584 Contain a throw from the application's logger instead of letting it escape 2026-09-04 11:33:20 +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 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 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 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 694c3a506e Bind as SMPP 3.4 by default, with interfaceVersion to override it 2026-08-26 15:41:44 +02:00
lilleman fd2f98464f Add session, client and server with the promise result API 2026-08-25 16:46:32 +02:00