Commit Graph

456 Commits

Author SHA1 Message Date
Thileepan
1d9d1111e1 Environmental variables required for PHP cgi.
In few windows machines, the environment variables "ProgramFiles" is required to successfully execute PHP code especially socket functions.
2013-05-06 13:05:37 +05:30
Sergey Lyubka
2a0b55b30b mg_upload: trigger callback when file is already closed 2013-04-26 21:32:22 +01:00
Sergey Lyubka
c352486abb Squashed warning in push() 2013-04-11 12:51:07 -07:00
Sergey Lyubka
4120b9bcc0 mg_get_cookie() signature change 2013-04-11 12:49:41 -07:00
Sergey Lyubka
272644e39f mg_md5 returns char *, not void 2013-03-27 01:31:12 -07:00
Hendrik Polczynski
fdef2b8643 Update mongoose.c
when having connections with and without auth would cause double free and then crash
2013-03-19 17:42:21 +01:00
abadc0de
ce55924a02 lsp_mg_read: remove dead code, return nil on empty read 2013-03-17 23:33:02 -04:00
Sergey Lyubka
51ed3efcd1 Style fixes 2013-03-09 13:16:41 +00:00
Sergey Lyubka
8d1f6377c4 Changed websocket_data() handler API. Buffering and passing whole websocket message. 2013-03-08 16:03:23 +00:00
Sergey Lyubka
22dddc2eeb Merge pull request #124 from abadc0de/lua_err
Lua page error handling cleanup
2013-03-08 03:15:04 -08:00
Filipp Kovalev
dd49c0791f A little bit more warnings suppresed 2013-03-08 14:41:17 +04:00
Sergey Lyubka
4b539d4b95 Suppressed some mingw warnings 2013-03-08 07:18:39 +00:00
Sergey Lyubka
5eabfe5da2 Using pijyoi's patch for connection close. 2013-03-08 07:08:09 +00:00
Sergey Lyubka
36b7c8d60d Forcing connection close when client disconnects. 2013-03-08 07:03:23 +00:00
abadc0de
aa37b728ad Merge commit '10234' into lua_err 2013-03-07 03:02:15 -05:00
Sergey Lyubka
fb5e2b8c2f Setting off IPV6_V6ONLY for USE_IPV6 case 2013-03-05 18:55:33 +00:00
Sergey Lyubka
4505b00733 Removed support for option names 2013-03-05 18:26:10 +00:00
Sergey Lyubka
3892e0199e Passing user_data to init_ssl() 2013-02-28 09:12:52 +00:00
abadc0de
10234b07c4 Remove dead code 2013-02-27 16:33:05 -05:00
abadc0de
36a83e1452 Merge https://github.com/valenok/mongoose 2013-02-27 15:32:43 -05:00
abadc0de
34df4ec1fd Fix mg.onerror returns non-zero to stop processing 2013-02-27 15:29:18 -05:00
Sergey Lyubka
7204d71136 Merge pull request #102 from abadc0de/master
Better error handling and an include function for lua pages
2013-02-27 03:27:28 -08:00
Sergey Lyubka
283f590349 Merge pull request #106 from BusyJay/feature-2
Fix bugs about range request and explorer crashes
2013-02-27 03:21:33 -08:00
abadc0de
ab960df8a9 Lua call stack cleanup 2013-02-25 20:48:36 -05:00
abadc0de
08048bd5bb Merge https://github.com/valenok/mongoose 2013-02-25 16:23:50 -05:00
abadc0de
800517ac16 Added support for lua error handling and includes
- Added mg.onerror, mg.include, mg.redirect
- mg.onerror, if overridden, lets the user trap syntax errors and
  other loadbuffer errors, and dump stack traces and debug info
  for uncaught runtime errors.
- Log unexpected errors from mg.onerror handlers
- Provide mg.cry so custom handlers can reproduce default behavior
- Call mg.onerror handler before unwinding stack
- If mg.onerror returns non-0, stop loading chunks
- Included pages stop parent page processing if mg.onerror returns non-zero
- Included pages don't sent HTTP errors, they throw lua errors
2013-02-25 16:19:38 -05:00
Jay
690eff4fa2 Fix bugs about range request and explorer crashes
1. fix a bug that when header contains "Range: 100-", the range request
support will fail
2. (windows) fix a bug that when explorer.exe crashes due to some
reason, the tray icon will disappear.
2013-02-25 22:17:46 +08:00
Sergey Lyubka
e47b5b775a Squashed warning 2013-02-24 20:34:32 +00:00
KIU Shueng Chuan
d8536b011c portable socket type should be SOCKET 2013-02-24 23:41:32 +08:00
KIU Shueng Chuan
a2239c2b4b squash mingw variable set but not used warning 2013-02-24 23:29:05 +08:00
KIU Shueng Chuan
d3c02331d4 squash mingw printf format warning 2013-02-24 23:22:34 +08:00
KIU Shueng Chuan
08708435a7 avoid defining macros already present on mingw32 2013-02-23 10:37:45 +08:00
Sergey Lyubka
7931929a42 Fix compile of mg_strcasestr() under windows 2013-02-18 10:49:03 +00:00
Sergey Lyubka
3d211d89c5 win32 mmap() must not close file handle, issue 99 2013-02-16 14:37:58 +00:00
Sergey Lyubka
fbf1ccee45 Fix out-of-bounds acces in url_decode() 2013-02-16 14:31:37 +00:00
Sergey Lyubka
0bd43bcae3 Using mg_strcasestr() instead of strstr() 2013-02-16 14:17:38 +00:00
Sergey Lyubka
463b49f1bd Fixed poll() issue with QNX 2013-02-16 12:54:02 +00:00
Joe Mucchiello
2efc5d9fce http_error callback
Allow user to display status code errors
2013-02-10 15:58:06 -05:00
Joe Mucchiello
1cb094e059 Revert "Add http_error callback"
This reverts commit 27fe9c8f01.
2013-02-10 15:50:20 -05:00
Joe Mucchiello
27fe9c8f01 Add http_error callback
Allows user code to display its own error status responses or just log
the errors. Is called even in cases where begin_request is not called.
2013-02-10 15:02:37 -05:00
Sergey Lyubka
1415d187eb Added comments about auth checks done before begin_request() 2013-02-10 15:32:08 +00:00
Sergey Lyubka
a65078b858 Calling begin_request() after auth checks. 2013-02-10 15:25:11 +00:00
Sergey Lyubka
63e8052e4b Added index.lp to the index_files 2013-02-08 10:26:25 +00:00
Sergey Lyubka
72803eb7f8 num_threads 20 -> 50 2013-02-08 10:09:53 +00:00
Sergey Lyubka
845d7b08e1 Fixed assert for keepalive code path 2013-02-08 08:21:52 +00:00
Sergey Lyubka
ffa983552f 3.7 -> 3.8 2013-02-06 09:40:26 +00:00
Sergey Lyubka
d53902844c Squashed warning for lua+sqlite code path 2013-02-04 22:14:42 +00:00
Sergey Lyubka
b80157b7ea Setting user data pointer properly 2013-02-03 19:15:27 +00:00
Sergey Lyubka
bdd933f597 Fixed UNIX code path for handle_lsp_request() 2013-02-02 16:41:43 +00:00
Sergey Lyubka
ee55d38b55 API CHANGE: using struct mg_callbacks 2013-02-01 16:48:30 +00:00
Sergey Lyubka
51a80e4844 Do not output headers when serving Lua server pages 2013-01-31 15:17:19 +00:00
Sergey Lyubka
ce0826e285 Adding lua+sqlite functionality in the default windows binary build 2013-01-31 13:38:32 +00:00
Sergey Lyubka
b21a8b2193 Removed wait_until_socket_is_readable(). Rely on socket timeout. 2013-01-29 11:21:23 +00:00
Konstantin Sorokin
3f78df86ac fixed typo 2013-01-28 18:49:19 +04:00
Sergey Lyubka
c30f7a5258 Merge pull request #77 from bamiaux/add_request_timeout
Add request_timeout option
2013-01-28 03:13:28 -08:00
Sergey Lyubka
dc513a9a15 Wrapped SSL code into #ifndef NO_SSL 2013-01-27 20:49:17 +00:00
Sergey Lyubka
e63f7fe33a Always initializing struct file on stack 2013-01-25 21:50:00 +00:00
Sergey Lyubka
b589e0cdf4 Fixed mg_upload() and some SSL related issues 2013-01-25 20:28:09 +00:00
Sergey Lyubka
75d9a6c844 Removed mg_connect() and mg_fetch(). Added mg_download() 2013-01-23 21:54:27 +00:00
Sergey Lyubka
b783813e54 Always sending MG_NEW_REQUEST, as first step in processing the request 2013-01-22 12:28:22 +00:00
Sergey Lyubka
322ed3cc6f fflush()-ing uploaded file before calling MG_UPLOAD callback 2013-01-21 01:39:14 +00:00
Sergey Lyubka
6d4d53c247 Squashed linux warning in process_new_connection() 2013-01-20 10:11:57 +00:00
Sergey Lyubka
e6f8d40942 SSL redirect, using Host: header 2013-01-20 10:06:31 +00:00
Sergey Lyubka
76d913796c Getting first SSL listener dynamically 2013-01-19 22:32:26 +00:00
Sergey Lyubka
f79bd71fd4 Implemented ssl redirection 2013-01-19 10:45:58 +00:00
Sergey Lyubka
f24bebaca8 3.6 -> 3.7 2013-01-18 11:08:20 +00:00
Sergey Lyubka
d3005df019 Bug fix in Win32 mg_mkdir 2013-01-17 17:51:59 +00:00
Sergey Lyubka
ef9b103a00 Started adding ssl redirection support 2013-01-17 17:50:18 +00:00
Sergey Lyubka
f109030cd0 Renamed: global_passwords_file -> global_auth_file, put_delete_passwords_file -> put_delete_auth_file. 2013-01-17 17:14:11 +00:00
Sergey Lyubka
5646caa572 Using poll() instead of select() to prevent FD_SETSIZE overflows, for programs that open large number of descriptors 2013-01-16 23:45:03 +00:00
Sergey Lyubka
a8b08c6784 Fixing http://code.google.com/p/mongoose/issues/detail?id=392 2013-01-15 13:24:53 +00:00
Sergey Lyubka
1fb6f391a1 In mg_upload(), use fopen() with "wb" mode instead of "wbx", cause "x" is not understood by Mac and Windows. 2013-01-13 10:55:42 +00:00
Sergey Lyubka
8455742440 Pass reply status code to MG_REQUEST_COMPLETE 2013-01-10 09:56:24 +00:00
Sergey Lyubka
a6e74e7707 3.5 -> 3.6 2013-01-09 20:55:21 +00:00
Benoît Amiaux
acf72a6109 Add request_timeout option 2013-01-09 17:09:04 +01:00
Sergey Lyubka
cdb6588973 Fix to stop misbehaving clients to DoS mongoose 2013-01-09 14:30:25 +00:00
Sergey Lyubka
eecf24b20c Improved CGI disclosure protection 2013-01-09 14:24:50 +00:00
Sergey Lyubka
bde9a63390 Endianess patch by Forrest 2013-01-03 10:29:34 +00:00
Sergey Lyubka
5e491801da 3.4 -> 4.5 2012-12-26 10:02:14 +00:00
Sergey Lyubka
eed09600f7 Ignoring .htpasswd file for PUT and DELETE requests. Those use separate passwords file. 2012-12-25 11:49:41 +00:00
Sergey Lyubka
8d6634ff7e Allowing HEAD method for CGI requests 2012-12-25 11:22:48 +00:00
Sergey Lyubka
6c9ed3ca53 Changed GetFullPathName -> GetFullPathNameA 2012-12-25 11:08:03 +00:00
Sergey Lyubka
ede1befffa Fix read_websocket() for content length > 125 2012-12-25 11:05:19 +00:00
Sergey Lyubka
2cd4852321 Restore SIGCHLD handler to SIG_DFL in CGI process 2012-12-25 11:00:29 +00:00
Sergey Lyubka
1eb719f2d9 Checking for endianness in runtime in MD5 and SHA code 2012-12-24 21:23:34 +00:00
Sergey Lyubka
113c9d5a02 Fix keep-alive handling in process_new_connection() 2012-12-24 11:01:56 +00:00
Sergey Lyubka
ab3c070e1c Merge pull request #66 from nullable-type/master
Made behavior of mg_get_cookie(..) regarding errors the same as of mg_get_var(..)
2012-12-23 04:40:35 -08:00
Sergey Lyubka
2e6a01b931 Fix for the relative document root & PHP 2012-12-22 18:24:48 +00:00
tayS
6869b64b31 Fix for hang when sending large request with SSL enabled
When using SSL, we must use SSL_pending() in addition to/instead of select() to determine whether there is SSL data to be read.
This update makes the SSL_pending() function available and uses is to check for data if select() indicates there is no data.

See https://github.com/valenok/mongoose/issues/47
2012-12-21 12:38:34 -06:00
nullable.type
8faf6f7b72 Made behavior of mg_get_cookie(..) on errors the same as mg_get_var(..). Separated the two cases a.) problems with destination buffer and b.) cookie header or cookie parameter not existing. 2012-12-16 22:20:21 +01:00
nullable.type
c9183f3851 Made the names of the function arguments of the declaration and the definition of mg_get_var(..) the same.
Changed the error codes to have a consistent way of reporting errors. -2 is returned if there is a problem with the size of the destination buffer. -1 is returned if the variable is not found.

Updated the documentation of mg_get_var(..) in mongoose.h and removed the redundant comments from mongoose.c.
2012-12-16 12:27:53 +01:00
Sergey Lyubka
0912a7f473 Merge pull request #60 from bakanatorz/master
Added support for Ogg Vorbis audio files
2012-12-09 13:26:57 -08:00
Sergey Lyubka
64cfe1d389 Merge pull request #49 from nullable-type/master
Avoid some level-4 warnings issued by Visual Studio (2012 and possibly previous versions)
2012-12-08 06:47:35 -08:00
Sergey Lyubka
69b0b58d46 Merge branch 'master' of ssh://github.com/valenok/mongoose 2012-12-07 01:50:52 +00:00
Sergey Lyubka
0d442058e5 Added mg_upload() 2012-12-07 01:50:47 +00:00
Sergey Lyubka
0b09df97ac On new connection, clear off receiving buffer 2012-12-05 23:07:20 +00:00
Sergey Lyubka
080cb2dd4b Changed signature of url_decode(): signalling on destination buffer overflow. mg_get_var() now does not require extra space for variable buffer 2012-11-14 09:26:02 -08:00
Eric Bakan
786caaecb2 Added support for Ogg Vorbis audio files 2012-11-12 10:40:19 -05:00
nullable.type
eb92b5f1b3 Avoid memory leaks if duplicate options are passed. 2012-11-02 22:52:47 +01:00
nullable.type
c5ba6016aa Suppress warning C4127 (conditional expression is constant) issued by Visual Studio 2012 introduced by FD_SET(..) which is using the do-while(0) trick. 2012-10-27 14:09:26 +02:00
nullable.type
73a845a327 Suppress warning C4204 (non-constant aggregate initializer) issued by Visual Studio 2012 due to missing C99 support. 2012-10-27 14:07:06 +02:00
nullable.type
6eec552ea4 Added declaration to avoid warning C4115 (named type definition in parentheses) issued by Visual Studio 2012. 2012-10-27 14:04:41 +02:00
Sergey Lyubka
4fcb64fe90 Fix exception in win32 code path when CGI exec fails 2012-10-24 10:12:32 +01:00
Sergey Lyubka
8966f47c7a Merge branch 'master' of ssh://github.com/valenok/mongoose 2012-10-23 20:21:38 +01:00
Sergey Lyubka
e251375c0c Using .lp extension for Lua server pages 2012-10-23 20:21:24 +01:00
Mitch Hendrickson
f8713ede2d Use existing must_close flag instead of adding is_closing 2012-10-19 19:51:01 -07:00
Mitch Hendrickson
0b5f854bf0 Fix 30s timeout when closing a socket that has no remaining data, introduced in 375950f6; setting the socket nonblocking makes recv() return instantly but not select() 2012-10-15 23:09:14 -07:00
Sergey Lyubka
3770020b74 Remove winsock include - windows.h does that for us 2012-10-14 15:08:43 +01:00
Sebastian Reinhard
025cd283c4 Fixed an error in mongoose.c that caused a lot of errors where winsock2.h was included after windows.h 2012-10-13 12:47:51 +02:00
Sergey Lyubka
5157bd0960 Merge branch 'master' of ssh://github.com/valenok/mongoose 2012-10-10 15:12:30 +01:00
Sergey Lyubka
2aaedef4af Trimming whitespaces properly in windows CGI interpreter name 2012-10-10 15:12:16 +01:00
shantanugadgil
011bdc22b2 Update mongoose.c
Add default MIME type for xsl
2012-10-08 09:55:33 +05:30
Sergey Lyubka
b437d56736 Added MG_INIT_LUA event 2012-10-08 00:09:43 +01:00
Sergey Lyubka
038f8823f1 Added test to mg_stat(). Fixed set_gpass() 2012-10-05 08:58:13 +01:00
Sergey Lyubka
03dd8367bf Merge branch 'master' of ssh://github.com/valenok/mongoose 2012-10-05 02:10:47 +01:00
Sergey Lyubka
b597da34da Pass user_data to the callback 2012-10-05 02:10:35 +01:00
Sergey Lyubka
365b5e8f8a Using long for file size in MG_OPEN_FILE ev_data 2012-10-01 10:19:20 +01:00
Sergey Lyubka
47651766fb Squashed warning under linux 2012-09-30 16:35:09 +01:00
Sergey Lyubka
55c8c82c4b Fixed windows build 2012-09-29 22:21:10 +01:00
Sergey Lyubka
557d1f4c49 Added MG_OPEN_FILE message 2012-09-29 18:56:41 +01:00
Sergey Lyubka
6bd35a4c18 Style changes 2012-09-28 10:36:31 +01:00
Sergey Lyubka
3ffdf5459a API change: folded user_data into request_info, and introduced event-specific ev_data 2012-09-27 22:20:02 +01:00
Sergey Lyubka
02098b1903 API change: folded user_data into request_info, and introduced event-specific ev_data 2012-09-27 21:48:05 +01:00
Sergey Lyubka
d970705596 #define MAP_PRIVATE 0 for _WIN32 2012-09-27 08:19:14 +01:00
Sergey Lyubka
5c9ab40601 Using MAP_PRIVATE for mmap, to fix mac build for Lua 2012-09-27 08:17:31 +01:00
Sergey Lyubka
30d1573346 Fixed spawn_proccess() for win32 for .exe binaries 2012-09-27 00:27:20 +01:00
Sergey Lyubka
8c1866a4af Lua server pages support 2012-09-26 23:37:03 +01:00
Sergey Lyubka
7fe2944477 Squashed warnings in win32 websocket code 2012-09-24 21:24:02 +01:00
Sergey Lyubka
93131417e6 is_websocket_request() modified to check for the presence of keyword rather then euqality 2012-09-24 09:38:02 +01:00
Sergey Lyubka
2118de37c3 3.3 -> 3.4 2012-09-23 15:02:18 +01:00
Sergey Lyubka
2ffb558e30 nullify ssl_mutexes after free-ing them 2012-09-23 14:19:36 +01:00
Sergey Lyubka
ba6c01e602 Fixed check_acl() 2012-09-23 13:50:36 +01:00
Sergey Lyubka
dfc0f00478 Implement -T option, throttling functionality 2012-09-23 13:28:27 +01:00
Sergey Lyubka
ecb2b0e53d Cleaner compilation for 16-bit targets 2012-09-23 02:13:53 +01:00
Sergey Lyubka
ed74cd82f5 Added declarations for printf like functions 2012-09-23 01:35:59 +01:00
Sergey Lyubka
d2be594262 defining PATH_MAX if not defined 2012-09-22 15:49:58 +01:00
Sergey Lyubka
1e632d3215 Removed "Content-Type: text/plain" header from send_http_error() response. 2012-09-22 15:21:21 +01:00
Sergey Lyubka
5642dfcf38 CGI handling on windows: constructing full path to the interpreter. enabling SO_REUSEADDR on listening socket. 2012-09-22 15:15:46 +01:00
Sergey Lyubka
4dff36ffde removed unused struct timespec 2012-09-22 13:36:24 +01:00
Sergey Lyubka
bce3a85702 #including winsock2 and ws2tcpip headers by default on windows 2012-09-21 19:22:35 +01:00
Sergey Lyubka
f741349d51 Fixed calculation of the number of leap days 2012-09-21 17:21:04 +01:00
Sergey Lyubka
25863b59a6 Sending MG_WEBSOCKET_CLOSE 2012-09-21 09:05:45 +01:00
Sergey Lyubka
586574e176 Added #pragma comment(lib, "Ws2_32.lib") for win32 2012-09-21 09:03:47 +01:00
Sergey Lyubka
0f15954727 Skip SSL init if PEM file is not specified 2012-09-20 20:39:43 +01:00
Sergey Lyubka
167338f216 Using slash, "/" as the universal directory separator throughout the code 2012-09-20 18:20:41 +01:00
Sergey Lyubka
614b219a27 Marking WRITE end of a pipe as closed in handle_cgi_request() 2012-09-20 17:22:22 +01:00
Sergey Lyubka
35cf8687df Merge pull request #32 from okigan/master
Compile on Windows
2012-09-20 08:45:31 -07:00
Sergey Lyubka
d883b0f0f9 Prevent possible assert fail on windows in handle_cgi_request() 2012-09-20 15:11:38 +01:00
Sergey Lyubka
364235e7ae Squashed warning on windows 2012-09-20 14:54:51 +01:00
Sergey Lyubka
98fb44f836 Refactored data buffering. Updated websocket example to have 2 message roundtrips. 2012-09-20 13:45:35 +01:00