diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cbf5d4..85c0fde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,9 +35,9 @@ - An `alert_notification` or an `outbind` from the peer is logged and left unanswered, as SMPP 3.4 gives neither a response. Each one used to emit `sessionError`, `"alert_notification" has no response command`. -- `maxOctets` charges each held segment 1000 octets beyond its own, and each TLV on it, every repeat - included, 300 more. Segments of empty fields or thousands of empty TLVs used to count as next to - nothing, so a peer could hold far more than the cap. **Raise a `maxOctets` you tuned low**: it now +- `maxOctets` charges each held segment 1000 octets beyond its own, 300 more per TLV on it, and 300 + per occurrence of a repeatable one. Segments of empty fields or thousands of empty TLVs used to + count as next to nothing, so a peer could hold far more than the cap. **Raise a `maxOctets` you tuned low**: it now holds a sixth to a tenth as many segments, and an incomplete message evicted over the cap is lost, since its segments were already answered. - `server()` refuses a `maxOctets` below 1 or not a whole number, `Infinity` included, like its diff --git a/README.md b/README.md index f77a711..ab71fd2 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ All optional. Timeouts are milliseconds. | `tls` | `false` | A `tls.TlsOptions` object with your certificate and key. A bare `true` is refused. | | `idleTimeout` | `40000` | Drop a peer that has been silent this long. | | `maxReassembly` | `1000` | Incomplete multipart messages held per session. | -| `maxOctets` | `67108864` | Roughly the memory incomplete multipart messages may hold per session: each held segment counts its octets plus 1000, and each TLV on it, every repeat included, 300 more. | +| `maxOctets` | `67108864` | Roughly the memory incomplete multipart messages may hold per session: each held segment counts its octets plus 1000, 300 more per TLV on it, and 300 per occurrence of a repeatable one. | | `reassemblyTimeout` | `300000` | How long a late segment can still join an incomplete message. | | `responseTimeout`, `shutdownTimeout`, `maxOutstanding`, `log`, `signal` | as for the client | |