python-dbus-next icon indicating copy to clipboard operation
python-dbus-next copied to clipboard

Make client info available

Open tom-cook-veea opened this issue 3 years ago • 0 comments

The main change here is to make the dbus_next.message.Message object available through the context-local current_message proxy. In client code, the typical usage is:

from dbus_next.message_bus import current_message

@method()
def echo_sender() -> 's':
    return current_message.sender

A unit test demonstrating this usage is also included.

This also changes the @method() decorator so that the method can still be called in a non-dbus context and correctly returns its value.

This also fixes a defect in the unit tests; on my Ubuntu 22.04 system, the default session bus socket is not in the abstract socket namespace. This caused test_tcp_connection_with_forwarding to fail as it assumed that the session bus used a socket in the abstract namespace. I have modified it to make it work with either an abstract namespace socket or a filesystem socket.

tom-cook-veea avatar Nov 21 '22 18:11 tom-cook-veea