[OTP] Fix Object Read logic 22/131522/1
authorGowtham Anandha Babu <gowtham.ab@samsung.com>
Mon, 29 May 2017 13:38:11 +0000 (19:08 +0530)
committerGowtham Anandha Babu <gowtham.ab@samsung.com>
Mon, 29 May 2017 13:38:11 +0000 (19:08 +0530)
Change-Id: I4eec15c25d44da3163f7624d4d2f63ea1421c047
Signed-off-by: Gowtham Anandha Babu <gowtham.ab@samsung.com>
bt-otp/bt-otpserver.c

index 48fce49..e59b134 100644 (file)
@@ -488,8 +488,9 @@ int _bt_otp_set_advertising_data(void)
 void _bt_otp_start_write_on_fd()
 {
        char buf[BT_L2CAP_BUFFER_LEN];
-       int written = 0;
-       int read = 0;
+       int written;
+       int read;
+       int len;
        FILE *fp;
        char file_path[BT_FILE_PATH_MAX_LEN] = {0, };
        int length;
@@ -511,31 +512,19 @@ void _bt_otp_start_write_on_fd()
 
        BT_DBG("length [%d]", oacp_read->length);
        length = oacp_read->length;
-       if (length > BT_L2CAP_BUFFER_LEN) {
-               int offset = oacp_read->offset;
-               int len = 0;
-               int written_len = 0;
-
-               while (length > 0) {
-                       if (length < BT_L2CAP_BUFFER_LEN)
-                               len = length;
-                       else
-                               len = BT_L2CAP_BUFFER_LEN;
-
-                       fseek(fp, offset, SEEK_SET);
-                       read = fread(buf, 1, len, fp);
-
-                       written = write(oacp_read->fd, buf, len);
-                       BT_DBG("read [%d], Written [%d], len [%d], offset [%d], length [%d], written_len [%d]",
-                                                                               read, written, len, offset, length, written_len);
-                       length -= len;
-                       offset += len;
-                       written_len += len;
-               }
-       } else {
-               read = fread(buf, 1, length, fp);
-               written = write(oacp_read->fd, buf, oacp_read->length);
-               BT_DBG("read [%d], Written [%d]", read, written);
+
+       while (length > 0) {
+               if (length < BT_L2CAP_BUFFER_LEN)
+                       len = length;
+               else
+                       len = BT_L2CAP_BUFFER_LEN;
+
+               read = fread(buf, 1, len, fp);
+               written = write(oacp_read->fd, buf, len);
+               length -= written;
+
+               BT_DBG("read [%d], written [%d], rem_len [%d]",
+                                               read, written, length);
        }
 
        fclose(fp);