138
138
stat_cache_entry *sce = NULL;
141
141
if (HANDLER_ERROR == stat_cache_get_entry(srv, con, c->file.name, &sce)) {
142
142
log_error_write(srv, __FILE__, __LINE__, "sb",
143
143
strerror(errno), c->file.name);
147
147
offset = c->file.start + c->offset;
148
148
/* limit the toSend to 2^31-1 bytes in a chunk */
150
150
((1 << 30) - 1) : c->file.length - c->offset;
152
152
if (offset > sce->st.st_size) {
153
153
log_error_write(srv, __FILE__, __LINE__, "sb", "file was shrinked:", c->file.name);
158
158
if (-1 == (ifd = open(c->file.name->ptr, O_RDONLY))) {
159
159
log_error_write(srv, __FILE__, __LINE__, "ss", "open failed: ", strerror(errno));
167
167
if (-1 == sendfile(ifd, fd, offset, toSend, NULL, &r, 0)) {