Merge "Remove undocumented functionality from init." into nyc-dev

am: 27fe8c9

* commit '27fe8c904b0e63b047ac90380b6b2433fcec930d':
  Remove undocumented functionality from init.

Change-Id: I3893df1ca5d16e72368f8990baea2395781af24d
This commit is contained in:
Elliott Hughes 2016-04-13 14:51:01 +00:00 committed by android-build-merger
commit 8bcb7caf0e
3 changed files with 7 additions and 63 deletions

View file

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

View file

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

View file

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