From b77532ea3f82dc0b9d4aa36f517589143aa302b3 Mon Sep 17 00:00:00 2001
From: Sergey Lyubka <valenok@gmail.com>
Date: Tue, 4 Mar 2014 20:22:46 +0000
Subject: [PATCH] Added mjpg example

---
 examples/Makefile | 6 +++++-
 mongoose.c        | 4 ++++
 mongoose.h        | 2 +-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/examples/Makefile b/examples/Makefile
index 51d4ac606..d94ac8ef6 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -48,6 +48,10 @@ upload: upload.c ../mongoose.c
 auth: auth.c ../mongoose.c
 	$(CC) auth.c ../mongoose.c $(OUT) $(CFLAGS)
 
+mjpg: mjpg.c ../mongoose.c
+	$(CC) mjpg.c ../mongoose.c $(OUT) $(CFLAGS)
+
+
 websocket_html.c: websocket.html
 	perl mkdata.pl $< > $@
 
@@ -55,4 +59,4 @@ u:
 	g++ unit_test.c -Wall -W -pedantic -lssl -g -O0 $(CFLAGS_EXTRA) && ./a.out
 
 clean:
-	-@$(RM) hello upload post websocket auth server multi_threaded websocket_html.c *.exe *.dSYM *.obj .*o
+	-@$(RM) hello mjpg upload post websocket auth server multi_threaded websocket_html.c *.exe *.dSYM *.obj .*o
diff --git a/mongoose.c b/mongoose.c
index e4480a1c2..d9502ca7b 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -4783,6 +4783,10 @@ static void mg_ev_handler(struct ns_connection *nc, enum ns_event ev, void *p) {
       break;
 
     case NS_POLL:
+      if (call_user(conn, MG_POLL) == MG_TRUE) {
+        nc->flags |= NSF_FINISHED_SENDING_DATA;
+      }
+
       if (conn != NULL && conn->endpoint_type == EP_FILE) {
         transfer_file_data(conn);
       }
diff --git a/mongoose.h b/mongoose.h
index c430ff9ab..734147557 100644
--- a/mongoose.h
+++ b/mongoose.h
@@ -58,7 +58,7 @@ struct mg_connection {
 };
 
 struct mg_server; // Opaque structure describing server instance
-enum mg_result { MG_FALSE, MG_TRUE };
+enum mg_result { MG_FALSE, MG_TRUE, MG_MORE };
 enum mg_event {
   MG_POLL = 100,  // Callback return value is ignored
   MG_CONNECT,     // If callback returns MG_FALSE, connect fails
-- 
GitLab