diff --git a/docs/Embed.md b/docs/Embed.md index 3fd14f760c39402c508b5b3509c462fa31f6750b..caa529a51b3e41473f5a7f102d8782a6b37a3e3d 100644 --- a/docs/Embed.md +++ b/docs/Embed.md @@ -71,16 +71,20 @@ The sequence of events for every connection is this: certain prefix, and let Mongoose serve all static files. If event handler decides to serve the request, but doesn't have all the data at the moment, it should return `MG_MORE`. That tells - Mongoose to send `MG_POLL` events on each iteration of `mg_poll_server()` + Mongoose to keep the connection open after callback returns. `mg_connection::connection_param` pointer is a placeholder to keep user-specific data. For example, handler could decide to open a DB connection and store DB connection handle in `connection_param`. - * `MG_POLL` is sent only to those connections which returned `MG_MORE`. - Event handler should try to complete the reply. If reply is completed, - then event handler should return `MG_TRUE`. Otherwise, it should - return `MG_FALSE`, and polling will continue until - handler returns `MG_TRUE`. + * `MG_POLL` is sent to every connection on every iteration of + `mg_poll_server()`. Event handler should return `MG_FALSE` to ignore + this event. If event handler returns `MG_TRUE`, then Mongoose assumes + that event handler has finished sending data, and Mongoose will + close the connection. + * `MG_HTTP_ERROR` sent when Mongoose is about to send HTTP error back + to the client. Event handler can choose to send a reply itself, in which + case event handler must return `MG_TRUE`. Otherwise, event handler must + return `MG_FALSE` * `MG_CLOSE` is sent when the connection is closed. This event is used to cleanup per-connection state stored in `connection_param` if it was allocated.