diff --git a/interfaces/innerkits/init_module_engine/stub/libinit.stub.json b/interfaces/innerkits/init_module_engine/stub/libinit.stub.json index 3aba36db3fdad68c06f50888f9cabccd095c4132..de34c46e4ee59458735ec377bb55dac1abdcbb66 100644 --- a/interfaces/innerkits/init_module_engine/stub/libinit.stub.json +++ b/interfaces/innerkits/init_module_engine/stub/libinit.stub.json @@ -27,5 +27,50 @@ { "name": "GetMatchCmd" }, { "name": "AddCareContextCmdExecutor" }, { "name": "GetParameterFromCmdLine" }, - { "name": "InitSubInitContext" } + { "name": "InitSubInitContext" }, + { "name": "LE_AcceptStreamClient" }, + { "name": "LE_AddSignal" }, + { "name": "LE_CloseLoop" }, + { "name": "LE_CloseSignalTask" }, + { "name": "LE_CloseStreamTask" }, + { "name": "LE_CloseTask" }, + { "name": "LE_CreateAsyncTask" }, + { "name": "LE_CreateBuffer" }, + { "name": "LE_CreateLoop" }, + { "name": "LE_CreateSignalTask" }, + { "name": "LE_CreateStreamClient" }, + { "name": "LE_CreateStreamServer" }, + { "name": "LE_CreateTimer" }, + { "name": "LE_FreeBuffer" }, + { "name": "LE_GetBufferInfo" }, + { "name": "LE_GetDefaultLoop" }, + { "name": "LE_GetSendResult" }, + { "name": "LE_GetSocketFd" }, + { "name": "LE_GetUserData" }, + { "name": "LE_RemoveSignal" }, + { "name": "LE_RemoveWatcher" }, + { "name": "LE_RunLoop" }, + { "name": "LE_Send" }, + { "name": "LE_StartAsyncEvent" }, + { "name": "LE_StartTimer" }, + { "name": "LE_StartWatcher" }, + { "name": "LE_StopAsyncTask" }, + { "name": "LE_StopLoop" }, + { "name": "LE_StopTimer" }, + { "name": "OH_ListAddTail" }, + { "name": "OH_ListInit" }, + { "name": "OH_ListRemove" }, + { "name": "OH_ListGetCnt" }, + { "name": "OH_ListAddWithOrder" }, + { "name": "OH_ListFind" }, + { "name": "OH_ListRemoveAll" }, + { "name": "OH_ListTraversal" }, + { "name": "OH_HashMapAdd" }, + { "name": "OH_HashMapCreate" }, + { "name": "OH_HashMapDestory" }, + { "name": "OH_HashMapFind" }, + { "name": "OH_HashMapGet" }, + { "name": "OH_HashMapIsEmpty" }, + { "name": "OH_HashMapRemove" }, + { "name": "OH_HashMapTraverse" } ] diff --git a/services/loopevent/include/loop_event.h b/services/loopevent/include/loop_event.h index 7ad8c7f9194ee92af0ae322c3cf665e15d999e21..217a57ee4a63ec5f63431a6efd595689aedb3a4f 100644 --- a/services/loopevent/include/loop_event.h +++ b/services/loopevent/include/loop_event.h @@ -95,6 +95,7 @@ typedef struct { #define TASK_SERVER (0x01 << 16) #define TASK_CONNECT (0x02 << 16) #define TASK_TEST (0x01 << 24) +#define TASK_PUBLIC (0x01 << 25) // If the socket can be publicly connected typedef void (*LE_DisConnectComplete)(const TaskHandle client); typedef void (*LE_ConnectComplete)(const TaskHandle client); typedef void (*LE_SendMessageComplete)(const TaskHandle taskHandle, BufferHandle handle); diff --git a/services/loopevent/socket/le_socket.c b/services/loopevent/socket/le_socket.c index d3533c2c0e14f75e490cdb7c7c31265850e7fb03..91375ffc57032411d5a44a2893ba98afea7fe894 100644 --- a/services/loopevent/socket/le_socket.c +++ b/services/loopevent/socket/le_socket.c @@ -28,7 +28,7 @@ #include "le_utils.h" -static int CreatePipeServerSocket_(const char *server, int maxClient) +static int CreatePipeServerSocket_(const char *server, int maxClient, int public) { int listenfd = socket(PF_UNIX, SOCK_STREAM, 0); LE_CHECK(listenfd > 0, return listenfd, "Failed to create socket errno %d", errno); @@ -51,7 +51,11 @@ static int CreatePipeServerSocket_(const char *server, int maxClient) ret = listen(listenfd, maxClient); LE_CHECK(ret >= 0, close(listenfd); return ret, "Failed to listen socket error: %d", errno); - ret = chmod(server, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); + mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP; + if (public) { + mode |= S_IROTH | S_IWOTH; + } + ret = chmod(server, mode); LE_CHECK(ret == 0, return -1, "Failed to chmod %s, err %d. ", server, errno); LE_LOGV("CreatePipeSocket listen fd: %d server:%s ", listenfd, serverAddr.sun_path); return listenfd; @@ -169,7 +173,8 @@ int CreateSocket(int flags, const char *server) } } else if (type == TASK_PIPE) { if (LE_TEST_FLAGS(flags, TASK_SERVER)) { - fd = CreatePipeServerSocket_(server, LOOP_MAX_CLIENT); + fd = CreatePipeServerSocket_(server, LOOP_MAX_CLIENT, + (int)LE_TEST_FLAGS(flags, TASK_PUBLIC)); } else if (LE_TEST_FLAGS(flags, TASK_CONNECT)) { fd = CreatePipeSocket_(server); } diff --git a/services/param/linux/param_msgadp.c b/services/param/linux/param_msgadp.c index bcc9cf73441d37c18e9650b218826f4e572dc59b..f8fc1696bbfca683d2becd0d0e40bbeb14f40ff2 100644 --- a/services/param/linux/param_msgadp.c +++ b/services/param/linux/param_msgadp.c @@ -49,7 +49,7 @@ int ParamServerCreate(ParamTaskPtr *stream, const ParamStreamInfo *streamInfo) PARAM_CHECK(stream != NULL && streamInfo != NULL, return -1, "Invalid param"); PARAM_CHECK(streamInfo->incomingConnect != NULL, return -1, "Invalid incomingConnect"); LE_StreamServerInfo info = {}; - info.baseInfo.flags = TASK_STREAM | TASK_PIPE | TASK_SERVER; + info.baseInfo.flags = TASK_STREAM | TASK_PIPE | TASK_SERVER | TASK_PUBLIC; info.server = streamInfo->server; info.baseInfo.close = streamInfo->close; info.incommingConnect = streamInfo->incomingConnect;