diff options
author | jinran-google <jinran@google.com> | 2021-04-06 00:28:31 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-05 09:28:31 -0700 |
commit | fec07bf63c95e1be6d25c322838c0968e6fc63ca (patch) | |
tree | 732f5205c8ae2247c1bb8d7bf5518ab9310e3988 /src/dbus | |
parent | 1054bf91d2539a47eaae6a768e2cf1c4876eb605 (diff) | |
download | ot-br-posix-fec07bf63c95e1be6d25c322838c0968e6fc63ca.tar.gz |
[dbus] add "Detach" API (#767)
Diffstat (limited to 'src/dbus')
-rw-r--r-- | src/dbus/common/constants.hpp | 1 | ||||
-rw-r--r-- | src/dbus/server/dbus_thread_object.cpp | 7 | ||||
-rw-r--r-- | src/dbus/server/dbus_thread_object.hpp | 1 | ||||
-rw-r--r-- | src/dbus/server/introspect.xml | 4 |
4 files changed, 13 insertions, 0 deletions
diff --git a/src/dbus/common/constants.hpp b/src/dbus/common/constants.hpp index 2d4cc313..158ff6f1 100644 --- a/src/dbus/common/constants.hpp +++ b/src/dbus/common/constants.hpp @@ -46,6 +46,7 @@ #define OTBR_DBUS_SCAN_METHOD "Scan" #define OTBR_DBUS_ATTACH_METHOD "Attach" +#define OTBR_DBUS_DETACH_METHOD "Detach" #define OTBR_DBUS_FACTORY_RESET_METHOD "FactoryReset" #define OTBR_DBUS_RESET_METHOD "Reset" #define OTBR_DBUS_ADD_ON_MESH_PREFIX_METHOD "AddOnMeshPrefix" diff --git a/src/dbus/server/dbus_thread_object.cpp b/src/dbus/server/dbus_thread_object.cpp index f6c15be9..4e8a4680 100644 --- a/src/dbus/server/dbus_thread_object.cpp +++ b/src/dbus/server/dbus_thread_object.cpp @@ -111,6 +111,8 @@ otbrError DBusThreadObject::Init(void) std::bind(&DBusThreadObject::ScanHandler, this, _1)); RegisterMethod(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_ATTACH_METHOD, std::bind(&DBusThreadObject::AttachHandler, this, _1)); + RegisterMethod(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_DETACH_METHOD, + std::bind(&DBusThreadObject::DetachHandler, this, _1)); RegisterMethod(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_FACTORY_RESET_METHOD, std::bind(&DBusThreadObject::FactoryResetHandler, this, _1)); RegisterMethod(OTBR_DBUS_THREAD_INTERFACE, OTBR_DBUS_RESET_METHOD, @@ -287,6 +289,11 @@ void DBusThreadObject::AttachHandler(DBusRequest &aRequest) } } +void DBusThreadObject::DetachHandler(DBusRequest &aRequest) +{ + aRequest.ReplyOtResult(mNcp->GetThreadHelper()->Detach()); +} + void DBusThreadObject::FactoryResetHandler(DBusRequest &aRequest) { aRequest.ReplyOtResult(OT_ERROR_NONE); diff --git a/src/dbus/server/dbus_thread_object.hpp b/src/dbus/server/dbus_thread_object.hpp index b303ef0a..cf56f09d 100644 --- a/src/dbus/server/dbus_thread_object.hpp +++ b/src/dbus/server/dbus_thread_object.hpp @@ -86,6 +86,7 @@ private: void ScanHandler(DBusRequest &aRequest); void AttachHandler(DBusRequest &aRequest); + void DetachHandler(DBusRequest &aRequest); void LeaveHandler(DBusRequest &aRequest); void FactoryResetHandler(DBusRequest &aRequest); void ResetHandler(DBusRequest &aRequest); diff --git a/src/dbus/server/introspect.xml b/src/dbus/server/introspect.xml index 9436e59b..c9aebf39 100644 --- a/src/dbus/server/introspect.xml +++ b/src/dbus/server/introspect.xml @@ -46,6 +46,10 @@ <arg name="channel_mask" type="u"/> </method> + <!-- Detach: Detach the current device from the Thread network. --> + <method name="Detach"> + </method> + <!-- PermitUnsecureJoin: Allow joining the network via unsecure traffic temporarily. @port: The port of the unsecure traffic. @timeout: The timeout for the permission. |