From c4f172a1200a58576bec2086165b58842ded6707 Mon Sep 17 00:00:00 2001
From: Sergey Lyubka <valenok@gmail.com>
Date: Tue, 3 Jun 2014 18:45:37 +0100
Subject: [PATCH] Documented mg_send_file()

---
 docs/API.md | 9 +++++++++
 mongoose.h  | 3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/docs/API.md b/docs/API.md
index 1eadcb764..125bd16b7 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 fc431886d..5f879a9e2 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);
-- 
GitLab