summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/state/activating_state.cpp17
-rw-r--r--src/state/initial_state.hpp9
2 files changed, 12 insertions, 14 deletions
diff --git a/src/state/activating_state.cpp b/src/state/activating_state.cpp
index 3f852c7..bc9a30b 100644
--- a/src/state/activating_state.cpp
+++ b/src/state/activating_state.cpp
@@ -39,21 +39,12 @@ std::unique_ptr<BasicState>
if (event.devState == StateChange::inserted)
{
gadget = std::make_unique<resource::Gadget>(machine, event.devState);
-
- if (gadget)
- {
- return std::make_unique<ActiveState>(machine, std::move(process),
- std::move(gadget));
- }
-
- return std::make_unique<ReadyState>(machine,
- std::errc::device_or_resource_busy,
- "Unable to configure gadget");
+ return std::make_unique<ActiveState>(machine, std::move(process),
+ std::move(gadget));
}
- return std::make_unique<ReadyState>(
- machine, std::errc::operation_not_supported,
- "Unexpected udev event: " + static_cast<int>(event.devState));
+ return std::make_unique<DeactivatingState>(machine, std::move(process),
+ std::move(gadget), event);
}
std::unique_ptr<BasicState>
diff --git a/src/state/initial_state.hpp b/src/state/initial_state.hpp
index f624d7e..fecf2b6 100644
--- a/src/state/initial_state.hpp
+++ b/src/state/initial_state.hpp
@@ -91,6 +91,9 @@ struct InitialState : public BasicStateT<InitialState>
iface->register_property("EndpointId", machine.getConfig().endPointId);
iface->register_property("Socket", machine.getConfig().unixSocket);
iface->register_property(
+ "Timeout", machine.getConfig().timeout.value_or(
+ Configuration::MountPoint::defaultTimeout));
+ iface->register_property(
"RemainingInactivityTimeout", 0,
[](const int& req, int& property) {
throw sdbusplus::exception::SdBusError(
@@ -101,7 +104,6 @@ struct InitialState : public BasicStateT<InitialState>
[& config = machine.getConfig()](const int& property) -> int {
return config.remainingInactivityTimeout.count();
});
-
iface->initialize();
}
@@ -132,6 +134,7 @@ struct InitialState : public BasicStateT<InitialState>
timerPeriod](boost::asio::yield_context yield) {
LogMsg(Logger::Info, "[App]: Unmount called on ",
machine.getName());
+
try
{
machine.emitUnmountEvent();
@@ -159,6 +162,8 @@ struct InitialState : public BasicStateT<InitialState>
}
LogMsg(Logger::Error,
"[App] timedout when waiting for ReadyState");
+ throw sdbusplus::exception::SdBusError(EBUSY,
+ "Resource is busy");
return false;
});
@@ -208,6 +213,8 @@ struct InitialState : public BasicStateT<InitialState>
}
LogMsg(Logger::Error,
"[App] timedout when waiting for ActiveState");
+ throw sdbusplus::exception::SdBusError(EBUSY,
+ "Resource is busy");
return false;
};