aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Swensen <jake.swensen@smartthings.com>2023-12-19 12:42:01 -0600
committerGitHub <noreply@github.com>2023-12-19 10:42:01 -0800
commit1ce851332fd99a2336f430ab8f29c4b3df04bd5c (patch)
treefdfbed15a0be90a8aaffe9692bd8185453cf66f1
parenta7893e5da6d2cc71ee91db80d14a3e44812b27ac (diff)
downloadot-br-posix-1ce851332fd99a2336f430ab8f29c4b3df04bd5c.tar.gz
[dbus] add OTBR_PACKAGE_VERSION (#2135)
Fetch the `otbr` package version via `dbus`
-rw-r--r--src/dbus/common/constants.hpp1
-rw-r--r--src/dbus/server/dbus_thread_object.cpp13
-rw-r--r--src/dbus/server/dbus_thread_object.hpp1
-rw-r--r--src/dbus/server/introspect.xml5
4 files changed, 20 insertions, 0 deletions
diff --git a/src/dbus/common/constants.hpp b/src/dbus/common/constants.hpp
index 1d99f1d7..561be710 100644
--- a/src/dbus/common/constants.hpp
+++ b/src/dbus/common/constants.hpp
@@ -98,6 +98,7 @@
#define OTBR_DBUS_PROPERTY_RADIO_REGION "RadioRegion"
#define OTBR_DBUS_PROPERTY_SRP_SERVER_INFO "SrpServerInfo"
#define OTBR_DBUS_PROPERTY_DNSSD_COUNTERS "DnssdCounters"
+#define OTBR_DBUS_PROPERTY_OTBR_VERSION "OtbrVersion"
#define OTBR_DBUS_PROPERTY_OT_HOST_VERSION "OtHostVersion"
#define OTBR_DBUS_PROPERTY_OT_RCP_VERSION "OtRcpVersion"
#define OTBR_DBUS_PROPERTY_THREAD_VERSION "ThreadVersion"
diff --git a/src/dbus/server/dbus_thread_object.cpp b/src/dbus/server/dbus_thread_object.cpp
index a10ea2d4..70e480bc 100644
--- a/src/dbus/server/dbus_thread_object.cpp
+++ b/src/dbus/server/dbus_thread_object.cpp
@@ -240,6 +240,8 @@ otbrError DBusThreadObject::Init(void)
std::bind(&DBusThreadObject::GetMdnsTelemetryInfoHandler, this, _1));
RegisterGetPropertyHandler(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_PROPERTY_DNSSD_COUNTERS,
std::bind(&DBusThreadObject::GetDnssdCountersHandler, this, _1));
+ RegisterGetPropertyHandler(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_PROPERTY_OTBR_VERSION,
+ std::bind(&DBusThreadObject::GetOtbrVersionHandler, this, _1));
RegisterGetPropertyHandler(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_PROPERTY_OT_HOST_VERSION,
std::bind(&DBusThreadObject::GetOtHostVersionHandler, this, _1));
RegisterGetPropertyHandler(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_PROPERTY_OT_RCP_VERSION,
@@ -1499,6 +1501,17 @@ void DBusThreadObject::RegisterGetPropertyHandler(const std::string &aIn
mGetPropertyHandlers[aPropertyName] = aHandler;
}
+otError DBusThreadObject::GetOtbrVersionHandler(DBusMessageIter &aIter)
+{
+ otError error = OT_ERROR_NONE;
+ std::string version = OTBR_PACKAGE_VERSION;
+
+ SuccessOrExit(DBusMessageEncodeToVariant(&aIter, version), error = OT_ERROR_FAILED);
+
+exit:
+ return error;
+}
+
otError DBusThreadObject::GetOtHostVersionHandler(DBusMessageIter &aIter)
{
otError error = OT_ERROR_NONE;
diff --git a/src/dbus/server/dbus_thread_object.hpp b/src/dbus/server/dbus_thread_object.hpp
index 9b23bd6e..6b5e7c8b 100644
--- a/src/dbus/server/dbus_thread_object.hpp
+++ b/src/dbus/server/dbus_thread_object.hpp
@@ -155,6 +155,7 @@ private:
otError GetSrpServerInfoHandler(DBusMessageIter &aIter);
otError GetMdnsTelemetryInfoHandler(DBusMessageIter &aIter);
otError GetDnssdCountersHandler(DBusMessageIter &aIter);
+ otError GetOtbrVersionHandler(DBusMessageIter &aIter);
otError GetOtHostVersionHandler(DBusMessageIter &aIter);
otError GetOtRcpVersionHandler(DBusMessageIter &aIter);
otError GetThreadVersionHandler(DBusMessageIter &aIter);
diff --git a/src/dbus/server/introspect.xml b/src/dbus/server/introspect.xml
index ff222f86..c6f26012 100644
--- a/src/dbus/server/introspect.xml
+++ b/src/dbus/server/introspect.xml
@@ -660,6 +660,11 @@
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
</property>
+ <!-- OtbrVersion: The version string of the otbr package. -->
+ <property name="OtbrVersion" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+ </property>
+
<!-- OtHostVersion: The version string of the host build. -->
<property name="OtHostVersion" type="s" access="read">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>