diff --git a/docs/API.md b/docs/API.md index 1eadcb7645593a4cc93fab6700a9118778f8c69c..125bd16b7cc6617622e1995efcaff1d1d5d71f0f 100644 --- a/docs/API.md +++ b/docs/API.md @@ -169,6 +169,15 @@ a response body. Mongoose provides functions for all three parts: send data in pieces by saving state in `struct mg_connection::connection_param` variable and returning `0`. Then Mongoose will call a handler repeatedly after each socket write. + + void mg_send_file(struct mg_connection *, const char *path); + +Signals Mongoose to serve given file. Mongoose handles file according to +it's extensions, i.e. Mongoose will invoke CGI script if `path` has CGI +extension, it'll render SSI file if `path` has SSI extension, etc. If `path` +points to a directory, Mongoose will show directory listing. If this function +is used, no calls to `mg_send*` or `mg_printf*` functions must be made, and +event handler must return `MG_MORE`. <!-- --> diff --git a/mongoose.h b/mongoose.h index fc431886da4c283f71823d7a9b8664e7028604fd..5f879a9e21bbd90069f94081235e1f95338cb8df 100644 --- a/mongoose.h +++ b/mongoose.h @@ -108,6 +108,8 @@ size_t mg_websocket_write(struct mg_connection *, int opcode, const char *data, size_t data_len); size_t mg_websocket_printf(struct mg_connection* conn, int opcode, const char *fmt, ...); + +void mg_send_file(struct mg_connection *, const char *path); const char *mg_get_header(const struct mg_connection *, const char *name); const char *mg_get_mime_type(const char *name, const char *default_mime_type); @@ -120,7 +122,6 @@ int mg_parse_multipart(const char *buf, int buf_len, const char **data, int *data_len); // Utility functions -void mg_send_file(struct mg_connection *, const char *path); void *mg_start_thread(void *(*func)(void *), void *param); char *mg_md5(char buf[33], ...); int mg_authorize_digest(struct mg_connection *c, FILE *fp);