summaryrefslogtreecommitdiffstats
path: root/video_in_hal/systemservice/task_manager/server/src/tskm_comm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'video_in_hal/systemservice/task_manager/server/src/tskm_comm.cpp')
-rwxr-xr-xvideo_in_hal/systemservice/task_manager/server/src/tskm_comm.cpp402
1 files changed, 0 insertions, 402 deletions
diff --git a/video_in_hal/systemservice/task_manager/server/src/tskm_comm.cpp b/video_in_hal/systemservice/task_manager/server/src/tskm_comm.cpp
deleted file mode 100755
index b177b9b..0000000
--- a/video_in_hal/systemservice/task_manager/server/src/tskm_comm.cpp
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _GNU_SOURCE
-#warning "_GNU_SOURCE not defined, so define here"
-#define _GNU_SOURCE
-#endif
-#include "tskm_comm.h"
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <native_service/cl_monitor.h>
-
-#include "tskm_debug.h"
-#include "tskm_util.h"
-
-
-/**********************************************************
- * Internal functions
- **********************************************************/
-TSKM_STATIC TSKM_SRV_CONNENT_t*
-addConnFd(TSKM_SRV_CONNENT_LIST_t* list, TSKM_SRV_CONNENT_t* conn) {
- TSKM_SRV_CONNENT_t* retConn;
- if (list->num >= TSKM_COMM_CONNECT_MAX) {
- TSKM_ASSERT(0)
- return NULL;
- }
-
- retConn = &list->conn[list->num];
- list->conn[list->num] = *conn;
- list->num++;
- return retConn;
-}
-
-TSKM_STATIC void delConnFd(TSKM_SRV_CONNENT_LIST_t* list,
- TSKM_SRV_CONNENT_t* conn) {
- uint32_t ii;
- TSKM_BOOL_t isFind = TSKM_FALSE;
- for (ii = 0; ii < list->num; ii++) {
- if (!isFind && list->conn[ii].connFd == conn->connFd) {
- isFind = TSKM_TRUE;
- list->num--;
- }
-
- if (isFind && (ii < list->num)) {
- list->conn[ii] = list->conn[ii + 1];
- }
- }
- TSKM_ASSERT(isFind);
-}
-
-/**********************************************************
- * Public functions
- **********************************************************/
-TSKM_ERR_t tskm_srvSockCreate(const char *sockName,
- TSKM_SRV_SOCK_CTX_t* p_sock) {
- int fd = -1;
- int ret;
- int sockRet;
- int enable = 1;
- int listenNum = TSKM_COMM_CONNECT_MAX;
-
- struct sockaddr_un unix_addr = { };
-
- fd = socket(AF_UNIX, SOCK_SEQPACKET, 0);
- if (fd < 0) { // LCOV_EXCL_BR_LINE 5: For processing initializing process
- // LCOV_EXCL_START 5: For processing initializing process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- if (0 == access(sockName, F_OK)) { // LCOV_EXCL_BR_LINE 5: For processing initializing process
- TSKM_ASSERT(0);
- unlink(sockName);
- }
-
- unix_addr.sun_family = AF_UNIX;
- strncpy(unix_addr.sun_path, sockName, sizeof(unix_addr.sun_path) - 1);
-
- sockRet = bind(fd, (struct sockaddr *) &unix_addr, sizeof(unix_addr));
- if (sockRet != 0) { // LCOV_EXCL_BR_LINE 5: For processing initializing process
- // LCOV_EXCL_START 5: For processing initializing process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- ret = chmod(sockName, S_IRUSR | S_IWUSR | S_IROTH | S_IWOTH);
- if (ret != 0) { // LCOV_EXCL_BR_LINE 5: For processing initializing process
- // LCOV_EXCL_START 5: For processing initializing process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- sockRet = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable));
- if (sockRet != 0) { // LCOV_EXCL_BR_LINE 5:For processing initializing process
- // LCOV_EXCL_START 5: For processing initializing process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- sockRet = listen(fd, listenNum);
- if (sockRet != 0) { // LCOV_EXCL_BR_LINE 5: For process initialization processing
- // LCOV_EXCL_START 5: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- memset(p_sock, 0, sizeof(*p_sock));
- p_sock->sockFd = fd;
- p_sock->sockName = sockName;
-
- return TSKM_E_OK;
- // LCOV_EXCL_START 5: For process initialization processing
- ERROR:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if (fd != -1) {
- close(fd);
- }
- return TSKM_E_NG;
- // LCOV_EXCL_STOP
-}
-
-TSKM_SRV_CONNENT_t*
-tskm_srvSockConnect(TSKM_SRV_SOCK_CTX_t* p_sock) {
- int fd = -1;
- socklen_t len;
- int sockRet;
- TSKM_SRV_CONNENT_t conn;
- TSKM_SRV_CONNENT_t *retConn;
- struct ucred credent;
- struct sockaddr_un unix_addr;
-
- memset(&conn, 0, sizeof(conn));
- conn.connFd = -1;
-
- len = sizeof(unix_addr);
- fd = accept(p_sock->sockFd, (struct sockaddr*) &unix_addr,
- (socklen_t *) &len); // NOLINT (readability/casting)
- if (fd < 0) { // LCOV_EXCL_BR_LINE 5: Accept's Error-Handling Process
- // LCOV_EXCL_START 5: Accept's Error-Handling Process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
- conn.connFd = fd;
-
- len = sizeof(credent);
- sockRet = getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &credent, &len);
- if (sockRet != 0) { // LCOV_EXCL_BR_LINE 5: Getsockopt's Error-Handling Process
- // LCOV_EXCL_START 5: Getsockopt's Error-Handling Process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
- conn.pid = credent.pid;
-
- retConn = addConnFd(&p_sock->connList, &conn);
- if (retConn == NULL) { // LCOV_EXCL_BR_LINE 5: Connect's Error-Handling Process
- // LCOV_EXCL_START 5: Connect's Error-Handling Process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
- return retConn;
- // LCOV_EXCL_START 5: Error-Handling Process
- ERROR:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if (conn.connFd != -1) {
- tskm_sockDestory(conn.connFd);
- }
- return NULL;
- // LCOV_EXCL_STOP
-}
-
-void tskm_srvSockDisconnect(TSKM_SRV_SOCK_CTX_t* p_sock,
- TSKM_SRV_CONNENT_t *p_conn) {
- int fd = p_conn->connFd;
- delConnFd(&p_sock->connList, p_conn);
- tskm_sockDestory(fd);
-}
-
-void tskm_srvSockDestory(TSKM_SRV_SOCK_CTX_t* p_sock) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if (p_sock->sockFd) {
- tskm_sockDestory(p_sock->sockFd);
- p_sock->sockFd = 0;
-
- TSKM_ASSERT_ERRNO(0 == unlink(p_sock->sockName));
- }
-}
-// LCOV_EXCL_STOP
-int tskm_cliSockConnect(const char* sockName) {
- int fd = -1;
- int sockRet;
- struct sockaddr_un unix_addr = { };
-
- /* Create socket */
- fd = socket(AF_UNIX, SOCK_SEQPACKET, 0);
- if (fd < 0) { // LCOV_EXCL_BR_LINE 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- unix_addr.sun_family = AF_UNIX;
- strncpy(unix_addr.sun_path, sockName, sizeof(unix_addr.sun_path) - 1);
- sockRet = connect(fd, (struct sockaddr*) &unix_addr, sizeof(unix_addr));
- if (sockRet < 0) { // LCOV_EXCL_BR_LINE 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
- return fd;
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- ERROR:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if (fd != -1) {
- TSKM_ASSERT_ERRNO(0 == close(fd));
- }
- return -1;
- // LCOV_EXCL_STOP
-}
-
-int tskm_sockRcv(int fd, TSKM_EVENT_INFO_t* p_ev) {
- int ret;
- TSKM_EVENT_INFO_t ev;
- ret = static_cast<int>(recv(fd, &ev, sizeof(ev), 0));
-
- // LCOV_EXCL_BR_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- if (ret > (int) sizeof(ev)) { // NOLINT (readability/casting)
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- if (ret < 0) { // LCOV_EXCL_BR_LINE 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
- if (ret > 0) { // LCOV_EXCL_BR_LINE 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- TSKM_PRINTF(TSKM_LOG_MSG, "recv:%s from:%d ret:%d",
- tskm_convEvent2Str(ev.event), ev.fromPid, ret);
- }
-
- *p_ev = ev;
-
- if (p_ev->hasExtend && (0 != p_ev->extendSize)) {
- TSKM_PRINTF(TSKM_LOG_MSG, "rcv:ex(%d) ", p_ev->extendSize);
-
- p_ev->extendPrm = malloc(p_ev->extendSize);
- if (!p_ev->extendPrm) { // LCOV_EXCL_BR_LINE 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- ret = static_cast<int>(recv(fd, p_ev->extendPrm, p_ev->extendSize, 0));
-
- // LCOV_EXCL_BR_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- if (ret > (int) p_ev->extendSize) { // NOLINT (readability/casting)
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- if (ret < 0) { // LCOV_EXCL_BR_LINE 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
- }
-
- return ret;
-
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- ERROR:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return -1;
- // LCOV_EXCL_STOP
-}
-
-int tskm_sockSend(int fd, TSKM_EVENT_INFO_t* p_ev) {
- int ret;
- p_ev->fromPid = getpid();
- TSKM_PRINTF(TSKM_LOG_MSG, "send:%s ", tskm_convEvent2Str(p_ev->event));
- ret = static_cast<int>(send(fd, p_ev, sizeof(*p_ev), MSG_NOSIGNAL));
- if (ret != sizeof(*p_ev)) {
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- }
- // Because it is entered only when called from a debugging function (pri_sendDebugDumpRes)
- if (p_ev->hasExtend && p_ev->extendPrm && (0 != p_ev->extendSize)) {
- TSKM_PRINTF(TSKM_LOG_MSG, "send:ex(%d) ", p_ev->extendSize);
-
- ret = static_cast<int>(send(fd, p_ev->extendPrm, p_ev->extendSize, MSG_NOSIGNAL));
- if (ret != (int)p_ev->extendSize) { // NOLINT (readability/casting)
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- }
- }
-
- return ret;
-
- ERROR: return -1;
-}
-
-void tskm_sockDestory(int fd) {
- TSKM_ASSERT_ERRNO(0 == shutdown(fd, SHUT_RDWR));
- TSKM_ASSERT_ERRNO(0 == close(fd));
-}
-
-/******************************************************************
- * Initializing (Process)
- ******************************************************************/
-int tskm_comm_procInit(void) {
- int ret;
-
- ret = CL_MonitorInit(CL_MONITOR_INIT_USER);
-
- if (ret != 0) {
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- }
-
- return 0;
-
- // LCOV_EXCL_START 5: Checked in Death testing, but it is not reflected in the coverage and excluded
- ERROR:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return -1;
- // LCOV_EXCL_STOP
-}
-
-/*********************************************************
- * Service Error Monitoring Status Setting
- *********************************************************/
-int tskm_comm_setSvcWatchState(uint32_t id, BOOL bIsRun, uint32_t timeout) {
- int ret = 0;
-
- CL_MonitorState_t state = CL_MONITOR_STATE_SLEEP;
-
- if (bIsRun) {
- state = CL_MONITOR_STATE_RUN;
- }
-
- ret = CL_MonitorSetEntry(CL_MONITOR_TYPE_GENERIC, id, state, timeout, 0);
- if (0 != ret) {
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- }
-
- return 0;
- ERROR: return -1;
-} // LCOV_EXCL_BR_LINE 10: Final line
-