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:
commit
8bcb7caf0e
3 changed files with 7 additions and 63 deletions
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue