changeset 3476:04bdc9a17c1b

merge
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 31 Jul 2019 14:12:47 +0200
parents 72e809e57ba4 (diff) 3355a2c060c4 (current diff)
children a4f2354f04c3
files
diffstat 1 files changed, 98 insertions(+), 98 deletions(-) [+]
line wrap: on
line diff
--- a/Resources/Patches/mongoose-3.8-patch.diff	Mon Jul 15 16:48:36 2019 +0200
+++ b/Resources/Patches/mongoose-3.8-patch.diff	Wed Jul 31 14:12:47 2019 +0200
@@ -1,106 +1,106 @@
---- mongoose.c.orig	2019-01-14 13:06:27.147098524 +0100
-+++ mongoose.c	2019-01-14 12:44:35.331361929 +0100
+--- mongoose.c.orig	2019-07-31 14:06:36.043726677 +0200
++++ mongoose.c	2019-07-31 14:10:06.767727652 +0200
 @@ -50,6 +50,14 @@
- #define PATH_MAX FILENAME_MAX
- #endif // __SYMBIAN32__
- 
-+#if __gnu_hurd__ == 1
-+/**
-+ * There is no limit on the length on a path under GNU Hurd, so we set
-+ * it to an arbitrary constant.
-+ **/
-+#define PATH_MAX 4096
-+#endif
-+
- #ifndef _WIN32_WCE // Some ANSI #includes are not available on Windows CE
- #include <sys/types.h>
- #include <sys/stat.h>
+ #define PATH_MAX FILENAME_MAX
+ #endif // __SYMBIAN32__
+ 
++#if __gnu_hurd__ == 1
++/**
++ * There is no limit on the length on a path under GNU Hurd, so we set
++ * it to an arbitrary constant.
++ **/
++#define PATH_MAX 4096
++#endif
++
+ #ifndef _WIN32_WCE // Some ANSI #includes are not available on Windows CE
+ #include <sys/types.h>
+ #include <sys/stat.h>
 @@ -108,8 +116,9 @@
- #define strtoll(x, y, z) _atoi64(x)
- #else
- #define __func__  __FUNCTION__
--#define strtoull(x, y, z) _strtoui64(x, y, z)
--#define strtoll(x, y, z) _strtoi64(x, y, z)
-+#include <stdlib.h>
-+//#define strtoull(x, y, z) _strtoui64(x, y, z)
-+//#define strtoll(x, y, z) _strtoi64(x, y, z)
- #endif // _MSC_VER
- 
- #define ERRNO   GetLastError()
+ #define strtoll(x, y, z) _atoi64(x)
+ #else
+ #define __func__  __FUNCTION__
+-#define strtoull(x, y, z) _strtoui64(x, y, z)
+-#define strtoll(x, y, z) _strtoi64(x, y, z)
++#include <stdlib.h>
++//#define strtoull(x, y, z) _strtoui64(x, y, z)
++//#define strtoll(x, y, z) _strtoi64(x, y, z)
+ #endif // _MSC_VER
+ 
+ #define ERRNO   GetLastError()
 @@ -2997,19 +3006,19 @@
-   }
- }
- 
--static int is_valid_http_method(const char *method) {
--  return !strcmp(method, "GET") || !strcmp(method, "POST") ||
-+static int is_valid_http_method(const char *method, int *isValidHttpMethod) {
-+  *isValidHttpMethod = !strcmp(method, "GET") || !strcmp(method, "POST") ||
-     !strcmp(method, "HEAD") || !strcmp(method, "CONNECT") ||
-     !strcmp(method, "PUT") || !strcmp(method, "DELETE") ||
-     !strcmp(method, "OPTIONS") || !strcmp(method, "PROPFIND")
--    || !strcmp(method, "MKCOL")
--          ;
-+    || !strcmp(method, "MKCOL");
-+  return *isValidHttpMethod;
- }
- 
- // Parse HTTP request, fill in mg_request_info structure.
- // This function modifies the buffer by NUL-terminating
- // HTTP request components, header names and header values.
--static int parse_http_message(char *buf, int len, struct mg_request_info *ri) {
-+static int parse_http_message(char *buf, int len, struct mg_request_info *ri, int *isValidHttpMethod) {
-   int is_request, request_length = get_request_len(buf, len);
-   if (request_length > 0) {
-     // Reset attributes. DO NOT TOUCH is_ssl, remote_ip, remote_port
+   }
+ }
+ 
+-static int is_valid_http_method(const char *method) {
+-  return !strcmp(method, "GET") || !strcmp(method, "POST") ||
++static int is_valid_http_method(const char *method, int *isValidHttpMethod) {
++  *isValidHttpMethod = !strcmp(method, "GET") || !strcmp(method, "POST") ||
+     !strcmp(method, "HEAD") || !strcmp(method, "CONNECT") ||
+     !strcmp(method, "PUT") || !strcmp(method, "DELETE") ||
+     !strcmp(method, "OPTIONS") || !strcmp(method, "PROPFIND")
+-    || !strcmp(method, "MKCOL")
+-          ;
++    || !strcmp(method, "MKCOL");
++  return *isValidHttpMethod;
+ }
+ 
+ // Parse HTTP request, fill in mg_request_info structure.
+ // This function modifies the buffer by NUL-terminating
+ // HTTP request components, header names and header values.
+-static int parse_http_message(char *buf, int len, struct mg_request_info *ri) {
++static int parse_http_message(char *buf, int len, struct mg_request_info *ri, int *isValidHttpMethod) {
+   int is_request, request_length = get_request_len(buf, len);
+   if (request_length > 0) {
+     // Reset attributes. DO NOT TOUCH is_ssl, remote_ip, remote_port
 @@ -3025,7 +3034,7 @@
-     ri->request_method = skip(&buf, " ");
-     ri->uri = skip(&buf, " ");
-     ri->http_version = skip(&buf, "\r\n");
--    if (((is_request = is_valid_http_method(ri->request_method)) &&
-+    if (((is_request = is_valid_http_method(ri->request_method, isValidHttpMethod)) &&
-          memcmp(ri->http_version, "HTTP/", 5) != 0) ||
-         (!is_request && memcmp(ri->request_method, "HTTP/", 5)) != 0) {
-       request_length = -1;
+     ri->request_method = skip(&buf, " ");
+     ri->uri = skip(&buf, " ");
+     ri->http_version = skip(&buf, "\r\n");
+-    if (((is_request = is_valid_http_method(ri->request_method)) &&
++    if (((is_request = is_valid_http_method(ri->request_method, isValidHttpMethod)) &&
+          memcmp(ri->http_version, "HTTP/", 5) != 0) ||
+         (!is_request && memcmp(ri->request_method, "HTTP/", 5)) != 0) {
+       request_length = -1;
 @@ -4930,7 +4939,7 @@
-   return uri[0] == '/' || (uri[0] == '*' && uri[1] == '\0');
- }
- 
--static int getreq(struct mg_connection *conn, char *ebuf, size_t ebuf_len) {
-+static int getreq(struct mg_connection *conn, char *ebuf, size_t ebuf_len, int *isValidHttpMethod) {
-   const char *cl;
- 
-   ebuf[0] = '\0';
+   return uri[0] == '/' || (uri[0] == '*' && uri[1] == '\0');
+ }
+ 
+-static int getreq(struct mg_connection *conn, char *ebuf, size_t ebuf_len) {
++static int getreq(struct mg_connection *conn, char *ebuf, size_t ebuf_len, int *isValidHttpMethod) {
+   const char *cl;
+ 
+   ebuf[0] = '\0';
 @@ -4944,7 +4953,7 @@
-   } else if (conn->request_len <= 0) {
-     snprintf(ebuf, ebuf_len, "%s", "Client closed connection");
-   } else if (parse_http_message(conn->buf, conn->buf_size,
--                                &conn->request_info) <= 0) {
-+                                &conn->request_info, isValidHttpMethod) <= 0) {
-     snprintf(ebuf, ebuf_len, "Bad request: [%.*s]", conn->data_len, conn->buf);
-   } else {
-     // Request is valid
+   } else if (conn->request_len <= 0) {
+     snprintf(ebuf, ebuf_len, "%s", "Client closed connection");
+   } else if (parse_http_message(conn->buf, conn->buf_size,
+-                                &conn->request_info) <= 0) {
++                                &conn->request_info, isValidHttpMethod) <= 0) {
+     snprintf(ebuf, ebuf_len, "Bad request: [%.*s]", conn->data_len, conn->buf);
+   } else {
+     // Request is valid
 @@ -4973,7 +4982,8 @@
-   } else if (mg_vprintf(conn, fmt, ap) <= 0) {
-     snprintf(ebuf, ebuf_len, "%s", "Error sending request");
-   } else {
--    getreq(conn, ebuf, ebuf_len);
-+    int isValidHttpMethod = 1; /* unused in this case */
-+    getreq(conn, ebuf, ebuf_len, &isValidHttpMethod);
-   }
-   if (ebuf[0] != '\0' && conn != NULL) {
-     mg_close_connection(conn);
+   } else if (mg_vprintf(conn, fmt, ap) <= 0) {
+     snprintf(ebuf, ebuf_len, "%s", "Error sending request");
+   } else {
+-    getreq(conn, ebuf, ebuf_len);
++    int isValidHttpMethod = 1; /* unused in this case */
++    getreq(conn, ebuf, ebuf_len, &isValidHttpMethod);
+   }
+   if (ebuf[0] != '\0' && conn != NULL) {
+     mg_close_connection(conn);
 @@ -4995,8 +5005,13 @@
-   // to crule42.
-   conn->data_len = 0;
-   do {
--    if (!getreq(conn, ebuf, sizeof(ebuf))) {
-+    int isValidHttpMethod = 1;
-+    if (!getreq(conn, ebuf, sizeof(ebuf), &isValidHttpMethod)) {
-+      if (isValidHttpMethod) {
-       send_http_error(conn, 500, "Server Error", "%s", ebuf);
-+      } else {
-+        send_http_error(conn, 400, "Bad Request", "%s", ebuf);
-+      }
-       conn->must_close = 1;
-     } else if (!is_valid_uri(conn->request_info.uri)) {
-       snprintf(ebuf, sizeof(ebuf), "Invalid URI: [%s]", ri->uri);
+   // to crule42.
+   conn->data_len = 0;
+   do {
+-    if (!getreq(conn, ebuf, sizeof(ebuf))) {
++    int isValidHttpMethod = 1;
++    if (!getreq(conn, ebuf, sizeof(ebuf), &isValidHttpMethod)) {
++      if (isValidHttpMethod) {
+       send_http_error(conn, 500, "Server Error", "%s", ebuf);
++      } else {
++        send_http_error(conn, 400, "Bad Request", "%s", ebuf);
++      }
+       conn->must_close = 1;
+     } else if (!is_valid_uri(conn->request_info.uri)) {
+       snprintf(ebuf, sizeof(ebuf), "Invalid URI: [%s]", ri->uri);