This repository has been archived by the owner on Sep 1, 2022. It is now read-only.
Releases: dnp3/opendnp3
Releases · dnp3/opendnp3
3.1.2
- 🪲 Fix
PrintingSOEHandler
octet string size not printing properly. See 4372862 - 🪲 Fix keep-alive timer not properly calculated. See #407.
- 🪲 Fix
LinkContext
andMContext
possible lifetime issue. See #407. - 🪲 Fix UDP reconnect delay not being honoured. Also, initial UDP read errors (due to ICMP packets) do not close the socket immediately. See #438.
- ⚰️ Deprecate the
LinkConfig
constructor with an unuseduseConfirms
argument. See #439. - 🪲 In Java,
CommandHeader
builder methods now all returnCommandHeaders
. See #440. - 🪲 In Java, fix
LinkStatusListener
not getting called. Also added the missingonUnknownDestinationAddress
andonUnknownSourceAddress
callbacks. All the callbacks now have an empty default implementation. See #441. - 🪲 Added extra log when closing a new connection based on
ServerAcceptMode::CloseNew
. See #442. - 🪲 Fix TLS server not throwing exception when a certificate or key file is not valid. See #443.
3.1.1
🐞 Fix static octet string serilazation bug.
⭐ Add missing octet string configuration to C# EventBufferConfig.
3.1.0
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
New features:
- ⭐ Add support for Immediate Freeze (
0x07
), Immediate Freeze No Ack
(0x08
), Freeze-and-Clear (0x09
), Freeze-and-Clear No Ack (0x10
). See PR #320. - Add support for broadcast. See PR #312.
- ⭐ Add UDP support. See PR #314.
- ⭐ Add unsolicited fixed number of retries See PR
#323. - ⭐ Add support for timestamp quality and g51v2 (CTO Unsynchronized). See
PR #316. - ⭐ Add support for TLS 1.3 (requires OpenSSL 1.1.1). See PR
#372.
API changes:
- ⭐ Complete reorganization of the code to produce a single library.
Properly separate the public header files from the private ones. Refactor the
CMake to use modern practices. - ⭐ Outstation database points are now specified using a map instead of a
sorted array. See PR #296. - ⭐
ICommandHandler
now includes aBegin
and aEnd
callback to know
which commands were grouped together in a single APDU. See PR
#341. - ⭐
ISOEHandler
now includes aBeginFragment
andEndFragment
to help
determine if it's a multi-fragment response or an unsolicited response. See PR
#298. - ⭐ When sending requests, a distinct
SOEHandler
can be specified to help
associate the response with the request. To keep the old behaviour, simply
pass the sameSOEHandler
on each request. See PR
#339. - ⭐ All public enumerations used by the library exposes a
to_string
and a
from_string
method. They also expose ato_type
and afrom_type
method to
convert to and from the underlying integer value. See PR
#308. - ⭐ Control Relay Output Block now expose each field individually. See PR
#349. - ⭐ Instead of relying on an output parameter,
DNP3Manager
now throws an
exception on misconfiguration. This also includes if a server was not able to
bind to a port. See issue
#293 and PR
#367. - ❌ Remove sending data-link confirmation support. It still supports
receiving confirmed data to interoperability. See issue
#364 and PR
#367. - 🪲
TaskConfig
now takes astd::shared_ptr
instead of a reference. See
issue #238 and PR
#367.
Bindings changes:
- ⭐ Add typed flag handling in Java and C#. See PR
#342. - ⭐ In the Java bindings, when
DNP3Manager
fails, an descriptive
exception is thrown instead of returning anull
. See PR
#367. - ⭐ Published NuGet packages now include both x86 and x64 binaries.
- 🪲 Provide
IDnpTimeSource
interface in Java and C#. See issue
#353 and PR
#357. - 🪲 Add
typesAllowedInClass0
in Java bindings. See PR
#360.
CI:
- 🔨 Move continuous integration to GitHub
Actions. - 🔨 Add automated Subset Level 2 conformance testing. The report
is available here: https://dnp3.github.io/conformance/report.html - 🔨 Add code coverage results using
Codecov. See PR
#301.
Other:
2.4.0
- ⭐ Added optional reconnection delay parameter to
ChannelRetry
. When a connection is lost, this parameter is used to wait before reattempting to establish a connection. Then, the same reconnection strategy as before is used for retries. See issue #354. - 🪲 Fix conformance issue with data-link confirmations. See PR #359.
- 🪲 Fix conformance issue select & operate behaviour. See PR #359.
- 🪲 Fix issue when compiling with MingW. See PR #345.