Skip to content

Commit 35bebbf

Browse files
committed
Added SdBusMessage.sender property
1 parent e8dcaa0 commit 35bebbf

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

src/sdbus/sd_bus_internals.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ def send(self) -> None:
136136
path: Optional[str] = None
137137
interface: Optional[str] = None
138138
member: Optional[str] = None
139+
sender: Optional[str] = None
139140

140141

141142
class SdBus:

src/sdbus/sd_bus_internals_message.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,12 +1073,22 @@ static PyObject* SdBusMessage_member_getter(SdBusMessageObject* self, void* Py_U
10731073
}
10741074
}
10751075

1076+
static PyObject* SdBusMessage_sender_getter(SdBusMessageObject* self, void* Py_UNUSED(closure)) {
1077+
const char* sender_char_ptr = sd_bus_message_get_sender(self->message_ref);
1078+
if (NULL != sender_char_ptr) {
1079+
return PyUnicode_FromString(sender_char_ptr);
1080+
} else {
1081+
Py_RETURN_NONE;
1082+
}
1083+
}
1084+
10761085
static PyGetSetDef SdBusMessage_properies[] = {
10771086
{"expect_reply", (getter)SdBusMessage_expect_reply_getter, (setter)SdBusMessage_expect_reply_setter, "Expect reply message?", NULL},
10781087
{"destination", (getter)SdBusMessage_destination_getter, NULL, "Message destination service name", NULL},
10791088
{"path", (getter)SdBusMessage_path_getter, NULL, "Message destination object path", NULL},
10801089
{"interface", (getter)SdBusMessage_interface_getter, NULL, "Message destination interface name", NULL},
10811090
{"member", (getter)SdBusMessage_member_getter, NULL, "Message destination member name", NULL},
1091+
{"sender", (getter)SdBusMessage_sender_getter, NULL, "Message sender name", NULL},
10821092
{0},
10831093
};
10841094

test/test_read_write_dbus_types.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,8 @@ def test_message_properties(self) -> None:
415415
self.assertEqual(message.member,
416416
'GetUnit')
417417

418+
self.assertIsNone(message.sender)
419+
418420
def test_string_subclass(self) -> None:
419421
from enum import Enum
420422

0 commit comments

Comments
 (0)