diff --git a/mongoose.c b/mongoose.c index 29bd8c86e963a731cf092730c5e3448eec26b468..ae41af20782eebb7676b4487d084025489d341f4 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1509,7 +1509,7 @@ int c_vsnprintf(char *buf, size_t buf_size, const char *fmt, va_list ap) { i += c_itoa(buf + i, buf_size - i, va_arg(ap, size_t), ch == 'x' ? 16 : 10, flags, field_width); } else if (ch == 'p') { - unsigned long num = (unsigned long) va_arg(ap, void *); + unsigned long num = (unsigned long) (uintptr_t) va_arg(ap, void *); C_SNPRINTF_APPEND_CHAR('0'); C_SNPRINTF_APPEND_CHAR('x'); i += c_itoa(buf + i, buf_size - i, num, 16, flags, 0); @@ -5151,7 +5151,7 @@ void mg_send_websocket_handshake2(struct mg_connection *nc, const char *path, const char *host, const char *protocol, const char *extra_headers) { /* pretty poor source of randomness, TODO fix */ - unsigned long random = (unsigned long) path; + unsigned long random = (unsigned long) (uintptr_t) path; char key[sizeof(random) * 3]; mg_base64_encode((unsigned char *) &random, sizeof(random), key); diff --git a/mongoose.h b/mongoose.h index 27ef6fe6e05a50cca9c7dd500ee8ca39988181b9..3a7a0935e23efe3b957b25404e3ed28338362ab0 100644 --- a/mongoose.h +++ b/mongoose.h @@ -186,6 +186,9 @@ #else #define fseeko(x, y, z) fseek((x), (y), (z)) #endif +#if defined(_MSC_VER) && _MSC_VER <= 1200 +typedef unsigned long uintptr_t; +#endif typedef int socklen_t; #if _MSC_VER >= 1700 #include <stdint.h>