diff --git a/examples/Makefile b/examples/Makefile index 7862a994..94e40bf1 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -17,6 +17,7 @@ CLFLAGS = /MD /TC /nologo $(DBG) /W3 /DNO_SSL \ /link /incremental:no /libpath:$(MSVC)/lib /machine:IX86 windows: + $(CL) upload.c ../mongoose.c $(CLFLAGS) $(CL) hello.c ../mongoose.c $(CLFLAGS) $(CL) upload.c ../mongoose.c $(CLFLAGS) $(CL) post.c ../mongoose.c $(CLFLAGS) diff --git a/examples/upload.c b/examples/upload.c index 0111d8d3..908024f4 100644 --- a/examples/upload.c +++ b/examples/upload.c @@ -12,9 +12,12 @@ typedef __int64 int64_t; #define O_CLOEXEC 0 #define O_EXLOCK 0 -#else +#else #include #include +#ifndef O_BINARY +#define O_BINARY 0 +#endif #endif // !_WIN32 #include "mongoose.h" @@ -27,7 +30,7 @@ static const char *html_form = "
" "" ""; - + static const char *HTTP_500 = "HTTP/1.0 500 Server Error\r\n\r\n"; static void handle_file_upload(struct mg_connection *conn) { @@ -82,7 +85,7 @@ static void handle_file_upload(struct mg_connection *conn) { mg_printf(conn, "%s%s", HTTP_500, "Can't get file name"); } else if (cl <= 0) { mg_printf(conn, "%s%s", HTTP_500, "Empty file"); - } else if ((fd = open(path, O_CREAT | O_TRUNC | + } else if ((fd = open(path, O_CREAT | O_TRUNC | O_BINARY | O_WRONLY | O_EXLOCK | O_CLOEXEC)) < 0) { // We're opening the file with exclusive lock held. This guarantee us that // there is no other thread can save into the same file simultaneously.