LOGD("result = %d sid: %d pgid: %d pid: %d ppid: %d", result, (int)getsid(0), (int)getpgid(0), (int)pid, (int)getppid());
/* redirect fds to /dev/null */
- if ((fd = open("/dev/null", O_RDWR)) == MUSE_ERR) {
- strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
- LOGE("Unable to open /dev/null: %s", err_msg);
+ fd = open("/dev/null", O_RDWR);
+ if (!muse_core_fd_is_valid(fd)) {
+ LOGE("Critial Error : %d is invalid", fd);
exit(EXIT_SUCCESS);
}
fd = open(path, O_WRONLY | O_CREAT, (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH));
- if (fd < 0) {
+ if (!muse_core_fd_is_valid(fd)) {
strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
LOGE("Fail to open pidfile [%s] : %s", path, err_msg);
return MM_ERROR_FILE_NOT_FOUND;
return connection->instance_count[idx];
}
+void muse_server_check_fd_state(int fd)
+{
+ struct stat sb = { 0, };
+
+ if (fstat(fd, &sb) < 0) {
+ LOGE("failed to get file status");
+ return;
+ }
+
+ LOGI("[Last file access %d] %s", fd, ctime(&sb.st_atime));
+ LOGI("[Last status change] %s", ctime(&sb.st_ctime));
+ LOGI("[Last file modification] %s", ctime(&sb.st_mtime));
+}
+
int main(int argc, char **argv)
{
pid_t pid;
/* Create Socket */
fd = socket(AF_UNIX, SOCK_STREAM, 0); /* Unix Domain Socket */
- if (fd < 0) {
+ if (!muse_core_fd_is_valid(fd)) {
strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
LOGE("socket failed sock: %s", err_msg);
return MUSE_ERR;
- } else {
- LOGD("muse server fd : %d", fd);
}
+ LOGD("muse server fd : %d", fd);
+
memset(&addr_un, 0, sizeof(addr_un));
addr_un.sun_family = AF_UNIX;
strncpy(addr_un.sun_path, UDS_files[channel], sizeof(addr_un.sun_path) - 1);
socklen_t client_len;
struct sockaddr_un client_address;
muse_channel_e channel = (muse_channel_e)data;
- char err_msg[MUSE_MSG_LEN_MAX] = {'\0',};
muse_module_h m = NULL;
muse_module_h peeked_m = NULL;
muse_module_h candidate_m = NULL;
}
server_sockfd = g_io_channel_unix_get_fd(source);
+ if (!muse_core_fd_is_valid(server_sockfd)) {
+ LOGE("Critical Error : server %d is invalid", server_sockfd);
+ _ms_unlock_state();
+ muse_server_check_fd_state(STDIN_FILENO);
+ ms_respawn(SIGABRT);
+ return FALSE;
+ }
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
- if (client_sockfd == MUSE_ERR) {
- strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
- LOGE("[Critical Error : %d] accept failure : %s", errno, err_msg);
+ if (!muse_core_fd_is_valid(client_sockfd)) {
+ LOGE("Critical Error : accept %d is invalid", client_sockfd);
+ muse_server_check_fd_state(STDIN_FILENO);
+ close(server_sockfd);
_ms_unlock_state();
ms_respawn(SIGABRT);
return FALSE;
#endif
retval = muse_server->retval;
- close(muse_server->msg_fd);
- if (muse_server->data_fd > 0)
- close(muse_server->data_fd);
+ muse_core_fd_close(muse_server->msg_fd);
+ muse_core_fd_close(muse_server->data_fd);
for (idx = 0; idx < MUSE_CHANNEL_MAX; idx++) {
if (remove(UDS_files[idx]) == MUSE_ERR)
LOGE("remove %s falied", UDS_files[idx]);
for (i = 0; i < MUSE_CHANNEL_MAX; i++) {
fd[i] = _ms_new(i);
- if (fd[i] < 0) {
+ if (!muse_core_fd_is_valid(fd[i])) {
LOGE("Failed to create socket server %d", i);
for (j = 0; j < i; j++)
close(fd[j]);
if (LwipcEventDone(MUSE_SERVER_READY) < 0)
LOGE("Fail to send server ready done event");
#else
- if ((ready_fd = creat(MUSE_SERVER_READY, 0644)) != -1) {
+ ready_fd = creat(MUSE_SERVER_READY, 0644);
+ if (muse_core_fd_is_valid(ready_fd)) {
LOGD("MUSE_SERVER_READY(%s) file was created", MUSE_SERVER_READY);
close(ready_fd);
muse_server->state = MUSE_SERVER_STATE_READY;
} else {
- LOGE("Fail to create MUSE_SERVER_READY(%s)", MUSE_SERVER_READY);
+ LOGE("[%d] Fail to create MUSE_SERVER_READY(%s)", ready_fd, MUSE_SERVER_READY);
}
#endif