lilleman
42b1239f3d
Name the retry status by direction, and correct what the held-message decision claims
Test / lint (pull_request) Successful in 28s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 30s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 37s
Mirror / push (push) Successful in 4s
2026-09-26 14:53:09 +02:00
lilleman
f2977638f2
Stop refusing only once the held messages are down to half, so a full window warns once, and name the octets in the warning
Mirror / push (push) Successful in 5s
Test / test (22) (pull_request) Successful in 31s
Test / lint (pull_request) Successful in 22s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 30s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 31s
2026-09-26 14:44:00 +02:00
lilleman
b9167073d4
Warn once at the held-message bound, tell receivers sendResp() is what releases a message, and pin that a refused segment joins no group
Mirror / push (push) Has been cancelled
Test / test (18) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 32s
Test / lint (pull_request) Successful in 23s
Test / test (20) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 31s
2026-09-26 14:41:10 +02:00
lilleman
fb6b125aab
Give the dumbclient peers a namespace owner that outlives them, count window 2000's throttled messages, and correct what the findings blamed on the peer
Mirror / push (push) Successful in 4s
Test / lint (pull_request) Successful in 23s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 32s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 31s
2026-09-26 14:37:20 +02:00
lilleman
855ccbe75f
Refuse a message past the held-message bound with ESME_RTHROTTLED, and answer a full reassembly buffer the same way
Test / lint (pull_request) Successful in 23s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 31s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 31s
Mirror / push (push) Successful in 4s
2026-09-26 13:18:56 +02:00
lilleman
c3ebd6d6bc
Cap the heap unanswered messages hold, and detach them from the chunk they arrived in
Test / lint (pull_request) Successful in 25s
Test / test (22) (pull_request) Successful in 32s
Test / test (18) (pull_request) Successful in 33s
Test / test (20) (pull_request) Successful in 32s
Test / test (24) (pull_request) Successful in 31s
Test / test (26) (pull_request) Successful in 31s
Mirror / push (push) Successful in 6s
2026-09-25 19:22:31 +02:00
lilleman
b105752d53
Log an ignored response-less command at verbose, since a peer drives it
Test / lint (pull_request) Successful in 21s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 35s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 34s
Mirror / push (push) Successful in 6s
2026-09-23 22:46:13 +02:00
lilleman
b54f5b02f3
Leave alert_notification and outbind unanswered
Mirror / push (push) Has been cancelled
Test / lint (pull_request) Successful in 21s
Test / test (18) (pull_request) Successful in 30s
Test / test (20) (pull_request) Successful in 29s
Test / test (22) (pull_request) Successful in 30s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 30s
2026-09-22 21:43:57 +02:00
lilleman
18de565aad
Reassemble a concatenated message segmented with the sar_* TLVs ( #91 )
...
* Regression tests for inbound sar_* concatenation
* Reassemble a concatenated message segmented with the sar_* TLVs
* Record the sar_* fix in the jasmin and Java-client findings
* Name the sar_* TLVs in the refusal, and separate group keys the addresses cannot forge
* Name the field a refused segment got wrong, and key groups on a separator no address holds
* Bound the new session tests, and derive Concat from the UDH fields
2026-09-06 21:03:14 +02:00
lilleman
184d1dc7af
Read a body from message_payload and accept data_sm ( #84 )
...
* Regression tests for a body in message_payload and for data_sm
* Read a body from message_payload and accept data_sm
* Assert the fixed message_payload and data_sm behaviour against Jasmin
* Record the message_payload and data_sm fixes in the Jasmin findings
* Read an inbound data_sm as the direction it travelled, and export messageOctets
* Refuse a segment with the code its stand-in command defines
* Name the stand-in the refusal status is read from
2026-09-06 05:59:27 +02:00
lilleman
5b7b563dc2
Answer every segment of an inbound concatenated message as it arrives ( #83 )
...
* Regression tests for answering every inbound segment as it arrives
* Answer every segment of an inbound concatenated message as it arrives
* Record the segment-by-segment answer in AGENTS.md and README
* Regression tests for an empty message_id on deliver_sm_resp
* Answer a deliver_sm with the empty message_id SMPP 3.4 makes it
* Record Jasmin's refusal of a deliver_sm_resp message_id
* Mark the Jasmin multipart deadlock fixed
* Regression tests for the architecture review's findings
* Give the segment id notation an owner, and every segment a status
* Correct what the ids reach and what a lost group tells the application
* Regression tests for a group lost to its own octet overrun
* Report a group lost to its own overrun, and refuse by the command it arrived on
* Keep the docs true about what a segment is answered with
* Count only the answered segments of a group lost to an overrun
* Report only what a lost group cost, and say which cap bit
2026-09-06 04:16:11 +02:00
lilleman
3eeb0b82c0
Give a message up only once every listener has, and only count a response the wire took
2026-09-02 12:36:01 +02:00
lilleman
3aadb64df8
Release a message's hold when the response goes out, or when its listener failed
2026-09-02 08:15:26 +02:00
lilleman
471923a7b6
Log the dropped request, and scope the receipt sentence to a reconnect
2026-09-01 20:53:58 +02:00
lilleman
e6250ef44e
Drop a request whose link went while onRequest ran, and pin the wire in the test
2026-09-01 20:40:17 +02:00
lilleman
c8d265d5fa
Tie the refusal to the link, not to the hold, so a released message is refused too
2026-09-01 20:25:57 +02:00
lilleman
82a95593bd
Refuse to answer a message whose link went, instead of reporting it delivered
2026-09-01 19:20:06 +02:00
lilleman
67c0402def
Bound the messages held for a shutdown, and report a partial receipt
2026-09-01 17:42:22 +02:00
lilleman
8becbc0ab6
Give the gate, the window and the pending map one owner
2026-09-01 16:52:15 +02:00
lilleman
3bcea108e3
Wait out the messages the application holds before shutting a session down
2026-09-01 13:58:28 +02:00
lilleman
140464802b
Put the submit_sm summary back on the function it describes and tidy the review nits
2026-08-30 23:12:22 +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
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
bebd74b42b
Drain the requests already on the wire before close() and unbind() tear down
2026-08-30 20:08:36 +02:00
lilleman
c9c3121d40
Give the esm_class bits one owner beside the constants
2026-08-27 16:18:05 +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