|
@@ -20,6 +20,19 @@
|
|
|
* THE SOFTWARE.
|
|
|
*/
|
|
|
|
|
|
+#if defined(__GNUC__) || defined(__MINGW32__)
|
|
|
+/* Disable unused macros warnings - not all defines are required
|
|
|
+ * for all systems and all compilers. */
|
|
|
+#pragma GCC diagnostic ignored "-Wunused-macros"
|
|
|
+/* A padding warning is just plain useless */
|
|
|
+#pragma GCC diagnostic ignored "-Wpadded"
|
|
|
+/* We must set some flags for the headers we include. These flags
|
|
|
+ * are reserved ids according to C99, so we need to disable a
|
|
|
+ * warning for that. */
|
|
|
+#pragma GCC diagnostic push
|
|
|
+#pragma GCC diagnostic ignored "-Wreserved-id-macro"
|
|
|
+#endif
|
|
|
+
|
|
|
#if defined(_WIN32)
|
|
|
#if !defined(_CRT_SECURE_NO_WARNINGS)
|
|
|
#define _CRT_SECURE_NO_WARNINGS /* Disable deprecation warning in VS2005 */
|
|
@@ -46,12 +59,21 @@
|
|
|
#ifndef __STDC_LIMIT_MACROS
|
|
|
#define __STDC_LIMIT_MACROS /* C++ wants that for INT64_MAX */
|
|
|
#endif
|
|
|
+#ifndef _DARWIN_UNLIMITED_SELECT
|
|
|
+#define _DARWIN_UNLIMITED_SELECT
|
|
|
+#endif
|
|
|
#ifdef __sun
|
|
|
#define __EXTENSIONS__ /* to expose flockfile and friends in stdio.h */
|
|
|
#define __inline inline /* not recognized on older compiler versions */
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
+#if defined(__GNUC__) || defined(__MINGW32__)
|
|
|
+/* Enable reserved-id-macro warning again. */
|
|
|
+#pragma GCC diagnostic pop
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
#if defined(USE_LUA)
|
|
|
#define USE_TIMERS
|
|
|
#endif
|
|
@@ -1599,7 +1621,6 @@ DEBUG_TRACE_FUNC(const char *func, unsigned line, const char *fmt, ...)
|
|
|
#ifdef NO_SOCKLEN_T
|
|
|
typedef int socklen_t;
|
|
|
#endif /* NO_SOCKLEN_T */
|
|
|
-#define _DARWIN_UNLIMITED_SELECT
|
|
|
|
|
|
#define IP_ADDR_STR_LEN (50) /* IPv6 hex string is 46 chars */
|
|
|
|
|
@@ -3483,8 +3504,17 @@ mg_cry_internal_impl(const struct mg_connection *conn,
|
|
|
(void)func;
|
|
|
(void)line;
|
|
|
|
|
|
+#if defined(__GNUC__) || defined(__MINGW32__)
|
|
|
+#pragma GCC diagnostic push
|
|
|
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
|
|
+#endif
|
|
|
+
|
|
|
IGNORE_UNUSED_RESULT(vsnprintf_impl(buf, sizeof(buf), fmt, ap));
|
|
|
|
|
|
+#if defined(__GNUC__) || defined(__MINGW32__)
|
|
|
+#pragma GCC diagnostic pop
|
|
|
+#endif
|
|
|
+
|
|
|
buf[sizeof(buf) - 1] = 0;
|
|
|
|
|
|
DEBUG_TRACE("mg_cry called from %s:%u: %s", func, line, buf);
|
|
@@ -3595,7 +3625,7 @@ mg_get_request_info(const struct mg_connection *conn)
|
|
|
if (!conn) {
|
|
|
return NULL;
|
|
|
}
|
|
|
-#if MG_ALLOW_USING_GET_REQUEST_INFO_FOR_RESPONSE
|
|
|
+#if defined(MG_ALLOW_USING_GET_REQUEST_INFO_FOR_RESPONSE)
|
|
|
if (conn->connection_type == CONNECTION_TYPE_RESPONSE) {
|
|
|
char txt[16];
|
|
|
struct mg_workerTLS *tls =
|
|
@@ -6511,6 +6541,14 @@ mg_send_chunk(struct mg_connection *conn,
|
|
|
}
|
|
|
|
|
|
|
|
|
+#if defined(__GNUC__) || defined(__MINGW32__)
|
|
|
+/* This block forwards format strings to printf implementations,
|
|
|
+ * so we need to disable the format-nonliteral warning. */
|
|
|
+#pragma GCC diagnostic push
|
|
|
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
/* Alternative alloc_vprintf() for non-compliant C runtimes */
|
|
|
static int
|
|
|
alloc_vprintf2(char **buf, const char *fmt, va_list ap)
|
|
@@ -6602,6 +6640,12 @@ alloc_vprintf(char **out_buf,
|
|
|
}
|
|
|
|
|
|
|
|
|
+#if defined(__GNUC__) || defined(__MINGW32__)
|
|
|
+/* Enable format-nonliteral warning again. */
|
|
|
+#pragma GCC diagnostic pop
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
static int
|
|
|
mg_vprintf(struct mg_connection *conn, const char *fmt, va_list ap)
|
|
|
{
|
|
@@ -7865,6 +7909,8 @@ mg_fgets(char *buf, size_t size, struct mg_file *filep, char **p)
|
|
|
const char *eof;
|
|
|
size_t len;
|
|
|
const char *memend;
|
|
|
+#else
|
|
|
+ (void)p; /* parameter is unused */
|
|
|
#endif
|
|
|
|
|
|
if (!filep) {
|
|
@@ -11154,6 +11200,8 @@ do_ssi_exec(struct mg_connection *conn, char *tag)
|
|
|
static int
|
|
|
mg_fgetc(struct mg_file *filep, int offset)
|
|
|
{
|
|
|
+ (void)offset; /* unused in case MG_USE_OPEN_FILE is set */
|
|
|
+
|
|
|
if (filep == NULL) {
|
|
|
return EOF;
|
|
|
}
|
|
@@ -16571,6 +16619,11 @@ mg_connect_websocket_client(const char *host,
|
|
|
"\r\n";
|
|
|
}
|
|
|
|
|
|
+#ifdef __clang__
|
|
|
+#pragma clang diagnostic push
|
|
|
+#pragma clang diagnostic ignored "-Wformat-nonliteral"
|
|
|
+#endif
|
|
|
+
|
|
|
/* Establish the client connection and request upgrade */
|
|
|
conn = mg_download(host,
|
|
|
port,
|
|
@@ -16583,6 +16636,10 @@ mg_connect_websocket_client(const char *host,
|
|
|
magic,
|
|
|
origin);
|
|
|
|
|
|
+#ifdef __clang__
|
|
|
+#pragma clang diagnostic pop
|
|
|
+#endif
|
|
|
+
|
|
|
/* Connection object will be null if something goes wrong */
|
|
|
if (conn == NULL) {
|
|
|
if (!*error_buffer) {
|
|
@@ -18330,10 +18387,7 @@ mg_get_system_info_impl(char *buffer, int buflen)
|
|
|
#if defined(__GNUC__)
|
|
|
#pragma GCC diagnostic push
|
|
|
/* Disable bogus compiler warning -Wdate-time */
|
|
|
-/* TODO: The obvious flags do not know:
|
|
|
- * #pragma GCC diagnostic ignored "-Wdate-time"
|
|
|
- * If someone knows other flags, please tell me. See also #561.
|
|
|
- */
|
|
|
+#pragma GCC diagnostic ignored "-Wdate-time"
|
|
|
#endif
|
|
|
mg_snprintf(NULL,
|
|
|
NULL,
|