}
static int get_packet_data(int fd, char **src_buf, size_t *src_size,
- void *dst, unsigned size, int options)
+ void *dst, size_t size, int options)
{
- ssize_t ret;
+ size_t bytes_read;
if (fd >= 0 && src_buf && *src_buf)
BUG("multiple sources given to packet_read");
/* Read up to "size" bytes from our source, whatever it is. */
if (src_buf && *src_buf) {
- ret = size < *src_size ? size : *src_size;
- memcpy(dst, *src_buf, ret);
- *src_buf += ret;
- *src_size -= ret;
+ bytes_read = size < *src_size ? size : *src_size;
+ memcpy(dst, *src_buf, bytes_read);
+ *src_buf += bytes_read;
+ *src_size -= bytes_read;
} else {
- ret = read_in_full(fd, dst, size);
+ ssize_t ret = read_in_full(fd, dst, size);
if (ret < 0) {
if (options & PACKET_READ_GENTLE_ON_READ_ERROR)
return error_errno(_("read error"));
die_errno(_("read error"));
}
+
+ bytes_read = (size_t) ret;
}
/* And complain if we didn't get enough bytes to satisfy the read. */
- if (ret != size) {
+ if (bytes_read != size) {
if (options & PACKET_READ_GENTLE_ON_EOF)
return -1;
die(_("the remote end hung up unexpectedly"));
}
- return ret;
+ return 0;
}
int packet_length(const char lenbuf_hex[4], size_t size)