- *buf = para_malloc(size * sizeof(char));
- p = *buf;
- while ((ret = read(fd, p, chunk_size)) > 0) {
- p += ret;
- if ((p - *buf) + chunk_size >= size) {
- char *tmp;
-
+ for (;;) {
+ ret = recv_bin_buffer(fd, buf + received, chunk_size);
+ if (ret <= 0)
+ break;
+ received += ret;
+ if (received + chunk_size >= size) {