diff --git a/VS2012/civetweb_lua/civetweb_lua.vcxproj b/VS2012/civetweb_lua/civetweb_lua.vcxproj
index 05e803dd..aa51d32d 100644
--- a/VS2012/civetweb_lua/civetweb_lua.vcxproj
+++ b/VS2012/civetweb_lua/civetweb_lua.vcxproj
@@ -88,7 +88,7 @@
Level3
Disabled
- LUA_COMPAT_ALL;USE_LUA;USE_LUA_SQLITE3;USE_LUA_FILE_SYSTEM;USE_WEBSOCKET;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ LUA_COMPAT_ALL;USE_LUA;USE_LUA_SQLITE3;USE_LUA_FILE_SYSTEM;USE_WEBSOCKET;WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
$(ProjectDir)..\..\include;$(ProjectDir)..\..\src\third_party\lua-5.2.2\src;%(AdditionalIncludeDirectories)
diff --git a/src/civetweb.c b/src/civetweb.c
index 2a9df6a8..3708080f 100644
--- a/src/civetweb.c
+++ b/src/civetweb.c
@@ -181,6 +181,10 @@ typedef long off_t;
#define sleep(x) Sleep((x) * 1000)
#define rmdir(x) _rmdir(x)
+#if defined(USE_LUA) && defined(USE_WEBSOCKET)
+#define USE_TIMERS
+#endif
+
#if !defined(va_copy)
#define va_copy(x, y) x = y
#endif /* !va_copy MINGW #defines va_copy */
@@ -789,8 +793,12 @@ struct mg_context {
#if defined(USE_LUA) && defined(USE_WEBSOCKET)
/* linked list of shared lua websockets */
struct mg_shared_lua_websocket_list *shared_lua_websockets;
+#endif
+
+#ifdef USE_TIMERS
pthread_t timerthreadid; /* Time thread ID */
pthread_mutex_t timer_mutex; /* Protects timer lists */
+ struct timer_list *timers; /* List of timers */
#endif
};
@@ -6739,7 +6747,7 @@ static void *master_thread(void *thread_func_param)
}
#endif /* _WIN32 */
-#if defined(USE_LUA) && defined(USE_WEBSOCKET)
+#if defined(USE_TIMERS)
void timer_thread_run(void *thread_func_param)
{
struct mg_context *ctx = (struct mg_context *) thread_func_param;
@@ -6764,7 +6772,7 @@ static void *timer_thread(void *thread_func_param)
return NULL;
}
#endif /* _WIN32 */
-#endif /* USE_LUA && USE_WEBSOCKET */
+#endif /* USE_TIMERS */
static void free_context(struct mg_context *ctx)
{
@@ -6783,7 +6791,7 @@ static void free_context(struct mg_context *ctx)
/* Destroy other context global data structures mutex */
(void) pthread_mutex_destroy(&ctx->nonce_mutex);
-#if defined(USE_LUA) && defined(USE_WEBSOCKET)
+#if defined(USE_TIMERS)
(void) pthread_mutex_destroy(&ctx->timer_mutex);
#endif
@@ -6979,7 +6987,7 @@ struct mg_context *mg_start(const struct mg_callbacks *callbacks,
(void) pthread_mutex_init(&ctx->nonce_mutex, NULL);
-#if defined(USE_LUA) && defined(USE_WEBSOCKET)
+#if defined(USE_TIMERS)
(void) pthread_mutex_init(&ctx->timer_mutex, NULL);
#endif
@@ -7001,7 +7009,7 @@ struct mg_context *mg_start(const struct mg_callbacks *callbacks,
}
}
-#if defined(USE_LUA) && defined(USE_WEBSOCKET)
+#if defined(USE_TIMERS)
/* Start timer thread */
mg_start_thread_with_id(timer_thread, ctx, &ctx->timerthreadid);
#endif
diff --git a/src/mod_lua.inl b/src/mod_lua.inl
index 96499907..b9558f5f 100644
--- a/src/mod_lua.inl
+++ b/src/mod_lua.inl
@@ -734,7 +734,7 @@ static int lwebsock_write(lua_State *L)
static int lwebsocket_set_timer(lua_State *L, int is_periodic)
{
-#ifdef USE_WEBSOCKET
+#ifdef USE_TIMERS
int num_args = lua_gettop(L);
struct lua_websock_data *ws;
lua_Number timediff;
@@ -909,8 +909,10 @@ static void prepare_lua_environment(struct mg_context * ctx, struct mg_connectio
if (lua_env_type==LUA_ENV_TYPE_LUA_WEBSOCKET) {
reg_function(L, "write", lwebsock_write);
+#ifdef USE_TIMERS
reg_function(L, "set_timeout", lwebsocket_set_timeout);
reg_function(L, "set_interval", lwebsocket_set_interval);
+#endif
/* reg_conn_function(L, "send_file", lsp_send_file, conn); */
}