mirror of
https://github.com/cesanta/mongoose.git
synced 2025-01-15 02:08:08 +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) 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);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user