-
- status = read(sock->sd, data, (long int)size);
- DEBUG3("read(%d, %p, %ld);", sock->sd, data, size);
-
- if (status == -1) {
- RAISE4(system_error,"read(%d,%p,%d) failed: %s",
- sock->sd, data, (int)size,
- strerror(errno));
+
+ status = read(sock->sd, data + got, (long int) size);
+ XBT_DEBUG("read(%d, %p, %ld);", sock->sd, data + got, size);
+
+ if (status < 0) {
+ THROWF(system_error, 0, "read(%d,%p,%d) failed: %s",
+ sock->sd, data + got, (int) size, strerror(errno));