- if (write_ret < buf->len)
- err(1, "write(fd = %d, count = %d) stopped short (returned %d)",
- fd, buf->len, (int)write_ret);
- // FIXME: handle this
- assert(write_ret == buf->len);
- return (int)write_ret;
+ if (write_ret < (ssize_t)left) {
+ nblogx("short write(fd = %d, count = %d): wrote %d",
+ fd, (int)left, (int)write_ret);
+ left -= write_ret;
+ data += write_ret;
+ continue;
+ }
+ assert(write_ret == (ssize_t)left);
+ return 1;