Index: third_party/mongoose/chrome-mongoose-modifications.diff |
diff --git a/third_party/mongoose/chrome-mongoose-modifications.diff b/third_party/mongoose/chrome-mongoose-modifications.diff |
deleted file mode 100644 |
index b37162dd026f89eab431de9ba1cc4de7829ce816..0000000000000000000000000000000000000000 |
--- a/third_party/mongoose/chrome-mongoose-modifications.diff |
+++ /dev/null |
@@ -1,129 +0,0 @@ |
-diff --git a/third_party/mongoose/mongoose.c b/third_party/mongoose/mongoose.c |
---- a/third_party/mongoose/mongoose.c |
-+++ b/third_party/mongoose/mongoose.c |
-@@ -23,7 +23,9 @@ |
- #else |
- #define _XOPEN_SOURCE 600 // For flockfile() on Linux |
- #define _LARGEFILE_SOURCE // Enable 64-bit file offsets |
-+#ifndef __STDC_FORMAT_MACROS |
- #define __STDC_FORMAT_MACROS // <inttypes.h> wants this for C++ |
-+#endif // __STDC_FORMAT_MACROS |
- #endif |
- |
- #if defined(__SYMBIAN32__) |
-@@ -51,8 +53,12 @@ |
- #include <stdio.h> |
- |
- #if defined(_WIN32) && !defined(__SYMBIAN32__) // Windows specific |
-+ #ifdef _WIN32_WINNT |
-+ #undef _WIN32_WINNT |
-+ #endif |
- #define _WIN32_WINNT 0x0400 // To make it link in VS2005 |
- #include <windows.h> |
-+#include <winsock2.h> |
- |
- #ifndef PATH_MAX |
- #define PATH_MAX MAX_PATH |
-@@ -63,7 +69,6 @@ |
- #include <direct.h> |
- #include <io.h> |
- #else // _WIN32_WCE |
--#include <winsock2.h> |
- #define NO_CGI // WinCE has no pipes |
- |
- typedef long off_t; |
-@@ -849,7 +854,9 @@ static int pthread_cond_init(pthread_cond_t *cv, const void *unused) { |
- } |
- |
- static int pthread_cond_wait(pthread_cond_t *cv, pthread_mutex_t *mutex) { |
-- HANDLE handles[] = {cv->signal, cv->broadcast}; |
-+ HANDLE handles[2]; |
-+ handles[0] = cv->signal; |
-+ handles[1] = cv->broadcast; |
- ReleaseMutex(*mutex); |
- WaitForMultipleObjects(2, handles, FALSE, INFINITE); |
- return WaitForSingleObject(*mutex, INFINITE) == WAIT_OBJECT_0? 0 : -1; |
-@@ -3424,6 +3431,10 @@ static int set_ports_option(struct mg_context *ctx) { |
- struct vec vec; |
- struct socket so, *listener; |
- |
-+ struct linger linger; |
-+ linger.l_onoff = 1; |
-+ linger.l_linger = 1; |
-+ |
- while (success && (list = next_option(list, &vec, NULL)) != NULL) { |
- if (!parse_port_string(&vec, &so)) { |
- cry(fc(ctx), "%s: %.*s: invalid port spec. Expecting list of: %s", |
-@@ -3448,6 +3459,8 @@ static int set_ports_option(struct mg_context *ctx) { |
- // Thanks to Igor Klopov who suggested the patch. |
- setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (void *) &on, |
- sizeof(on)) != 0 || |
-+ setsockopt(sock, SOL_SOCKET, SO_LINGER, (void *) &linger, |
-+ sizeof(linger)) || |
- bind(sock, &so.lsa.u.sa, so.lsa.len) != 0 || |
- listen(sock, 100) != 0) { |
- closesocket(sock); |
-@@ -3768,15 +3781,8 @@ static void reset_per_request_attributes(struct mg_connection *conn) { |
- |
- static void close_socket_gracefully(SOCKET sock) { |
- char buf[BUFSIZ]; |
-- struct linger linger; |
- int n; |
- |
-- // Set linger option to avoid socket hanging out after close. This prevent |
-- // ephemeral port exhaust problem under high QPS. |
-- linger.l_onoff = 1; |
-- linger.l_linger = 1; |
-- setsockopt(sock, SOL_SOCKET, SO_LINGER, (void *) &linger, sizeof(linger)); |
-- |
- // Send FIN to the client |
- (void) shutdown(sock, SHUT_WR); |
- set_non_blocking_mode(sock); |
-@@ -4233,8 +4239,6 @@ struct mg_context *mg_start(mg_callback_t user_callback, void *user_data, |
- // Ignore SIGPIPE signal, so if browser cancels the request, it |
- // won't kill the whole process. |
- (void) signal(SIGPIPE, SIG_IGN); |
-- // Also ignoring SIGCHLD to let the OS to reap zombies properly. |
-- (void) signal(SIGCHLD, SIG_IGN); |
- #endif // !_WIN32 |
- |
- (void) pthread_mutex_init(&ctx->mutex, NULL); |
-@@ -3812,1 +3812,1 @@ static void close_connection(struct mg_connection *conn) { |
- } |
- |
- static void discard_current_request_from_buffer(struct mg_connection *conn) { |
-- char *buffered; |
- int buffered_len, body_len; |
- |
-- buffered = conn->buf + conn->request_len; |
- buffered_len = conn->data_len - conn->request_len; |
- assert(buffered_len >= 0); |
- |
-@@ -3867,7 +3865,7 @@ static void handle_proxy_request(struct mg_connection *conn) { |
- } |
- conn->peer->client.is_ssl = is_ssl; |
- } |
-- |
-+ |
- // Forward client's request to the target |
- mg_printf(conn->peer, "%s %s HTTP/%s\r\n", ri->request_method, ri->uri + len, |
- ri->http_version); |
-@@ -2820,6 +2820,8 @@ static void prepare_cgi_environment(struct mg_connection *conn, |
- blk->len = blk->nvars = 0; |
- blk->conn = conn; |
- |
-+ memset(&root, 0, sizeof(root)); |
-+ |
- get_document_root(conn, &root); |
- |
- addenv(blk, "SERVER_NAME=%s", conn->ctx->config[AUTHENTICATION_DOMAIN]); |
-@@ -2916,6 +2918,8 @@ static void handle_cgi_request(struct mg_connection *conn, const char *prog) { |
- FILE *in, *out; |
- pid_t pid; |
- |
-+ memset(&ri, 0, sizeof(ri)); |
-+ |
- prepare_cgi_environment(conn, prog, &blk); |
- |
- // CGI must be executed in its own directory. 'dir' must point to the |
- |