mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-13 10:15:00 +00:00
Using O_BINARY on win32 for uploaded files
This commit is contained in:
@@ -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)
|
||||
|
||||
+6
-3
@@ -12,9 +12,12 @@
|
||||
typedef __int64 int64_t;
|
||||
#define O_CLOEXEC 0
|
||||
#define O_EXLOCK 0
|
||||
#else
|
||||
#else
|
||||
#include <inttypes.h>
|
||||
#include <unistd.h>
|
||||
#ifndef O_BINARY
|
||||
#define O_BINARY 0
|
||||
#endif
|
||||
#endif // !_WIN32
|
||||
|
||||
#include "mongoose.h"
|
||||
@@ -27,7 +30,7 @@ static const char *html_form =
|
||||
"<input type=\"file\" name=\"file\" /> <br/>"
|
||||
"<input type=\"submit\" value=\"Upload\" />"
|
||||
"</form></body></html>";
|
||||
|
||||
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user