Skip to content

Releases: OpenDDS/OpenDDS

OpenDDS 3.28.0

16 Apr 19:32
27ebd79
Compare
Choose a tag to compare

Download OpenDDS-3.28.zip (Windows) or OpenDDS-3.28.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

Version 3.28.0 of OpenDDS

Released 2024-04-16

Read the documentation for this release on Read the Docs.

Additions

  • Added an XCDR2 value writer that can be used to serialize static and dynamic samples to XCDR2 encoding format. (PR #4421)
  • Added utility to flatten the index to a multi-dimensional array represented by dynamic data. (PR #4421)
  • A new header, dds/OpenDDSConfig.h is generated by configure or CMake. (PR #4482, PR #4498)
    • Users manually configuring a build will need to create this file, which may be empty, or add #define OPENDDS_IGNORE_OPENDDSCONFIG_H_FILE to their ace/config.h file.
    • See dds/OpenDDSConfig.h.in for details.
  • ConfigStore
  • The @value(x) annotation is now supported on IDL enumerators when using the IDL-to-C++11 mapping. (PR #4519)
  • The IDL for the Shapes example was updated for interoperability. (PR #4528)
  • Added [rtps_discovery] SpdpUserTag. (PR #4533)
  • The data type for the OpenDDS-specific Built-in ParticipantLocation Topic now includes the lease duration. (PR #4545)
  • Allow compile-time configuration of CLOCK_BOOTTIME as the clock used for timers (PR #4568)
    • If the platform supports it, this can be done using --boottime when building with the configure script or OPENDDS_BOOTTIME_TIMERS when building with CMake.

Platform Support and Dependencies

Fixes

Documentation

OpenDDS 3.27.0

07 Feb 21:33
6415d17
Compare
Choose a tag to compare

Download OpenDDS-3.27.zip (Windows) or OpenDDS-3.27.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

Version 3.27.0 of OpenDDS

Released 2024-02-07

Read the documentation for this release on Read the Docs.

Additions

Platform Support and Dependencies

  • Improved support for configure script detection of clang on Linux (PR #4449)
  • When using Visual C++, OpenDDS can now be configured using --std=c++NN (NN = 17 or 20). (PR #4452)

Fixes

  • Updated the read and write semantics of DynamicData for union, expandable collections (sequence and string), and optional member of an aggregated type. (PR #4278)
  • Fixed memory leak where instances were not cleaned up with exlusive ownership. (PR #4343)
  • Removed the special handling for sequence members with length code of 5,6, or 7. (PR #4376)
  • Reading data from a dynamic data object for a primitive type now must use MEMBER_ID_INVALID id. (PR #4376)
  • create_datawriter and create_datareader check if the topic belongs to the same participant as the publisher/subscriber. (PR #4398)
  • Fixed uninitialized durability_service in Topic QoS when using QoS-XML. (PR #4424)
  • Fixed a bug where compiling IDL with -Lc++11 -Gequality produced code outside of a namespace that didn't compile. (PR #4450)
  • SedpLocalAddress now defaults to DCPSDefaultAddress to behave like SpdpLocalAddress and local_address. (PR #4451)

Notes

  • TheParticipantFactory* will now return a null pointer when DCPSConfigFile doesn't exist. (PR #4372)

OpenDDS 3.26.1

14 Nov 22:54
3d7f89e
Compare
Choose a tag to compare

Download OpenDDS-3.26.1.zip (Windows) or OpenDDS-3.26.1.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

Version 3.26.1 of OpenDDS

Released 2023-11-14

Read the documentation for this release on Read the Docs.

Fixes

  • Building with CMake

    • Fixed Issue #4328, where each run of CMake effectively always appended the MPC features to default.features in ACE. (PR #4330)
  • Fixed a corner case in RTPS ParameterList parsing (PR #4336)

  • Reject some types of invalid RTPS DataFrag submessages (PR #4348)

OpenDDS 3.26.0

23 Oct 19:26
55aa5bc
Compare
Choose a tag to compare

Download OpenDDS-3.26.zip (Windows) or OpenDDS-3.26.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

Version 3.26.0 of OpenDDS

Released 2023-10-23

Read the documenation for this release on Read the Docs.

Additions

Deprecations

Fixes

  • Improved the subject name parsing to better conform to the DDS Security spec. (PR #4201)

    • The order of attributes in subject names is now significant when comparing them.
  • Remove from TypeLookupService when remote endpoint is removed from SEDP (PR #4216)

  • WaitSet is now notified when DataWriter liveliness is lost. (PR #4223)

  • ICE doesn't use IPv4-mapped IPv6 addresses anymore. (PR #4230)

  • Efficiency: Remove per-element locking in JobQueue (PR #4253)

  • RtpsRelay: fixed bug in record_activity's use of remove in GuidAddrSet (PR #4254)

  • Fix warnings in typeobject_generator when using TAO 3 (PR #4262)

  • Fix null pointer when participant is absent when updating locators (PR #4265)

  • Initialize variables in TypeObject to silence warnings (PR #4292)

  • RtpsRelay: Use ACE_Message_Block's locking strategy for cached SPDP to fix tsan warning (PR #4293)

  • Fix tsan warning in ReactorTask (PR #4298)

Documentation

  • Remove -Grapidjson flag [opendds_idl] (PR #4231)
  • Remove reference to mailing lists (PR #4234)
  • Restructured parts of DDS Security page and expanded documentation of some XML security document elements. (PR #4281)
  • OS-specific instructions will now be automatically selected based on the browser's user agent. (PR #4281)
  • OMG specification section references are now links to that section in the specification PDF. (PR #4281)
  • Move build and install instructions to DevGuide (PR #4294)
  • Incorporate the quick start guides, FAQ, and shapes demo into the DevGuide. (PR #4297)

Notes

  • Using Perl 5.38.0 might prevent TAO from building properly, see here for details.

OpenDDS 3.25.0

20 Jul 21:22
2038b66
Compare
Choose a tag to compare

Download OpenDDS-3.25.zip (Windows) or OpenDDS-3.25.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

Version 3.25.0 of OpenDDS

Released 2023-07-20

Read the documenation for this release on Read the Docs.

Additions

Security

  • Fixed null pointer exception caused by RTPS Parameters with incorrect zero size. (PR #4197)

Fixes

  • CMake Config Package

    • Made linking dependencies and macro definitions closer match using MPC with OpenDDS and TAO. (PR #4140)
    • Fixed issues with passing OPENDDS_IDL_OPTIONS -SI to opendds_target_sources. (PR #4140)
  • Fixed issue deserializing bounded sequences with JSON (PR #4150)

    • The deserialization will fail if the JSON input contains more elements than the bounded sequence can hold.
  • Updated the RtpsRelay's tracking of client IP addresses so they are removed when no longer used. (PR #4202)

    • The RtpsRelay configuration option -MaxAddrSetSize was renamed to -MaxIpsPerClient

Documentation

Notes

  • CMake Config Package

    • OPENDDS_TARGET_SOURCES is now called opendds_target_sources. (PR #4140)

      • CMake macros and functions names are case insensitive, so this should have no effect on CMake code.

OpenDDS 3.24.2

30 Jun 19:07
6d63839
Compare
Choose a tag to compare

Download OpenDDS-3.24.2.zip (Windows) or OpenDDS-3.24.2.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

The OpenDDS Developer's Guide for this version is available at https://opendds.readthedocs.io/en/dds-3.24.2

Updates in this version:

Security:

  • Fixed a vulnerability in the rtps_udp transport where an acknowledgement sequence number beyond the maximum expected by the writer leads to an assert and incorrect state. (#4155)
    • Thanks to Seulbae Kim (@squizz617) for discovering this.

Fixes:

  • Fixed leaked shared memory by the shared memory transport. (#4171)
  • Fixed bug introduced by #4120 (#4180, #4184)
    • The fix introduced in #4120 causes the TransportClient to silently drop messages when the client's guid is not initialized.
      This causes issues for TransportClients that send messages to the transport before association.
      One such example is a DataWriter with liveliness configured.
      The DataWriter will send liveliness messages to the transport (which will be dropped) and hang waiting for them to be delivered.
    • The solution was set the guid for a TransportClient before calling any method that uses the guid.

Notes:

  • #4180 required changes in InfoRepoDiscovery's IDL, so InfoRepo compatibility with older versions has been broken.

OpenDDS 3.24.1

21 Apr 19:06
9ededb8
Compare
Choose a tag to compare

Download OpenDDS-3.24.1.zip (Windows) or OpenDDS-3.24.1.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

The documentation for this version is available at https://opendds.readthedocs.io/en/dds-3.24.1

Updates in this version:

Fixes:

  • Fixed compile warnings in TypeSupport that can happen with GCC and -O2 or higher (#4117)
  • Fixed compile error in TypeSupport for IDL that contains a typedef of a typedef (#4117)
  • Fixed bug in the tcp transport where readers and writers can fail to associate (#4120)
  • Fixed issue in some headers that could leak #pragma pack (push, 8) into user code on Visual Studio (#4123)
  • Fixed theoretical infinite loop in rtps_udp transport code (#4124)

Documentation:

  • Removed invalid links and references in README and the Developer's Guide and fixed other minor issues (#4115, #4116, #4121, #4126)
  • Changed theme used by the Sphinx documentation to make the Developer's Guide easier to navigate (#4127)
  • Added copy buttons to embedded code and code-like examples (#4127)

OpenDDS 3.24.0

11 Apr 20:29
d570c17
Compare
Choose a tag to compare

Download OpenDDS-3.24.zip (Windows) or OpenDDS-3.24.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

The OpenDDS Developer's Guide for this version is available at https://opendds.readthedocs.io/en/dds-3.24

Updates in this version:

Additions:

  • The OpenDDS Developer's Guide is now available at https://opendds.readthedocs.io/ (#4051, #4094, #4092, #4100, #4101, #4095, #4103, #4102, #4104, #4105)
    • The Sphinx/reStructuredText source for this new format is now located in the repo at docs/devguide
  • DOCGroup ACE6/TAO2 is now the default ACE/TAO for OpenDDS, OCI ACE/TAO is no longer supported (#4069)
  • Dynamic content subscription (#3988)
    • This allows DynamicDataReaders to use QueryCondition and ContentFilteredTopic and allows DynamicDataWriters to do filtering on behalf of matched DataReaders that use ContentFilteredTopic.
  • DynamicData:
    • Can now read and write enum members as strings (#4022)
    • get_int64_value and get_uint64_value can now cast from different types (#4078)
    • DynamicDataImpl now uses lazy initialization to reduce memory usage (#4024)
  • Added aliases for IDL types from XTypes spec such as DDS::UInt32 (#3994)
    • See DdsDcpsCore.idl for all of them.
  • Added PublicationMatchedStatus Current Count To RtpsRelay Statistics (#4006)
  • Allow reassembly of overlapping fragment ranges in RTPS (#4035, #4047)
  • Can now cross-compile on macOS (#4048)
  • Added hardening features to RtpsRelay (#4045)
    • These are configured with the new options -MaxAddrSetSize and -RejectedAddressDuration.
  • Expanded support for using C++ keywords in IDL (#4073)
  • Improved support for anonymous types in unions branches (#4078)
  • IDL file and generated TypeSupport.idl can now be in different directories (#4077)

Fixes:

  • Fixed rtps_relay_address_change deadlocks (#3989)
  • Fixed RtpsUdpTransport data race from relay_stun_mutex_ (#3990)
  • Fixed invalid socket handles in RtpsUdpTransport (#4002)
  • Fixed index increment in GuidPartitionTable::prepare_relay_partitions (#4005)
  • Fixed a bug in content filtering with enum comparisons on serialized samples (#4038)
  • Fixed transport config and transport instance derived from template conflicting (#4058)
  • Improved reliability of the shared memory transport (#4028)
  • Secure writers and readers in same participant can now associate (#4041)
  • Fixed issue with using -o in tao_idl/opendds_idl options in OPENDDS_TARGET_SOURCES and those directories are now automatically included (#4071)
  • XTypes (#4078):
    • TypeObjects struct and union members used to be sorted by member ID, but they are now sorted by declaration order as the XTypes spec calls for.
      By default member IDs increment starting at 0, and in that case the TypeObjects will be the same.
      If @autoid(hash), --default-autoid hash, or @id(ID) are being used then the order could be different.
      This could cause some reader/writer matching incompatibility with older versions of OpenDDS:
      • Topics with final and appendable structs will no longer match.
      • If DISALLOW_TYPE_COERCION QoS is being used, then all topics where the order differ will not longer match.
        Note that this is true for any time the type hash changes.
      • Pass the --old-typeobject-member-order option to opendds_idl to use the non-standard order.
    • The size of XCDR2 member parameters in mutable structs and unions is now correctly interpreted when the "length code" is 5, 6, or 7.
      • This is an optimization that OpenDDS doesn't serialize samples with, so this could only be an issue when dealing with samples from other DDS implementations.
    • DynamicDataImpl (DynamicData made by DynamicDataFactory that can be passed to DynamicDataWriter):
      • get_member_id_at_index now returns ids for members that haven't been initialized yet.
      • Fixed incorrect serialization of keyed unions for instance registration, disposal, and unregistration samples.
      • Fixed errors from serializing some cases of arrays and sequences.

Notes:

  • Release files will only be uploaded to GitHub from now on
  • OpenDDS::DCPS::RepoId has been removed, if needed use OpenDDS::DCPS::GUID_t instead (#3972)

OpenDDS 3.23.1

01 Feb 20:40
e5d2e5c
Compare
Choose a tag to compare

Download OpenDDS-3.23.1.zip (Windows) or OpenDDS-3.23.1.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

Fixes:

  • Addressed a DDS Security issue where participants can sign their own permissions file if the same CA is used for both identity and permissions (#3992)
  • Addressed CVE-2023-23932, where untrusted sources can use invalid CDR strings in RTPS messages to crash OpenDDS applications (#4010, #4016, #4018)
    • Thanks to Seulbae Kim (@squizz617) for discovering this.
  • Fixed an issue in DynamicData::get_*_values and print_dynamic_data (#3952)
  • Fixed a bug where DynamicDataReader wouldn't be able to read a topic type with final or mutable extensibility (#3993)
  • Fixed race conditions involving reference counted objects (#3999)

OpenDDS 3.23.0

21 Dec 19:06
8db0c7f
Compare
Choose a tag to compare

Download OpenDDS-3.23.zip (Windows) or OpenDDS-3.23.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".

Additions:

  • DataRepresentationQosPolicy and TypeConsistencyEnforcementQosPolicy can be set through XML (#3763)
  • RTPS send queue performance improvements (#3794)
  • Cross-compiling improvements (#3853)
  • New support for DynamicDataWriter and enhanced support for DynamicDataReader (#3827, #3727, #3871, #3718, #3830, #3893, #3904, #3885, #3933, #3935)
  • New config option for RtpsDiscovery SpdpRequestRandomPort (#3903)
  • New opendds_mwc.pl Wrapper Script (#3821, #3913)
  • Improve support for loading signed documents (#3864)

Fixes:

  • Unauthenticated participant leads to invalid iterator (#3748)
  • Shmem Association race (#3549)
  • Shmem and tcp null pointer (#3779)
  • Submodule checkout on Windows (#3812)

Notes: