From: Gowtham Anandha Babu Date: Mon, 29 May 2017 13:38:11 +0000 (+0530) Subject: [OTP] Fix Object Read logic X-Git-Tag: accepted/tizen/unified/20170613.194514~4 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git;a=commitdiff_plain;h=91d19d6876fd03126c12ceaff758731f6c18f717 [OTP] Fix Object Read logic Change-Id: I4eec15c25d44da3163f7624d4d2f63ea1421c047 Signed-off-by: Gowtham Anandha Babu --- diff --git a/bt-otp/bt-otpserver.c b/bt-otp/bt-otpserver.c index 48fce49..e59b134 100644 --- a/bt-otp/bt-otpserver.c +++ b/bt-otp/bt-otpserver.c @@ -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);