diff --git a/examples/web_server/Makefile b/examples/web_server/Makefile index ee9bc1b0..cccf2abc 100644 --- a/examples/web_server/Makefile +++ b/examples/web_server/Makefile @@ -2,7 +2,7 @@ # All rights reserved PROG = web_server -CFLAGS = -W -Wall -I../.. -pthread -g -O0 -DMONGOOSE_ENABLE_THREADS $(CFLAGS_EXTRA) +CFLAGS = -W -Wall -I../.. -g -O0 $(CFLAGS_EXTRA) SOURCES = $(PROG).c ../../mongoose.c OPENSSL_FLAGS = -DNS_ENABLE_SSL -lssl @@ -13,7 +13,10 @@ SOURCES_POLAR = $(SOURCES) $(POLARSSLCOMPAT_PATH)/polarssl_compat.c INCDIR_POLAR = -I$(POLARSSLCOMPAT_PATH) -I$(POLARSSL_PATH)/include LDFLAGS_POLAR = -L$(POLARSSL_PATH)/lib -lmbedtls CFLAGS_POLAR = $(CFLAGS) $(INCDIR_POLAR) -DNS_ENABLE_SSL -# + + +$(PROG).exe: $(SOURCES) + cl -Fo $(PROG) $(SOURCES) -nologo -MD -I../.. $(PROG): $(SOURCES) $(CC) -o $(PROG) $(SOURCES) $(CFLAGS) @@ -23,6 +26,6 @@ openssl: polarssl: $(CC) -o $(PROG) $(SOURCES_POLAR) $(LDFLAGS_POLAR) $(CFLAGS_POLAR) - + clean: rm -rf $(PROG) *.exe *.dSYM *.obj *.exp .*o *.lib diff --git a/mongoose.c b/mongoose.c index 9c372be5..07026872 100644 --- a/mongoose.c +++ b/mongoose.c @@ -63,6 +63,10 @@ #pragma warning (disable : 4204) // missing c99 support #endif +#if defined(_WIN32) && !defined(MONGOOSE_NO_CGI) +#define MONGOOSE_ENABLE_THREADS /* Windows uses stdio threads for CGI */ +#endif + #ifndef MONGOOSE_ENABLE_THREADS #define NS_DISABLE_THREADS #endif @@ -3327,7 +3331,7 @@ static void open_file_endpoint(struct connection *conn, const char *path, file_stat_t *st, const char *extra_headers) { char date[64], lm[64], etag[64], range[64], headers[1000]; const char *msg = "OK", *hdr; - time_t curtime = time(NULL); + time_t t, curtime = time(NULL); int64_t r1, r2; struct vec mime_vec; int n; @@ -3357,7 +3361,7 @@ static void open_file_endpoint(struct connection *conn, const char *path, // Prepare Etag, Date, Last-Modified headers. Must be in UTC, according to // http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3 gmt_time_string(date, sizeof(date), &curtime); - time_t t = st->st_mtime; // store in local variable for NDK compile + t = st->st_mtime; // store in local variable for NDK compile gmt_time_string(lm, sizeof(lm), &t); construct_etag(etag, sizeof(etag), st); @@ -3562,6 +3566,7 @@ static void print_dir_entry(const struct dir_entry *de) { int64_t fsize = de->st.st_size; int is_dir = S_ISDIR(de->st.st_mode); const char *slash = is_dir ? "/" : ""; + time_t t; if (is_dir) { mg_snprintf(size, sizeof(size), "%s", "[DIRECTORY]"); @@ -3578,7 +3583,7 @@ static void print_dir_entry(const struct dir_entry *de) { mg_snprintf(size, sizeof(size), "%.1fG", (double) fsize / 1073741824); } } - time_t t = de->st.st_mtime; // store in local variable for NDK compile + t = de->st.st_mtime; // store in local variable for NDK compile strftime(mod, sizeof(mod), "%d-%b-%Y %H:%M", localtime(&t)); mg_url_encode(de->file_name, strlen(de->file_name), href, sizeof(href)); mg_printf_data(&de->conn->mg_conn,