summaryrefslogtreecommitdiff
path: root/server/thumb-server-internal.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/thumb-server-internal.c')
-rwxr-xr-xserver/thumb-server-internal.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/server/thumb-server-internal.c b/server/thumb-server-internal.c
index 5a279d4..32fd5a3 100755
--- a/server/thumb-server-internal.c
+++ b/server/thumb-server-internal.c
@@ -37,6 +37,7 @@
#define LOG_TAG "MEDIA_THUMBNAIL_SERVER"
#define THUMB_DEFAULT_WIDTH 320
#define THUMB_DEFAULT_HEIGHT 240
+#define THUMB_BLOCK_SIZE 10240
#define THUMB_COMM_SOCK_PATH tzplatform_mkpath(TZ_SYS_RUN, "media-server/media_ipc_thumbcomm.socket")
#define THUMB_EMPTY_STR ""
@@ -135,24 +136,23 @@ gboolean _thumb_server_read_socket(GIOChannel *src, GIOCondition condition, gpoi
res_msg.dst_path[0] = '\0';
int buf_size = 0;
- int remain_size = 0;
- int head_size = sizeof(res_msg) - sizeof(unsigned char *);
+ int sending_block = 0;
+ int block_size = sizeof(res_msg) - sizeof(unsigned char *);
unsigned char *buf = NULL;
_media_thumb_set_buffer(&res_msg, &buf, &buf_size);
- remain_size = buf_size - head_size;
- if (send(client_sock, buf, head_size, 0) < 0) {
- thumb_stderror("send failed");
- } else {
- if (remain_size > 0) {
- if (send(client_sock, buf + head_size, remain_size, 0) < 0) {
- thumb_stderror("send failed");
- } else {
- thumb_dbg_slog("Sent data(%d) from %s", res_msg.thumb_size, res_msg.org_path);
- }
- } else {
- thumb_dbg_slog("Sent thumbnail(%s) from %s", res_msg.dst_path, res_msg.org_path);
+ while (buf_size > 0) {
+ if (buf_size < THUMB_BLOCK_SIZE)
+ block_size = buf_size;
+
+ if (send(client_sock, buf+sending_block, block_size, 0) < 0) {
+ thumb_stderror("send failed");
}
+
+ sending_block += block_size;
+ buf_size -= block_size;
+ if (block_size < THUMB_BLOCK_SIZE)
+ block_size = THUMB_BLOCK_SIZE;
}
SAFE_FREE(buf);