Releases: ruhex/BGPLite
Releases · ruhex/BGPLite
Release list
v1.5.0
v1.4.5
v1.4.4
v1.4.3
v1.4.2
v1.4.1
v1.4.0
1.4.0 (2026-07-06)
Features
- api: PeerCustomSource entity + PeerStore CRUD + REST API (#146) (42662c5)
- server: fetch and advertise per-peer user URL sources (#147) (#149) (0bb045a)
Bug Fixes
- api: /api/me always returns peers array, disambiguate by ?asn= (#23) (335d67f)
- api: cap request body size — defend against OOM DoS (#171) (85963b6)
- api: make ManagementApi.Dispose() idempotent (#141) (7f862fe)
- api: stop leaking raw exception messages in 500 responses (#172) (bf0b204)
- protocol: correct AGGREGATOR (6B) and AS4_AGGREGATOR (8B) lengths — regression of #31 (#169) (4519d13)
- providers: block IPv4-embedding IPv6 forms + restrict ports in SSRF defense (#173) (96656bd)
- providers: connect SSRF-validated hosts IPv4-first, fall through on failure (#151) (#153) (6d98aed)
- providers: reject /0 + /33+ and mask host bits in PrefixListParser (#162) (873d339)
- providers: RIPEstat resilience — stale-on-failure, per-ASN gate, bounded cache (#163, #164, #165) (6a5a6ea)
- providers: send per-source headers/timeout per-request, not via client mutation (#155) (#170) (ef71e3c)
- server: cancel _advertisedPrefixesLock + add SendTimeout backstop (#175) (255e51d)
- server: honor CancellationToken in StopAsync and NotifyCeaseAsync (#161) (a46c07f)
- server: make ConfigCommunityResolver._parsed thread-safe (#159) (#174) (c987ea2)
- server: serialize IpAcceptThrottle dict mutations with a coarse lock (#133) (b8fa475)
Performance Improvements
- api: suppress MultipleCollectionIncludeWarning (#138) (6d8a704)
- providers: URL-keyed TTL cache for per-peer user-source fetches (#150) (#152) (7a3d742)
- remaining hot-path allocation reductions (#85) (a20b470)
- routing: replace GroupBy with manual partition in ExactUnionPrefixAggregator (#82) (0c7e0cf)
v1.3.0
1.3.0 (2026-07-04)
Features
- api: cap concurrent management-API requests (#119) (71761b2)
- api: per-client-IP token-bucket rate limiting (#118) (3d35e9d)
- config: hot-reload soft config without restarting the service (#136) (bb722c9)
- protocol: add RFC 8092 Large Communities codec + wiring (#35) (19abd15)
Bug Fixes
- api: enable SQLite WAL + busy_timeout for peer-store resilience (#111) (8ca4c9c)
- api: gate CORS on configurable origin allowlist (#99) (1a66679)
- api: gate forwarding headers on trusted proxies (#117) (3e0dae4)
- api: make ManagementApi routing fully async (#92) (#113) (5d419e8)
- api: sanitize user input in logs + drop raw-body logging (#120) (e875f1d)
- api: validate custom-prefix CIDRs + preserve on omit in peer update (#100) (0676748)
- Cease subcode (RFC 4486) + /api/asn-lists type by Kind (#75) (fb960b7)
- config: strict YAML deserialization — unknown keys fail-loud (#102) (43e60c2)
- config: validate YAML at startup (#89) (8dcde68)
- logging: silence EF Core SQL spam + Docker log rotation (#72) (#73) (0d06496)
- providers: thread CancellationToken through IPrefixService (#114) (dd57479)
- reject IPv6 next hops and honor well-known communities (#67) (d51e5d6)
- server: evict idle IPs from IpAcceptThrottle (#115 follow-up) (42ff0dd)
- server: harden BGP listener against connection floods (#115) (c9b7201)
- server: keep session up on a single malformed UPDATE (#94) (#109) (7aa935c)
Performance Improvements
- api: AsNoTracking on all PeerStore read paths (#112) (ea05c93)
- api: collapse SendAllRoutesAsync peer loads into one roundtrip (#84) (c6ffc43)
- providers: parallelize PrefixService ASN resolution (#83) (372284a)
- routing: resolve peer community allow-set once per send (#106) (e3bec19)
- server: cache UPDATE path attributes per community set (#87) (e2977f5)
- server: short-circuit GroupByCommunitySet for single-set batches (#86) (c23fa89)