Python-diameter

Latest version: v0.7.1

Safety actively analyzes 623343 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

0.7.1

In this release

New features

* Statistics and performance numbers for peers (`Peer.statistics`) and cumulated for the entire node (`Node.statistics`) (9):
* Counters for received requests for the last minute, 5 minutes and 15 minutes
* Counters for sent result codes for the last minute, 5 minutes and 15 minutes
* Average response times
* Rate of processed responses per second
* Snapshots taken at 1-minute intervals, kept for 24 hours (`Node.statistics_history`)
* AVPs for diameter command messages that do not have a Python implementation can now be accessed as instance attributes as well. All unimplemented commands now inherit from `UndefinedMessage` class, which populates its instance attributes based on the AVPs it contains, when created using `Message.from_bytes` ([documentation](https://mensonen.github.io/diameter/guide/message/)).
* The list of known diameter command messages extended with ~100 new commands, mostly vendor-specific ([documentation](https://mensonen.github.io/diameter/api/commands/other_commands/))
* The most recent peer disconnect reason is recorded and accessible as the `disconnect_reason` Peer instance attribute
* A python implementation for the 3GPP Sy commands have been added:
* Spending-Limit-Request/Answer
* Spending-Status-Notification-Request/Answer

Bugfixes and changes

* `AvpTime` no longer overflows at year 2036, usage extended to year 2104 (8)
* Re-connect with persistent peers is no longer attempted, if the peer has exited after a Disconnect-Peer-Request. This behaviour can be overridden by setting the `always_reconnect` Peer attribute to true (5)
* Message routing to applications works now with multiple realms. I.e. an Application can now receive requests from multiple Peers that have been configured with different realm names
* Dataclasses representing translated Grouped AVPs have been moved to their own module `diameter.message.avp.grouped`
* Attempting to send a message through a node to a destination realm that is unknown (no peers configured) raises now a `NotRoutable` exception
* `RuntimeError` raised in Python 3.12 during interpreter shutdown has been silenced
* `Peer.last_connect` timestamp is now also set for incoming connections after a successful CER, previously always unset
* Nodes no longer dump periodic data on peer connections and statistics into logfiles. Statistics logging is controlled by `Node.peers_logging` and `Node.stats_logging`, both defaulting to False

**Full Changelog**: https://github.com/mensonen/diameter/compare/v0.6.1...v0.7.1

0.6.1

In this release

- Support for re-transmission detection and rejection added (1)
- Support for Proxy-Info AVPs in automatically generated answers added (2)
- 3GPP Diameter Charging Application (TS 32.299) support added
- Diameter Mobile IPv4 (rfc4004) support added
- Diameter Network Access Server (rfc4005, rfc7155) support added
- Diameter Extensible Authentication Protocol (rfc4072) support added
- "oneM2M" vendor and its AVPs added
- Bump from "alpha" to "beta" status

**Full Changelog**: https://github.com/mensonen/diameter/compare/v0.5.6...v0.6.1

0.5.6

In this release

- Incoming connections from relay agents are accepted even if no common application IDs (4)
- Accessing AVPs in defined diameter messages that have not been set are now returned as `None` instead of an `AttributeError` being raised
- Default timers have now sensible values, main thread wakeup timer can be configured
- Signed and unsigned integer AVPs are now handled separately, as `AvpInteger32`, `AvpUnsigned32`, `AvpInteger64` and `AvpUnsigned64`
- Adds a previously missing "Qos-Final-Unit-Indication" grouped AVP and all of its sub-AVPs as an instance attribute of `CreditControlAnswer`

**Full Changelog**: https://github.com/mensonen/diameter/compare/v0.5.4...v0.5.6

0.5.4

In this release

- Updates documentation with the final, correct package name
- Packages released to PyPI

The package can now be installed with `pip install python-diameter`.

0.5.1

In this release

First release that is essentially feature-complete, with support for:

- Parsing and writing AVPs and Messages
- Connecting to diameter peers, with protocol-level upkeep automated (CER, DWR, DPR)
- Basic tools to build diameter applications

No API-breaking changes are expected after this release.

_This is a pre-release, may not be production ready._

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.