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 Original line Diff line number Diff line
@@ -139,59 +139,19 @@ static void restart_processes()
            });
            });
}
}


static void msg_start(const std::string& name)
void handle_control_message(const std::string& msg, 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)
{
    Service* svc = ServiceManager::GetInstance().FindServiceByName(name);
    Service* svc = ServiceManager::GetInstance().FindServiceByName(name);

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

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());
    }
    }
    }


void handle_control_message(const std::string& msg, const std::string& arg)
{
    if (msg == "start") {
    if (msg == "start") {
        msg_start(arg);
        svc->Start();
    } else if (msg == "stop") {
    } else if (msg == "stop") {
        msg_stop(arg);
        svc->Stop();
    } else if (msg == "restart") {
    } else if (msg == "restart") {
        msg_restart(arg);
        svc->Restart();
    } else {
    } else {
        ERROR("unknown control msg '%s'\n", msg.c_str());
        ERROR("unknown control msg '%s'\n", msg.c_str());
    }
    }
+1 −16
Original line number Original line 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);
    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
    // 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.
    // 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));
    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;
        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;
    std::string scon;
    if (!seclabel_.empty()) {
    if (!seclabel_.empty()) {
        scon = seclabel_;
        scon = seclabel_;
@@ -480,9 +473,6 @@ bool Service::Start(const std::vector<std::string>& dynamic_args) {
        for (const auto& s : args_) {
        for (const auto& s : args_) {
            strs.push_back(const_cast<char*>(s.c_str()));
            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);
        strs.push_back(nullptr);
        if (execve(args_[0].c_str(), (char**) &strs[0], (char**) ENV) < 0) {
        if (execve(args_[0].c_str(), (char**) &strs[0], (char**) ENV) < 0) {
            ERROR("cannot execve('%s'): %s\n", args_[0].c_str(), strerror(errno));
            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;
    return true;
}
}


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

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


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