Skip to content

Releases

0.95.2

Choose a tag to compare

@tmds tmds released this 27 Oct 19:49
5557e04

Tmds.DBus.Protocol

  • Rename Notification.Exception to Notification.CompletionReason. The old property is obsoleted (#458).
  • Fix file descriptor handling: don't discard fds of a later message received in the same read (#457).

0.95.1

Choose a tag to compare

@tmds tmds released this 04 Sep 06:59

Tmds.DBus.Protocol:

  • MatchRule: fix key names for PathNamespace, Arg0Namespace and Arg0Path. (#454)

0.95.0

Choose a tag to compare

@tmds tmds released this 21 Aug 19:04
cd7ec20

Tmds.DBus.Generator

  • Use fully-qualified names to avoid conflicts with generated types (#451).
  • Add Visibility attribute to control access modifiers of generated types (#452).

0.94.2

Choose a tag to compare

@tmds tmds released this 17 Jun 12:22
c75cbb3

Tmds.DBus.Generator

  • Support interfaces with more than 64 readable properties (#447).

0.94.1

Choose a tag to compare

@tmds tmds released this 28 May 10:51

Tmds.DBus.Generator

  • Fixed DBusHandler code only being generated for the last interface when generating handler types for multiple interfaces (#445).

0.94.0

Choose a tag to compare

@tmds tmds released this 25 May 18:40
f8492aa

Tmds.DBus.Protocol

  • Func<ValueTask> handler overloads added to avoid async void in user code (#440).

Tmds.DBus.Generator

  • [Breaking] IReadableXxxProperties has been replaced with a unified IXxxProperties interface. Write-only properties are uncommon and the separate interface made explicit interface implementations more verbose (#441).
  • Fix code generation for single-field D-Bus structs (#439).
  • DBusHandler.ParseInterface now ignores missing interface string on Properties requests (#442).

Documentation

  • Documentation rewritten into a single guide (#443).

0.93.0

Choose a tag to compare

@tmds tmds released this 01 May 13:21

0.93.0

Tmds.DBus.Protocol

  • [Breaking] Previously obsoleted types and APIs have been removed (#426):
    • Connection - use DBusConnection instead.
    • ConnectionOptions - use DBusConnectionOptions instead.
    • ClientConnectionOptions - use DBusConnectionOptions instead.
    • ClientSetupResult - use DBusConnectionOptions.SetupResult instead.
    • Address - use DBusAddress instead.
    • ActionException - use ObserverHandler instead.
    • IMethodHandler - use IPathMethodHandler instead.
    • DBusException - use DBusErrorReplyException instead.
    • DisconnectedException - use DBusConnectionClosedException instead.
    • ConnectException - use DBusConnectFailedException instead.
    • ProtocolException - use DBusUnexpectedValueException instead.
    • MethodContext.Connection - use MethodContext.DBusConnection instead.
  • AddMatchAsync overloads that accept Action<Exception?, T, object?, object?> are marked Obsolete. Use the new Action<Notification<T>> overloads instead (#427).
  • Notification<T> / Notification / NotificationType: new callback API for signal observers, replacing the Action<Exception?, T, ...> pattern. Notifications distinguish between value, owner change, and completion events (#427).
  • NameOwnerWatcher: tracks name ownership changes when calling methods and watching signals, enabling detection of service restarts. A DBusOwnerChangedException
    is thrown when a method call targets an owner identifier from NameOwnerWatcher and the owner has changed (#425).
  • OnException handler on DBusConnectionOptions: provides exception reporting and disconnect control via the new ExceptionContext / ExceptionSource types (#431).

Tmds.DBus.Generator

  • The generator can now produce handler (server-side) types for implementing D-Bus interfaces. To generate handlers, set the DBusGeneratorMode property to Handler, to generate proxies set it to Proxy. (#429, #433)
  • [Breaking] Instead of a single action overload that accepts Action<Exception?, T>, the generator generates a simple overload that accepts Action<T> for users that are not interested in completion notifications, and an Action<Notification<T>> overload to be notified of completions. (#427)
  • [Breaking] To enable handler code to generate an IXxxProperties interface, the generated proxy code changed as follows:
    • The GetPropertiesAsync method now returns the concrete XxxProperties class. When trying to get properties that were not set the get accessor throws. Alternatively, users can call GetNullablePropertiesAsync which returns an INullableXxxProperties interface which returns null for properties that are not set.
    • The WatchPropertiesChanged methods use a new IChangedXxxProperties interface.

0.92.0

Choose a tag to compare

@tmds tmds released this 08 Apr 04:51

This release addresses vulnerabilities from malicious senders in Tmds.DBus and Tmds.DBus.Protocol:

  • Check the signal sender is the owner of the well-known name (fb41b95, b429873)
  • Prevent spilling of unix fds to the next message and limit the number to 16 per message (4800917, f90642d)
  • Prevent unhandled exceptions on SynchronizationContext due to a malformed body sent by a malicious sender. (f0d9d0b, a64b8b9)

Advisory: GHSA-xrw6-gwf8-vvr9

0.21.3

Choose a tag to compare

@tmds tmds released this 08 Apr 04:51

This release backports the fixes from 0.92.0 to Tmds.DBus.Protocol.

Advisory: GHSA-xrw6-gwf8-vvr9

0.91.1

Choose a tag to compare

@tmds tmds released this 23 Mar 11:49
6888ed2

Tmds.DBus.Generator/Tmds.DBus.Tool:

  • ProtocolGenerator: fix alignment when reading structs. (#422)