Snap for 11397440 from 16fbf4c447db797ebf4f9d6654b65dfc17275c01 to mainline-ipsec-release
Change-Id: I1a58bf24fd3439dd566bc35aebd2151146ff5072
diff --git a/src/android/otdaemon_server.cpp b/src/android/otdaemon_server.cpp
index 1af673a..4e695be 100644
--- a/src/android/otdaemon_server.cpp
+++ b/src/android/otdaemon_server.cpp
@@ -318,9 +318,18 @@
Status OtDaemonServer::initialize(const ScopedFileDescriptor &aTunFd, const bool enabled)
{
- otbrLogDebug("OT daemon is initialized by the binder client (tunFd=%d)", aTunFd.get());
- mTunFd = aTunFd.dup();
- mThreadEnabled = enabled ? IOtDaemon::OT_STATE_ENABLED : IOtDaemon::OT_STATE_DISABLED;
+ otbrLogInfo("OT daemon is initialized by system server (tunFd=%d, enabled=%s)",
+ aTunFd.get(), enabled ? "true" : "false");
+ mTunFd = aTunFd.dup();
+
+ if (enabled)
+ {
+ enableThread(nullptr /* aReceiver */);
+ }
+ else
+ {
+ updateThreadEnabledState(enabled, nullptr /* Receiver */);
+ }
return Status::ok();
}
@@ -328,7 +337,10 @@
void OtDaemonServer::updateThreadEnabledState(const int enabled, const std::shared_ptr<IOtStatusReceiver> &aReceiver)
{
mThreadEnabled = enabled;
- aReceiver->onSuccess();
+ if (aReceiver != nullptr)
+ {
+ aReceiver->onSuccess();
+ }
if (mCallback != nullptr)
{