debug: added mutex_unlock when returns and checked return value
authorJinhyung Choi <jinhyung2.choi@samsung.com>
Mon, 23 Jun 2014 01:13:10 +0000 (10:13 +0900)
committerJinhyung Choi <jinhyung2.choi@samsung.com>
Mon, 23 Jun 2014 08:17:58 +0000 (17:17 +0900)
Change-Id: I4f1ea90ac9b1745d344c525c42da7547251813cd
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
tizen/src/guest_server.c

index 93af8b193db687ca14a964cd9b46426d0eab8c7e..51f1c24dbd346b8c537b4e430677f9e9f5da5643 100644 (file)
@@ -105,8 +105,7 @@ static void send_to_sdb_client(GS_Client* client, int state)
     char buf [32];
 
     if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){
-          INFO("socket error!\n");
-          perror("socket creation is failed: ");
+          INFO("socket creation error! %d\n", errno);
           return;
     }
 
@@ -175,6 +174,7 @@ static void add_sdb_client(struct sockaddr_in* addr, int port, const char* seria
     {
         if (!strcmp(serial, cli->serial) && !strcmp(inet_ntoa(addr->sin_addr), inet_ntoa((cli->addr).sin_addr))) {
             INFO("Client cannot be duplicated.\n");
+            qemu_mutex_unlock(&mutex_clients);
             return;
         }
     }
@@ -506,14 +506,14 @@ static void server_process(void)
     int read_cnt = 0;
     struct sockaddr_in client_addr;
     socklen_t client_len;
-    char readbuf[RECV_BUF_SIZE];
+    char readbuf[RECV_BUF_SIZE + 1];
 
     client_len = sizeof(client_addr);
 
     running = 1;
 
     while (running) {
-        memset(&readbuf, 0, RECV_BUF_SIZE);
+        memset(&readbuf, 0, sizeof(readbuf));
 
         if (server_sock == 0) {
             INFO("server_sock is closed\n");
@@ -523,8 +523,7 @@ static void server_process(void)
                             (struct sockaddr*) &client_addr, &client_len);
 
         if (read_cnt < 0) {
-            INFO("fail to recvfrom in guest_server.\n");
-            perror("fail to recvfrom in guest_server.:");
+            INFO("fail to recvfrom in guest_server:%d\n", errno);
             break;
         } else {
 
@@ -581,13 +580,13 @@ static void* run_guest_server(void* args)
 {
     uint16_t port = svr_port;
     int opt = 1;
+    int ret = 0;
     struct sockaddr_in server_addr;
 
     INFO("start guest server thread.\n");
 
     if ((server_sock = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
-        INFO("create listen socket error\n");
-        perror("create listen socket error\n");
+        INFO("create listen socket error:%d\n", errno);
 
         close_server();
 
@@ -599,13 +598,17 @@ static void* run_guest_server(void* args)
     server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
     server_addr.sin_port = htons(port);
 
-       qemu_set_nonblock(server_sock);
+    qemu_set_nonblock(server_sock);
 
-    setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
+    ret = qemu_setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
+    if (ret == -1) {
+        INFO("setsockopt SO_REUSEADDR is failed.: %d\n", errno);
+        close_server();
+        return NULL;
+    }
 
     if (bind(server_sock, (struct sockaddr *) &server_addr, sizeof(server_addr)) < 0) {
-        INFO("guest server bind error: ");
-        perror("bind");
+        INFO("guest server bind error: %d", errno);
 
         close_server();