version 1.118, 2020/06/22 05:52:05 |
version 1.119, 2020/07/17 03:51:32 |
|
|
if (!(handle_to_flags(handle) & O_APPEND) && |
if (!(handle_to_flags(handle) & O_APPEND) && |
lseek(fd, off, SEEK_SET) == -1) { |
lseek(fd, off, SEEK_SET) == -1) { |
status = errno_to_portable(errno); |
status = errno_to_portable(errno); |
error("process_write: seek failed"); |
error("%s: seek failed", __func__); |
} else { |
} else { |
/* XXX ATOMICIO ? */ |
/* XXX ATOMICIO ? */ |
ret = write(fd, data, len); |
ret = write(fd, data, len); |
if (ret == -1) { |
if (ret == -1) { |
error("process_write: write failed"); |
error("%s: write: %s", __func__, |
|
strerror(errno)); |
status = errno_to_portable(errno); |
status = errno_to_portable(errno); |
} else if ((size_t)ret == len) { |
} else if ((size_t)ret == len) { |
status = SSH2_FX_OK; |
status = SSH2_FX_OK; |
handle_update_write(handle, ret); |
handle_update_write(handle, ret); |
} else { |
} else { |
debug2("nothing at all written"); |
debug2("%s: nothing at all written", __func__); |
status = SSH2_FX_FAILURE; |
status = SSH2_FX_FAILURE; |
} |
} |
} |
} |