/*Create Socket*/
#ifdef _USE_UDS_SOCKET_
- ret = ms_ipc_create_client_socket(MS_PROTOCOL_TCP, MS_TIMEOUT_SEC_10, &sockfd, port);
+ ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, MS_TIMEOUT_SEC_10, &sockfd, port);
#else
ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, MS_TIMEOUT_SEC_10, &sockfd);
#endif
addr.sin_port = htons(port);
#endif
- if (connect(sockfd, &addr, sizeof(addr)) < 0) {
- MSAPI_DBG_ERR("connect failed [%s]",strerror(errno));
- return MS_MEDIA_ERR_SOCKET_SEND;
- }
-
- if (send(sockfd, send_msg, sizeof(*(send_msg)), 0) != sizeof(*(send_msg))) {
- MSAPI_DBG_ERR("send failed [%s]", strerror(errno));
+ if (sendto(sockfd, send_msg, sizeof(*(send_msg)), 0, (struct sockaddr *)&addr, sizeof(addr)) != sizeof(*(send_msg))) {
+ MSAPI_DBG_ERR("sendto failed [%s]", strerror(errno));
res = MS_MEDIA_ERR_SOCKET_SEND;
} else {
MSAPI_DBG("sent %d", send_msg->result);
#endif
{
int res = MS_MEDIA_ERR_NONE;
-
- if (send(sockfd, send_msg, sizeof(*(send_msg)), 0) != sizeof(*(send_msg))) {
- MSAPI_DBG_ERR("send failed [%s]", strerror(errno));
+
+ if (sendto(sockfd, send_msg, sizeof(*(send_msg)), 0, (struct sockaddr *)client_addr, sizeof(*(client_addr))) != sizeof(*(send_msg))) {
+ MSAPI_DBG_ERR("sendto failed [%s]", strerror(errno));
res = MS_MEDIA_ERR_SOCKET_SEND;
} else {
MSAPI_DBG("sent %d", send_msg->result);
int recv_msg_size;
int client_socket = -1;
#ifdef _USE_UDS_SOCKET_
- struct sockaddr_un addr, client_addr;
- unsigned int client_addr_len;
+ struct sockaddr_un addr;
#else
struct sockaddr_in addr;
#endif
addr_len = sizeof(struct sockaddr_in);
#endif
- if ((client_socket = accept(sockfd,(struct sockaddr *) &client_addr,(socklen_t *) &client_addr_len)) < 0) {
- MSAPI_DBG_ERR("accept failed [%s]",strerror(errno));
- return MS_MEDIA_ERR_SOCKET_RECEIVE;
- }
-
- if ((recv_msg_size = recv(client_socket, recv_msg, msg_size, 0)) < 0) {
- MSAPI_DBG_ERR("recv failed [%s]", strerror(errno));
+ if ((recv_msg_size = recvfrom(sockfd, recv_msg, msg_size, 0, (struct sockaddr *)&addr, &addr_len)) < 0) {
+ MSAPI_DBG_ERR("recvfrom failed [%s]", strerror(errno));
return MS_MEDIA_ERR_SOCKET_RECEIVE;
}
addr_len = sizeof(struct sockaddr_in);
#endif
- if (connected != TRUE){
-
- if ((client_socket = accept(sockfd,(struct sockaddr *) &client_addr,(socklen_t *) &client_addr_len)) < 0) {
- MSAPI_DBG_ERR("accept failed [%s]",strerror(errno));
- return MS_MEDIA_ERR_SOCKET_RECEIVE;
- }
- if ((recv_msg_size = recv(client_socket, recv_msg, msg_size, 0)) < 0) {
- MSAPI_DBG_ERR("recv failed [%s]", strerror(errno));
- return MS_MEDIA_ERR_SOCKET_RECEIVE;
- }
- } else {
- if ((recv_msg_size = recv(sockfd, recv_msg, msg_size, 0)) < 0) {
- MSAPI_DBG_ERR("recv failed [%s]", strerror(errno));
+ if ((recv_msg_size = recvfrom(sockfd, recv_msg, msg_size, 0, (struct sockaddr *)recv_addr, &addr_len)) < 0) {
+ MSAPI_DBG_ERR("recvfrom failed [%s]", strerror(errno));
+ if (errno == EWOULDBLOCK) {
+ MSAPI_DBG_ERR("recvfrom Timeout.");
+ return MS_MEDIA_ERR_SOCKET_RECEIVE_TIMEOUT;
+ } else {
+ MSAPI_DBG_ERR("recvfrom error [%s]", strerror(errno));
return MS_MEDIA_ERR_SOCKET_RECEIVE;
}
}
/*Create Socket*/
#ifdef _USE_UDS_SOCKET_
- ret = ms_ipc_create_client_socket(MS_PROTOCOL_TCP, 0, &sockfd, port);
+ ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd, port);
#else
ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd);
#endif
/*Create Socket*/
#ifdef _USE_UDS_SOCKET_
- ret = ms_ipc_create_client_socket(MS_PROTOCOL_TCP, 0, &sockfd, MS_SCAN_COMM_PORT);
+ ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd, MS_SCAN_COMM_PORT);
#else
ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd);
#endif
/*Create Socket*/
#ifdef _USE_UDS_SOCKET_
- ret = ms_ipc_create_client_socket(MS_PROTOCOL_TCP, 0, &sockfd, MS_SCAN_COMM_PORT);
+ ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd, MS_SCAN_COMM_PORT);
#else
ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd);
#endif
/*Create Socket*/
#ifdef _USE_UDS_SOCKET_
- ret = ms_ipc_create_client_socket(MS_PROTOCOL_TCP, 0, &sockfd, MS_SCAN_COMM_PORT);
+ ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd, MS_SCAN_COMM_PORT);
#else
ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd);
#endif
/*prepare socket*/
/* Create and bind new UDP socket */
- if (ms_ipc_create_server_socket(MS_PROTOCOL_TCP, MS_SCAN_DAEMON_PORT, &sockfd)
+ if (ms_ipc_create_server_socket(MS_PROTOCOL_UDP, MS_SCAN_DAEMON_PORT, &sockfd)
!= MS_MEDIA_ERR_NONE) {
MSC_DBG_ERR("Failed to create socket\n");
exit(0);
/* Create Socket*/
- ret = ms_ipc_create_server_socket(MS_PROTOCOL_TCP, MS_DB_UPDATE_PORT, &sockfd);
+ ret = ms_ipc_create_server_socket(MS_PROTOCOL_UDP, MS_DB_UPDATE_PORT, &sockfd);
if(ret != MS_MEDIA_ERR_NONE) {
MS_DBG_ERR("Failed to create socket\n");
_mkdir("/var/run/media-server",S_IRWXU | S_IRWXG | S_IRWXO);
/* Create and bind new UDP socket */
- if (ms_ipc_create_server_socket(MS_PROTOCOL_TCP, MS_SCANNER_PORT, &sockfd)
+ if (ms_ipc_create_server_socket(MS_PROTOCOL_UDP, MS_SCANNER_PORT, &sockfd)
!= MS_MEDIA_ERR_NONE) {
MS_DBG_ERR("Failed to create socket");
} else {
/*Create Socket*/
#ifdef _USE_UDS_SOCKET_
- ret = ms_ipc_create_server_socket(MS_PROTOCOL_TCP, MS_SCAN_COMM_PORT, &sockfd);
+ ret = ms_ipc_create_server_socket(MS_PROTOCOL_UDP, MS_SCAN_COMM_PORT, &sockfd);
if (ret != MS_MEDIA_ERR_NONE) {
MS_DBG_ERR("ms_ipc_create_server_socket failed [%d]",ret);
g_mutex_unlock(scanner_mutex);
int req_num;
int path_size;
int client_sock = -1;
- struct ucred cr;
- int cl = sizeof(struct ucred);
g_mutex_lock(scanner_mutex);
return TRUE;
}
- if (getsockopt(client_sock, SOL_SOCKET, SO_PEERCRED, &cr, (socklen_t *) &cl) < 0) {
- MS_DBG_ERR("Credentail information error");
- }
-
- MS_DBG("receive msg from [%d] %d, %s, uid %d", recv_msg.pid, recv_msg.msg_type, recv_msg.msg, cr.uid);
+ MS_DBG("receive msg from [%d] %d, %s, uid %d", recv_msg.pid, recv_msg.msg_type, recv_msg.msg, recv_msg.uid);
if (recv_msg.msg_size > 0 && recv_msg.msg_size < MS_FILE_PATH_LEN_MAX) {
msg_size = recv_msg.msg_size;
scan_msg.msg_type = req_num;
scan_msg.pid = pid;
scan_msg.msg_size = msg_size;
- scan_msg.uid = cr.uid;
+ scan_msg.uid = recv_msg.uid;
ms_strcopy(scan_msg.msg, path_size, "%s", recv_msg.msg);
g_mutex_unlock(scanner_mutex);
/* owner data exists */
/* send result to the owner of request */
- ms_ipc_send_msg_to_client(owner_data->client_socket, &recv_msg, owner_data->client_addr);
+ ms_ipc_send_msg_to_client(sockfd, &recv_msg, owner_data->client_addr);
+
/* free owner data*/
_ms_delete_owner(owner_data);
}
/*Create Socket*/
#ifdef _USE_UDS_SOCKET_
- ret = ms_ipc_create_client_socket(MS_PROTOCOL_TCP, 0, &sockfd, MS_SCAN_DAEMON_PORT);
+ ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd, MS_SCAN_DAEMON_PORT);
#else
ret = ms_ipc_create_client_socket(MS_PROTOCOL_UDP, 0, &sockfd);
#endif
MediaDBHandle *db_handle = NULL;
ms_comm_msg_s msg;
char * sql_query = NULL;
- uid_t uid;
- struct ucred cr;
- int cl = sizeof(struct ucred);
memset(&recv_msg, 0, sizeof(recv_msg));
// MS_DBG("msg_type[%d], msg_size[%d] msg[%s]", recv_msg.msg_type, recv_msg.msg_size, recv_msg.msg);
- if (getsockopt(client_sock, SOL_SOCKET, SO_PEERCRED, &cr, (socklen_t *) &cl) < 0) {
- MS_DBG_ERR("credential information error");
- }
-
- if ( getuid() == cr.uid ){
- uid = recv_msg.uid;
- } else {
- uid = cr.uid;
- }
-
if((recv_msg.msg_size <= 0) ||(recv_msg.msg_size > MS_FILE_PATH_LEN_MAX) || (!MS_STRING_VALID(recv_msg.msg))) {
MS_DBG_ERR("invalid query. size[%d]", recv_msg.msg_size);
return TRUE;
}
- media_db_connect(&db_handle, uid);
+ media_db_connect(&db_handle, recv_msg.uid);
sql_query = strndup(recv_msg.msg, recv_msg.msg_size);
if (sql_query != NULL) {
memset(&msg, 0x0, sizeof(ms_comm_msg_s));
msg.result = send_msg;
- ms_ipc_send_msg_to_client(client_sock, &msg, &client_addr);
+ ms_ipc_send_msg_to_client(sockfd, &msg, &client_addr);
media_db_disconnect(db_handle);
int ret = MS_MEDIA_ERR_NONE;
char * sql_query = NULL;
MediaDBHandle *db_handle = NULL;
- uid_t uid;
- struct ucred cr;
- int cl = sizeof(struct ucred);
-
+
sock = g_io_channel_unix_get_fd(src);
if (sock < 0) {
MS_DBG_ERR("sock fd is invalid!");
return TRUE;
}
- if (getsockopt(client_sock, SOL_SOCKET, SO_PEERCRED, &cr, (socklen_t *) &cl) < 0) {
- MS_DBG_ERR("credential information error");
- }
-
- if ( getuid() == cr.uid ){
- uid = recv_msg.uid;
- } else {
- uid = cr.uid;
- }
-
sql_query = strndup(recv_msg.msg, recv_msg.msg_size);
if (sql_query != NULL) {
- media_db_connect(&db_handle, uid);
+ media_db_connect(&db_handle, recv_msg.uid);
if (recv_msg.msg_type == MS_MSG_DB_UPDATE_BATCH_START) {
ret = media_db_update_db_batch_start(sql_query);
} else if(recv_msg.msg_type == MS_MSG_DB_UPDATE_BATCH_END) {
serv_port = MS_THUMB_COMM_PORT;
- if (ms_ipc_create_server_socket(MS_PROTOCOL_TCP, serv_port, &sock) < 0) {
+ if (ms_ipc_create_server_socket(MS_PROTOCOL_UDP, serv_port, &sock) < 0) {
MS_DBG_ERR("ms_ipc_create_server_socket failed");
return FALSE;
}