mirror of
https://github.com/cesanta/mongoose.git
synced 2025-01-14 01:38:01 +08:00
Added mg_send_file()
This commit is contained in:
parent
23a3cc6472
commit
5bbb6fbbd5
10
mongoose.c
10
mongoose.c
@ -2567,6 +2567,16 @@ static void handle_file_request(struct mg_connection *conn, const char *path,
|
||||
(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
|
||||
// where parsing stopped.
|
||||
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, ...);
|
||||
|
||||
|
||||
// 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.
|
||||
int mg_read(struct mg_connection *, void *buf, size_t len);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user