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

Commit c0a21af7 authored by Elliott Hughes's avatar Elliott Hughes Committed by android-build-merger
Browse files

Merge "Remove undocumented functionality from init."

am: 4888d79a

* commit '4888d79a':
  Remove undocumented functionality from init.

Change-Id: If664570c994a4cfcfe851c56247cabcf3f07cb51
parents 07813516 4888d79a
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();