提交 067dc111 编写于 作者: C cheng_jinsong

fix parse service cfg

Signed-off-by: Ncheng_jinsong <chengjinsong2@huawei.com>
上级 cde18501
......@@ -56,7 +56,6 @@ INIT_PUBLIC_API void SetInitLogLevel(InitLogLevel level);
INIT_PUBLIC_API int GetInitLogLevel(void);
INIT_PUBLIC_API void SetInitCommLog(InitCommLog logFunc);
INIT_PUBLIC_API void EnableInitLogFromCmdline(void);
INIT_PUBLIC_API void InitLogLevelFromPersist(void);
#define STARTUP_LOGV(domain, tag, fmt, ...) \
StartupLog(INIT_DEBUG, domain, tag, "[%s:%d]" fmt, (FILE_NAME), (__LINE__), ##__VA_ARGS__)
......
......@@ -1003,13 +1003,14 @@ void ParseAllServices(const cJSON *fileRoot)
Service *service = GetServiceByName(fieldStr);
if (service == NULL) {
service = AddService(fieldStr);
if (service == NULL) {
INIT_LOGE("Failed to add service name %s", fieldStr);
continue;
}
INIT_ERROR_CHECK(service != NULL, continue, "Failed to add service name %s", fieldStr);
} else {
INIT_LOGI("Service %s already exists, updating.", fieldStr);
#ifndef __MUSL__
continue;
#endif
}
service->pid = -1;
int ret = ParseOneService(curItem, service);
if (ret != SERVICE_SUCCESS) {
......@@ -1017,15 +1018,10 @@ void ParseAllServices(const cJSON *fileRoot)
service = NULL;
continue;
}
if (ParseServiceSocket(curItem, service) != SERVICE_SUCCESS) {
FreeServiceSocket(service->socketCfg);
service->socketCfg = NULL;
}
if (ParseServiceFile(curItem, service) != SERVICE_SUCCESS) {
FreeServiceFile(service->fileCfg);
service->fileCfg = NULL;
}
ret = ParseServiceSocket(curItem, service);
INIT_CHECK(ret == 0, FreeServiceSocket(service->socketCfg); service->socketCfg = NULL);
ret = ParseServiceFile(curItem, service);
INIT_CHECK(ret == 0, FreeServiceFile(service->fileCfg); service->fileCfg = NULL);
// Watch "/dev/console" node for starting console service ondemand.
if ((strcmp(service->name, "console") == 0) && IsOnDemandService(service)) {
if (WatchConsoleDevice(service) < 0) {
......
......@@ -146,6 +146,9 @@ ohos_executable("init") {
"//base/startup/init/interfaces/innerkits/init_module_engine:libinit_stub_versionscript",
"name") + stub_version_script_suffix
defines += [ "_GNU_SOURCE" ]
if (use_musl) {
defines += [ "__MUSL__" ]
}
install_images = [
"system",
"updater",
......
......@@ -23,7 +23,6 @@
#include <sys/time.h>
#include "init_utils.h"
#include "param/init_param.h"
#include "securec.h"
#ifdef OHOS_LITE
#ifndef INIT_LOG_INIT
......@@ -173,16 +172,3 @@ INIT_PUBLIC_API void EnableInitLogFromCmdline(void)
SetInitLogLevel(logLevel);
return;
}
INIT_PUBLIC_API void InitLogLevelFromPersist(void)
{
char logLevel[2] = {0}; // 2 is set param "persist.init.debug.loglevel" value length.
uint32_t len = sizeof(logLevel);
int ret = SystemReadParam("persist.init.debug.loglevel", logLevel, &len);
INIT_INFO_CHECK(ret == 0, return, "Can not get log level from param, keep the original loglevel.");
errno = 0;
unsigned int level = (unsigned int)strtoul(logLevel, 0, 10); // 10 is decimal
INIT_INFO_CHECK(errno == 0, return, "Failed strtoul %s, err=%d", logLevel, errno);
SetInitLogLevel(level);
return;
}
......@@ -170,6 +170,19 @@ static void DumpServiceHook(void)
return;
}
static void InitLogLevelFromPersist(void)
{
char logLevel[2] = {0}; // 2 is set param "persist.init.debug.loglevel" value length.
uint32_t len = sizeof(logLevel);
int ret = SystemReadParam("persist.init.debug.loglevel", logLevel, &len);
INIT_INFO_CHECK(ret == 0, return, "Can not get log level from param, keep the original loglevel.");
errno = 0;
unsigned int level = (unsigned int)strtoul(logLevel, 0, 10); // 10 is decimal
INIT_INFO_CHECK(errno == 0, return, "Failed strtoul %s, err=%d", logLevel, errno);
SetInitLogLevel(level);
return;
}
static int InitDebugHook(const HOOK_INFO *info, void *cookie)
{
UNUSED(info);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册