The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Perl module Protocol::DBus

0.22 Mon 23 May 2022
- BUG FIX: Mojo adapter no longer croaks on pause/unpause.
- Remove left-in debug code.
- A bit more test coverage is added.

0.21 Wed 20 Apr 2022
- Require up-to-date IO::Framed.

0.20 Wed 13 Apr 2022
- Make unexpected socket shutdowns & errors trigger promise rejections.
  (Previously the promises never settled.)

0.19 Thu 12 Aug 2021
- (No production changes.)
- Fix integration test to ignore external warnings.

0.18 Wed 11 Aug 2021
- (No production changes.)
- Fix Mojo test to ignore external warnings.
- Fix Socket::MsgHdr-dependent tests to check the version.

0.17 Fri 23 Apr 2021
- BUG FIX: Fix errant remove() in Mojo.pm DESTROY handler.
- BUG FIX: Fix nonblocking mode on pre-5.14 perls.
- BUG FIX: Prevent inadvertent event loop stoppage after initialize()
  in Mojo.pm.
- BUG FIX: Make write buffering no longer auto-resume().
- BUG FIX: Fix memory leaks (and detection thereof) in event loop interfaces.
- Make event loops defer polling until at least one initialize() has run.
- Increase test coverage.
- Require a new enough Socket.pm to fix RT86613.
- Work around an apparent Devel::Cover bug.
  (https://github.com/pjcj/Devel--Cover/issues/276)
- Work around Socket.pm’s misbehavior on Cygwin.
  (https://rt.cpan.org/Public/Bug/Display.html?id=135262)
- Fix race conditions in unhandled-failure tests.
- Make tests aware of OSes that need Socket::MsgHdr (and skip accordingly).
- Skip tests on pre-8.15 Mojo. (Avoids bug w/ Promise->new())
- Test suite now passes on Windows … for what that’s worth!
- Fix typo in UNIX FDs example. (Thank you, Max Maischein!)
- Trivial documentation tweaks.

0.16 Mon 22 June 2020
- BUG FIX: Typo in write-congestion logic in Mojo.pm.
- Add pause(), resume(), and get_unique_bus_name() to EventMessenger.
- Fix race conditions in uncaught-failure tests.

0.15 Sun 3 May 2020
- BREAKING CHANGE: This module now expects and returns strings as
character-decoded. Previously it did no encoding nor decoding. (This change
is made to prevent invalid UTF-8 from being sent.)
- BREAKING CHANGE: send_call()’s returned promise, in cases where a reply
is not requested, now resolves when the message is sent.
- BREAKING CHANGE: send_call() no longer throws exceptions; all failure cases
are communicated as rejections of the returned promise. This change is made
to obviate the need to trap exceptions in event loops.
- BREAKING CHANGE: send_return(), send_error(), and send_signal() now
all return promises that resolve when the message is sent. Previously they
returned a boolean that indicated whether the message had been sent or was
still queued. This change is made to make use within event loops a bit more
natural. It also effects a more consistent interface: all send_*() methods
now return promises.
- Add on_failure callback to event loop modules.
- Document “flags” parameter to send_call().

0.14 Wed 25 Mar 2020
- Clarify UTF-8 encoding requirement in documentation. (No code changes.)
  UPDATE: This requirement was reversed in 0.15; starting then, all strings
  are to be *decoded* instead of raw UTF-8.

0.13 Thu 12 Dec 2019
- Mojo connector now uses Mojo::Promise rather than Promise::ES6 and
  exposes “*_p” aliases for initialize() and send_call().

0.12 Tue 20 Nov 2019
- Fix POD typo that misidentifies Mojo connector.

0.11 Mon 19 Nov 2019
- BUG FIX: initialize() now returns 1 after initial truthy return.
- Implement non-blocking connect().
- Add AnyEvent and IO::Async wrapper modules.
- Improve Peer.pm documentation.

0.10 Thu 16 May 2019
- Switch from Module::Load to Module::Runtime.

0.09 Sat 2 Mar 2019
- BREAKING CHANGE: send_call() no longer accepts “on_return”. Instead,
the method returns an instance of Promise::ES6. This affords more
flexibility than “on_return” and relieves callers of the responsibility
to determine whether the response succeeded or failed.
- Rename get_connection_name() to get_unique_bus_name(). (The former
name is retained as an alias.)
- Parser.pm now detects prematurely shut-down connections.

0.08 Wed 9 Jan 2019
- Document the send_return(), send_error(), and send_signal() methods.
- Switch to native byte order as default rather than little-endian.

0.07 Thu 20 Dec 2018
- Rename do_authn() to initialize(), and make it return falsy until the
  “Hello” response arrives back. This removes the workflow state where
  authn is done but the connection name is not yet established. I don’t
  believe this should break anything since get_message() never actually
  returned the “Hello” response.
- Rename authn_pending_send() to init_pending_send().
- Added DBUS_COOKIE_SHA1 authentication support.
- Implement fallback when server indicates authn mechanisms
  besides EXTERNAL.
- EXTERNAL authn now attempts to auto-load Socket::MsgHdr except on
  OSes (e.g., Linux, Cygwin) where it’s known not to make a difference.
- Fix parsing of DBus addresses

0.06 Sat 1 Dec 2018
- Socket::MsgHdr is no longer required.
- BREAKING CHANGE: Socket::MsgHdr must now be loaded prior to D-Bus
authentication in order for UNIX FD passing to work.

0.05 Thu 15 Nov 2018
- Add proper UNIX_FD support and an example of its use.
- Add preserve_variant_signatures() mode.
- Add send_signal() method.
- Update documentation, add README.md.

0.04 Wed 14 Nov 2018
- Fix DICT unmarshaling alignment.
- Add receive.pl example and two contributed ones.

0.03 Sun 11 Nov 2018
- Disable UNIX_FD stuff until it can be made to work.

0.02 Sun 11 Nov 2018
- Fix some examples, remove broken example script

0.01 Tue 2 Oct 2018
- Initial release