|
@@ -2160,7 +2160,7 @@ static int pull_all(FILE *fp, struct mg_connection *conn, char *buf, int len)
|
|
|
|
|
|
int mg_read(struct mg_connection *conn, void *buf, size_t len)
|
|
int mg_read(struct mg_connection *conn, void *buf, size_t len)
|
|
{
|
|
{
|
|
- int n, buffered_len, nread;
|
|
|
|
|
|
+ int64_t n, buffered_len, nread;
|
|
const char *body;
|
|
const char *body;
|
|
|
|
|
|
/* If Content-Length is not set, read until socket is closed */
|
|
/* If Content-Length is not set, read until socket is closed */
|
|
@@ -2179,10 +2179,10 @@ int mg_read(struct mg_connection *conn, void *buf, size_t len)
|
|
|
|
|
|
/* Return buffered data */
|
|
/* Return buffered data */
|
|
body = conn->buf + conn->request_len + conn->consumed_content;
|
|
body = conn->buf + conn->request_len + conn->consumed_content;
|
|
- buffered_len = (int)(&conn->buf[conn->data_len] - body);
|
|
|
|
|
|
+ buffered_len = (int64_t)(&conn->buf[conn->data_len] - body);
|
|
if (buffered_len > 0) {
|
|
if (buffered_len > 0) {
|
|
if (len < (size_t) buffered_len) {
|
|
if (len < (size_t) buffered_len) {
|
|
- buffered_len = (int) len;
|
|
|
|
|
|
+ buffered_len = (int64_t) len;
|
|
}
|
|
}
|
|
memcpy(buf, body, (size_t) buffered_len);
|
|
memcpy(buf, body, (size_t) buffered_len);
|
|
len -= buffered_len;
|
|
len -= buffered_len;
|
|
@@ -2193,7 +2193,7 @@ int mg_read(struct mg_connection *conn, void *buf, size_t len)
|
|
|
|
|
|
/* We have returned all buffered data. Read new data from the remote
|
|
/* We have returned all buffered data. Read new data from the remote
|
|
socket. */
|
|
socket. */
|
|
- n = pull_all(NULL, conn, (char *) buf, (int) len);
|
|
|
|
|
|
+ n = pull_all(NULL, conn, (char *) buf, (int64_t) len);
|
|
nread = n >= 0 ? nread + n : n;
|
|
nread = n >= 0 ? nread + n : n;
|
|
}
|
|
}
|
|
return nread;
|
|
return nread;
|