mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-01 13:10:43 +00:00
Added mg_send_file()
This commit is contained in:
1 parent
23a3cc6472
commit
5bbb6fbbd5
2 files changed
+15
No files matched your search
+10
@@ -2567,6 +2567,16 @@ static void handle_file_request(struct mg_connection *conn, const char *path,
|
|||||||
(void) fclose(fp);
|
(void) fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mg_send_file(struct mg_connection *conn, const char *path) {
|
||||||
|
struct mgstat st;
|
||||||
|
if (mg_stat(path, &st) == 0) {
|
||||||
|
handle_file_request(conn, path, &st);
|
||||||
|
} else {
|
||||||
|
send_http_error(conn, 404, "Not Found", "%s", "File not found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Parse HTTP headers from the given buffer, advance buffer to the point
|
// Parse HTTP headers from the given buffer, advance buffer to the point
|
||||||
// where parsing stopped.
|
// where parsing stopped.
|
||||||
static void parse_http_headers(char **buf, struct mg_request_info *ri) {
|
static void parse_http_headers(char **buf, struct mg_request_info *ri) {
|
||||||
|
|||||||
@@ -158,6 +158,11 @@ int mg_write(struct mg_connection *, const void *buf, size_t len);
|
|||||||
int mg_printf(struct mg_connection *, const char *fmt, ...);
|
int mg_printf(struct mg_connection *, const char *fmt, ...);
|
||||||
|
|
||||||
|
|
||||||
|
// Send contents of the entire file together with HTTP headers.
|
||||||
|
// Return 1 on success, 0 on error (e.g. file does not exist).
|
||||||
|
void mg_send_file(struct mg_connection *conn, const char *path);
|
||||||
|
|
||||||
|
|
||||||
// Read data from the remote end, return number of bytes read.
|
// Read data from the remote end, return number of bytes read.
|
||||||
int mg_read(struct mg_connection *, void *buf, size_t len);
|
int mg_read(struct mg_connection *, void *buf, size_t len);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user