mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-28 07:28:13 +08:00
Added simplistic flow control in transfer_file_data()
This commit is contained in:
parent
c7925353e7
commit
7b37e0cb8b
11
mongoose.c
11
mongoose.c
@ -4494,8 +4494,15 @@ static void close_local_endpoint(struct connection *conn) {
|
||||
|
||||
static void transfer_file_data(struct connection *conn) {
|
||||
char buf[IOBUF_SIZE];
|
||||
int n = read(conn->endpoint.fd, buf, conn->cl < (int64_t) sizeof(buf) ?
|
||||
(int) conn->cl : (int) sizeof(buf));
|
||||
int n;
|
||||
|
||||
// If output buffer is too big, don't send anything. Wait until
|
||||
// mongoose drains already buffered data to the client.
|
||||
if (conn->ns_conn->send_iobuf.len > sizeof(buf) * 2) return;
|
||||
|
||||
// Do not send anyt
|
||||
n = read(conn->endpoint.fd, buf, conn->cl < (int64_t) sizeof(buf) ?
|
||||
(int) conn->cl : (int) sizeof(buf));
|
||||
|
||||
if (n <= 0) {
|
||||
close_local_endpoint(conn);
|
||||
|
Loading…
x
Reference in New Issue
Block a user