emuld : vmodem packet handling is fixed
authorDaiYoung Kim <daiyoung777.kim@samsung.com>
Mon, 15 Apr 2013 06:16:58 +0000 (15:16 +0900)
committerDaiYoung Kim <daiyoung777.kim@samsung.com>
Mon, 15 Apr 2013 06:16:58 +0000 (15:16 +0900)
when emuld receice the payload from vmodem, sometimes it didn,t receive complete packet

Signed-off-by: DaiYoung, Kim <daiyoung777.kim@samsung.com>
packaging/emuld.spec
src/emuld.c

index 05cbe1869f92989a406eb626f16e6e23308fb136..32ae64bceb43ca63d4fba05f8aac95cecc398086 100644 (file)
@@ -1,6 +1,6 @@
 #git:/slp/pkgs/e/emulator-daemon
 Name: emuld
-Version: 0.2.33
+Version: 0.2.34
 Release: 1
 Summary: emuld is used for communication emulator between and ide.
 License: Apache
index f547601f3b7bd629e4c62a362bf84f1dba7b4c43..508a52e1a563386da0ab104d78497ba9d7823f58 100644 (file)
@@ -181,7 +181,7 @@ void* init_vm_connect(void* data)
 {
        struct sockaddr_in vm_addr;
        int ret = -1;   
-       int connect_try_count = 0;
+       //int connect_try_count = 0;
        bool is_connected = false;
 
        set_vm_connect_status(0);
@@ -210,14 +210,14 @@ void* init_vm_connect(void* data)
                LOG("vm_sockfd: %d, connect ret: %d", g_vm_sockfd, ret);
 
                if(ret < 0) {
-                       LOG("connection failed to vmodem! try count = %d\n", connect_try_count);
+                       LOG("connection failed to vmodem! try \n");
                        sleep(1);
                }
                else
                {
                        is_connected = true;
                }
-               connect_try_count ++;
+               //connect_try_count ++;
        }
        /*
        if (!is_connected)
@@ -685,12 +685,7 @@ void client_recv(int event_fd)
                
                if(g_sdbd_sockfd != -1)
                        len = send(g_sdbd_sockfd, (void*)packet, sizeof(char) * HEADER_SIZE, 0);
-               else {
-                       free(packet);
-                       packet = NULL;
-                       return;
-               }
-
+               
                LOG("send_len: %d, next packet length: %d", len, packet->length);
 
                if(packet->length <= 0)
@@ -719,7 +714,9 @@ void client_recv(int event_fd)
                        packet = NULL;
                        return;
                }
-               len = send(g_sdbd_sockfd, r_databuf, packet->length, 0);
+
+               if(g_sdbd_sockfd != -1)
+                       len = send(g_sdbd_sockfd, r_databuf, packet->length, 0);
 
                LOG("send_len: %d", len);
        }
@@ -1077,7 +1074,7 @@ bool server_process(void)
 
 
        if(nfds < 0) {
-               fprintf(stderr, "epoll wait error\n");
+               fprintf(stderr, "epoll wait %d\n", errno);
                /* return but this is epoll wait error */
                if (errno == EINTR)
                        return false;