Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4888d79a authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Remove undocumented functionality from init."

parents 52eb93ca bdeac39a
Loading
Loading
Loading
Loading
+6 −46
Original line number Diff line number Diff line
@@ -139,59 +139,19 @@ static void restart_processes()
            });
}

static void msg_start(const std::string& name)
{
    Service* svc = nullptr;
    std::vector<std::string> vargs;

    size_t colon_pos = name.find(':');
    if (colon_pos == std::string::npos) {
        svc = ServiceManager::GetInstance().FindServiceByName(name);
    } else {
        std::string service_name(name.substr(0, colon_pos));
        std::string args(name.substr(colon_pos + 1));
        vargs = android::base::Split(args, " ");

        svc = ServiceManager::GetInstance().FindServiceByName(service_name);
    }

    if (svc) {
        svc->Start(vargs);
    } else {
        ERROR("no such service '%s'\n", name.c_str());
    }
}

static void msg_stop(const std::string& name)
{
void handle_control_message(const std::string& msg, const std::string& name) {
    Service* svc = ServiceManager::GetInstance().FindServiceByName(name);

    if (svc) {
        svc->Stop();
    } else {
    if (svc == nullptr) {
        ERROR("no such service '%s'\n", name.c_str());
    }
}

static void msg_restart(const std::string& name)
{
    Service* svc = ServiceManager::GetInstance().FindServiceByName(name);

    if (svc) {
        svc->Restart();
    } else {
        ERROR("no such service '%s'\n", name.c_str());
    }
        return;
    }

void handle_control_message(const std::string& msg, const std::string& arg)
{
    if (msg == "start") {
        msg_start(arg);
        svc->Start();
    } else if (msg == "stop") {
        msg_stop(arg);
        svc->Stop();
    } else if (msg == "restart") {
        msg_restart(arg);
        svc->Restart();
    } else {
        ERROR("unknown control msg '%s'\n", msg.c_str());
    }
+1 −16
Original line number Diff line number Diff line
@@ -316,7 +316,7 @@ bool Service::HandleLine(const std::vector<std::string>& args, std::string* err)
    return (this->*handler)(args, err);
}

bool Service::Start(const std::vector<std::string>& dynamic_args) {
bool Service::Start() {
    // Starting a service removes it from the disabled or reset state and
    // immediately takes it out of the restarting state if it was in there.
    flags_ &= (~(SVC_DISABLED|SVC_RESTARTING|SVC_RESET|SVC_RESTART|SVC_DISABLED_START));
@@ -352,13 +352,6 @@ bool Service::Start(const std::vector<std::string>& dynamic_args) {
        return false;
    }

    if ((!(flags_ & SVC_ONESHOT)) && !dynamic_args.empty()) {
        ERROR("service '%s' must be one-shot to use dynamic args, disabling\n",
              args_[0].c_str());
        flags_ |= SVC_DISABLED;
        return false;
    }

    std::string scon;
    if (!seclabel_.empty()) {
        scon = seclabel_;
@@ -480,9 +473,6 @@ bool Service::Start(const std::vector<std::string>& dynamic_args) {
        for (const auto& s : args_) {
            strs.push_back(const_cast<char*>(s.c_str()));
        }
        for (const auto& s : dynamic_args) {
            strs.push_back(const_cast<char*>(s.c_str()));
        }
        strs.push_back(nullptr);
        if (execve(args_[0].c_str(), (char**) &strs[0], (char**) ENV) < 0) {
            ERROR("cannot execve('%s'): %s\n", args_[0].c_str(), strerror(errno));
@@ -511,11 +501,6 @@ bool Service::Start(const std::vector<std::string>& dynamic_args) {
    return true;
}

bool Service::Start() {
    const std::vector<std::string> null_dynamic_args;
    return Start(null_dynamic_args);
}

bool Service::StartIfNotDisabled() {
    if (!(flags_ & SVC_DISABLED)) {
        return Start();
+0 −1
Original line number Diff line number Diff line
@@ -76,7 +76,6 @@ public:
            const std::string& seclabel,  const std::vector<std::string>& args);

    bool HandleLine(const std::vector<std::string>& args, std::string* err);
    bool Start(const std::vector<std::string>& dynamic_args);
    bool Start();
    bool StartIfNotDisabled();
    bool Enable();