Skip to content

Commit

Permalink
Added SdBusMessage.sender property
Browse files Browse the repository at this point in the history
  • Loading branch information
igo95862 committed Jul 21, 2022
1 parent e8dcaa0 commit 35bebbf
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/sdbus/sd_bus_internals.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ def send(self) -> None:
path: Optional[str] = None
interface: Optional[str] = None
member: Optional[str] = None
sender: Optional[str] = None


class SdBus:
Expand Down
10 changes: 10 additions & 0 deletions src/sdbus/sd_bus_internals_message.c
Original file line number Diff line number Diff line change
Expand Up @@ -1073,12 +1073,22 @@ static PyObject* SdBusMessage_member_getter(SdBusMessageObject* self, void* Py_U
}
}

static PyObject* SdBusMessage_sender_getter(SdBusMessageObject* self, void* Py_UNUSED(closure)) {
const char* sender_char_ptr = sd_bus_message_get_sender(self->message_ref);
if (NULL != sender_char_ptr) {
return PyUnicode_FromString(sender_char_ptr);
} else {
Py_RETURN_NONE;
}
}

static PyGetSetDef SdBusMessage_properies[] = {
{"expect_reply", (getter)SdBusMessage_expect_reply_getter, (setter)SdBusMessage_expect_reply_setter, "Expect reply message?", NULL},
{"destination", (getter)SdBusMessage_destination_getter, NULL, "Message destination service name", NULL},
{"path", (getter)SdBusMessage_path_getter, NULL, "Message destination object path", NULL},
{"interface", (getter)SdBusMessage_interface_getter, NULL, "Message destination interface name", NULL},
{"member", (getter)SdBusMessage_member_getter, NULL, "Message destination member name", NULL},
{"sender", (getter)SdBusMessage_sender_getter, NULL, "Message sender name", NULL},
{0},
};

Expand Down
2 changes: 2 additions & 0 deletions test/test_read_write_dbus_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,8 @@ def test_message_properties(self) -> None:
self.assertEqual(message.member,
'GetUnit')

self.assertIsNone(message.sender)

def test_string_subclass(self) -> None:
from enum import Enum

Expand Down

0 comments on commit 35bebbf

Please sign in to comment.