Browse Source

[core] http_chunk_append_file_fd()

personal/stbuehler/ci-build
Glenn Strauss 3 years ago
parent
commit
470a692211
  1. 9
      src/http_chunk.c
  2. 1
      src/http_chunk.h

9
src/http_chunk.c

@ -81,13 +81,16 @@ int http_chunk_append_file(server *srv, connection *con, buffer *fn) {
struct stat st;
const int fd = http_chunk_append_file_open_fstat(srv, con, fn, &st);
if (fd < 0) return -1;
http_chunk_append_file_fd(srv, con, fn, fd, st.st_size);
return 0;
}
if (0 != st.st_size) {
http_chunk_append_file_fd_range(srv, con, fn, fd, 0, st.st_size);
void http_chunk_append_file_fd(server *srv, connection *con, buffer *fn, int fd, off_t sz) {
if (0 != sz) {
http_chunk_append_file_fd_range(srv, con, fn, fd, 0, sz);
} else {
close(fd);
}
return 0;
}
static int http_chunk_append_to_tempfile(server *srv, connection *con, const char * mem, size_t len) {

1
src/http_chunk.h

@ -8,6 +8,7 @@ int http_chunk_append_mem(server *srv, connection *con, const char * mem, size_t
int http_chunk_append_buffer(server *srv, connection *con, buffer *mem); /* may reset "mem" */
int http_chunk_transfer_cqlen(server *srv, connection *con, chunkqueue *src, size_t len);
int http_chunk_append_file(server *srv, connection *con, buffer *fn); /* copies "fn" */
void http_chunk_append_file_fd(server *srv, connection *con, buffer *fn, int fd, off_t sz);
int http_chunk_append_file_range(server *srv, connection *con, buffer *fn, off_t offset, off_t len); /* copies "fn" */
void http_chunk_close(server *srv, connection *con);

Loading…
Cancel
Save