- Sometimes unexpected fd was returned from socket() on client side (eg. STDIN_FILENO, STDOUT_FILNO or STERR_FILENO)
Change-Id: I3ef8ae49fa29403307e739584a0ac5242e926dcc
if (!muse_core_fd_is_valid(sock_fd)) {
strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
LOGE("[socket failure] %d sock: %s", errno, err_msg);
+ muse_core_fd_state_dump(sock_fd);
return ret;
}
LOGI("sockfd: %d", sock_fd);
bool muse_core_msg_object_get_value(const char *key, void *jobj, muse_core_msg_type_e m_type, void *data);
void muse_core_msg_object_free(void *msg_obj);
+void muse_core_fd_state_dump(int fd);
+
#ifdef __cplusplus
}
#endif
g_mutex_unlock(&msg_lock);
}
+
+void muse_core_fd_state_dump(int fd)
+{
+ struct stat sb = { 0, };
+ char err_msg[MUSE_MSG_LEN_MAX] = {'\0',};
+
+ if (fstat(fd, &sb) < 0) {
+ strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
+ LOGE("[%d] failed to get file status %d %s", fd, errno, err_msg);
+ 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));
+}
+
Name: mused
Summary: A multimedia daemon
-Version: 0.3.23
+Version: 0.3.24
Release: 0
Group: System/Libraries
License: Apache-2.0
unsigned int muse_server_get_atomic_uint(void);
int muse_server_get_module_instance_count(int idx);
-void muse_server_check_fd_state(int fd);
-
#ifdef __cplusplus
}
#endif
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;
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);
+ muse_core_fd_state_dump(server_sockfd);
ms_respawn(SIGABRT);
return FALSE;
}
client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
if (!muse_core_fd_is_valid(client_sockfd)) {
LOGE("Critical Error : accept %d is invalid", client_sockfd);
- muse_server_check_fd_state(STDIN_FILENO);
+ muse_core_fd_state_dump(client_sockfd);
close(server_sockfd);
_ms_unlock_state();
ms_respawn(SIGABRT);