Commit Graph

2289 Commits

Author SHA1 Message Date
Solomon Huang
19aefcb7dd Remove MONGOOSE_NO_DAV on DAV_AUTH_FILE options
Building with -DMONGOOSE_NO_DAV will fail.
2014-03-19 01:53:02 +08:00
Sergey Lyubka
91c9ab807b Forwarding POST data to the CGI process 2014-03-12 22:43:04 +00:00
Sergey Lyubka
9231c7346c match_prefix -> mg_match_prefix 2014-03-12 18:35:36 +00:00
Sergey Lyubka
a7a17711ec Resetting endpoint_type in open_local_endpoint() 2014-03-10 08:35:41 +00:00
Sergey Lyubka
18e28ef879 Added lua includes 2014-03-09 20:22:51 +00:00
Jurie Horneman
1b3a1b74ac Exposed Lua support functions. 2014-03-09 21:11:06 +01:00
Sergey Lyubka
8dd76e6ef4 Using ns_start_thread() 2014-03-09 19:50:34 +00:00
Sergey Lyubka
976b5f37c1 Added Lua callback 2014-03-09 19:30:41 +00:00
Sergey Lyubka
31489ab7b1 Lua fixes 2014-03-09 19:26:58 +00:00
Sergey Lyubka
1eb59940a4 Re-init rewrites var in convert_uri_to_file_name() 2014-03-09 13:27:39 +00:00
Sergey Lyubka
afaba7ee17 Lua calls, birth_time fixed 2014-03-09 13:13:13 +00:00
Sergey Lyubka
ab147e8f19 Added MONGOOSE_NO_SSI to MONGOOSE_NO_FILESYSTEM 2014-03-06 13:37:23 +00:00
Sergey Lyubka
81a78f9c8b Added query string to access log 2014-03-05 11:22:23 +00:00
Sergey Lyubka
69bd5f7aa2 SSL_accept logic fix 2014-03-05 02:19:05 +00:00
Sergey Lyubka
41b3c1b23e warning squashed in convert_uri_to_file_name() 2014-03-05 01:59:58 +00:00
Sergey Lyubka
f639409533 warning squashed in convert_uri_to_file_name() 2014-03-05 01:59:32 +00:00
Sergey Lyubka
67c44799c8 SSL_accept() error handling fix 2014-03-05 01:57:09 +00:00
Sergey Lyubka
b77532ea3f Added mjpg example 2014-03-04 20:22:46 +00:00
Sergey Lyubka
ed8168e8a1 Added virtual hosts support via url_rewrites 2014-03-04 16:15:02 +00:00
Sergey Lyubka
39e2d2ad55 Appending query_string to the URI when redirecting on HTTP error 2014-03-04 15:01:05 +00:00
Sergey Lyubka
27c6656398 SSL_accept fixes 2014-03-04 13:23:40 +00:00
Sergey Lyubka
ffe83051fe build fixed 2014-03-04 13:15:56 +00:00
Sergey Lyubka
f521999ea6 Calling EP_CLIENT on close 2014-03-03 10:27:56 +00:00
Sergey Lyubka
e41df3cf9c MG_REQ_BEGIN -> MG_REQUEST, killed MG_REQ_END, add MG_REPLY. Restored server test 2014-03-03 10:26:27 +00:00
Sergey Lyubka
65f484291f got rid of multiline comment 2014-03-03 09:45:00 +00:00
Sergey Lyubka
77db89961b mg_stat() fix for paths like X:\ 2014-03-03 01:00:38 +00:00
Sergey Lyubka
ad50310bb6 Added index.shtml to index files 2014-03-02 19:49:15 +00:00
Sergey Lyubka
66ec3d1f1e Added defines for popen and pclose, for SSI under Win32 2014-03-02 18:50:02 +00:00
Sergey Lyubka
5f25a88821 Restored SSI functionality 2014-03-02 18:27:51 +00:00
Sergey Lyubka
fd7dc33645 unbroke unit test 2014-03-02 17:20:24 +00:00
Sergey Lyubka
458320cffb Fixed #343 in conn2() for Lua 2014-03-02 10:12:12 +00:00
Sergey Lyubka
e0214af422 Using private ns_avprintf() in mg_printf_data() 2014-03-02 10:07:30 +00:00
Sergey Lyubka
df5e997ea7 ns_server_poll() waking up by ns_server_wakeup() 2014-03-01 01:55:40 +00:00
Sergey Lyubka
0a3cb63c73 Added mg_wakeup_server() 2014-03-01 01:47:01 +00:00
Sergey Lyubka
37f7f3fb12 Merge pull request #339 from nenioscio/master
Fix issue #338
2014-03-01 01:19:31 +00:00
Sergey Lyubka
2ac970fa16 Moving to event-based API, temporary breaking tests 2014-03-01 01:17:39 +00:00
Klaus Wagner
dbbda02f70 Fix issue #338 2014-02-27 22:12:46 +01:00
Sergey Lyubka
951d20f904 Added coniditional to use net_skeleton separately 2014-02-25 18:52:23 +00:00
Sergey Lyubka
85a6abd58b Clearing flags in close_local_endpoint() 2014-02-25 12:02:45 +00:00
Sergey Lyubka
107902bae4 add_to_set(): fix around non-negative SOCKET on Windows 2014-02-24 08:22:40 +00:00
Sergey Lyubka
9bbf4c8384 Fixed problem with mg_printf_data() 2014-02-22 16:11:47 +00:00
Sergey Lyubka
c39a712540 Win32 build fix 2014-02-21 14:13:06 +00:00
Sergey Lyubka
e9f6111ba1 re-added signal.h 2014-02-20 17:47:07 +00:00
Sergey Lyubka
ba267a32fd squashed warning in read_from_socket 2014-02-20 17:44:47 +00:00
Sergey Lyubka
f64ebbe0b1 Guarded on_cgi_data() call by ifdef, thanks to Pavel Pimenov 2014-02-20 12:33:46 +00:00
Sergey Lyubka
ce57f47de0 Added missing signal.h 2014-02-20 09:49:42 +00:00
Sergey Lyubka
48be2dbc2a Added conditional for handling idle websocket conns 2014-02-20 07:32:33 +00:00
Sergey Lyubka
8905522a94 Setting last_io_time in ns_add_sock() 2014-02-20 06:26:44 +00:00
Sergey Lyubka
eea1680cf9 open_cgi_endpoint() strrchr fix 2014-02-19 16:44:01 +00:00
Sergey Lyubka
d5004cb7eb PF_INET -> AF_INET, unbreaks FreeBSD 2014-02-19 16:39:30 +00:00
Sergey Lyubka
1d1a05bf39 Embedded net_skeleton 2014-02-19 16:38:53 +00:00
Sergey Lyubka
8f7703c2a9 moved to net_skeleton 2014-02-19 16:34:51 +00:00
Sergey Lyubka
998425b14b Styling changes for hexdump 2014-02-10 10:21:57 +00:00
Pavel Pimenov
9e4cd054c8 Fix copy-paste for MONGOOSE_HEXDUMP feature 2014-02-10 12:00:51 +04:00
Sergey Lyubka
5dc317fcb0 Added -DMONGOOSE_HEXDUMP feature 2014-02-09 20:57:11 +00:00
Pavel Pimenov
f9a99530ff Add #ifndef MONGOOSE_NO_FILESYSTEM 2014-02-07 11:02:12 +04:00
Andrea Guzzo
b22f7d3a49 added a new handler callback to be used when the http connection is being closed
so that in case of connections closed prematurely, the user can clear resources
eventually bound to the connection using the 'connection_param' member of the
mg_connection structure
2014-02-06 11:22:13 +01:00
Sergey Lyubka
eaa0e26a85 Starting to rebuild chat example on Lua 2014-02-06 10:18:30 +00:00
Sergey Lyubka
a3a63f7e56 Using mg_connection::callback_param for mg_iterate_over_connection() 2014-02-06 10:00:20 +00:00
Sergey Lyubka
c9036f3ac0 Added workaround for non-compliant runtimes in alloc_vprintf() 2014-02-05 12:33:36 +00:00
Sergey Lyubka
60858d7fe5 NO_WEBSOCKET -> MONGOOSE_NO_WEBSOCKET 2014-02-04 19:57:00 +00:00
Sergey Lyubka
0f1a59aeb4 Increased env buf size 4096 -> 8192. Passing TMPDIR to CGI. 2014-02-04 18:11:56 +00:00
Sergey Lyubka
a34d1ec00a Better handling of MONGOOSE_NO_SOCKETPAIR 2014-02-04 14:04:54 +00:00
Sergey Lyubka
e70d98b7b0 Added fixes for eCos 2014-02-04 09:59:53 +00:00
Sergey Lyubka
bea012a3c1 Removed redundant addenv call 2014-02-04 08:06:49 +00:00
Sergey Lyubka
eb2d470f65 Merge branch 'master' of ssh://github.com/valenok/mongoose 2014-02-03 17:54:46 +00:00
Sergey Lyubka
652c352394 Passing SERVER_NAME, TMP and TEMP env vars to CGI. 2014-02-03 17:54:31 +00:00
xant
9e118c8a31 bugfix: set the correct status if we still have pending data 2014-01-31 19:09:12 +01:00
Sergey Lyubka
45861c7890 Disabling options if functionality is not enabled 2014-01-30 14:54:02 +00:00
Sergey Lyubka
1957879e10 Casting to int in mg_sprintf() call in handle_cgi 2014-01-29 12:34:51 +00:00
Sergey Lyubka
ddbe690698 CGI directory logic fixed 2014-01-29 11:42:14 +00:00
Sergey Lyubka
9ba1596c46 Closing connection after mg_send_digest_auth() 2014-01-29 01:24:21 +00:00
Sergey Lyubka
de509ae952 Fix around pid_t for mingw, thanks to Jay 2014-01-28 20:09:12 +00:00
Sergey Lyubka
77817cd019 Squashed the warnings 2014-01-28 13:42:26 +00:00
Sergey Lyubka
7083bea56b mg_parse_header(): allowing no spaces for comma-separated list 2014-01-28 13:01:28 +00:00
Sergey Lyubka
3dffd7604a Removed warnings 2014-01-28 12:55:20 +00:00
Sergey Lyubka
14526a2109 mg_add_uri_handler -> mg_set_request_handler() 2014-01-28 12:42:13 +00:00
Sergey Lyubka
0d28f99275 wrapped pid_t and S_ISDIR definitions into ifndef for mingw build 2014-01-27 11:12:43 +00:00
Sergey Lyubka
a281e99661 calling auth handler wrapped in MONGOOSE_NO_AUTH 2014-01-27 11:10:46 +00:00
Sergey Lyubka
3fa5c69f98 Fixed handle_delete() stat call 2014-01-27 11:06:05 +00:00
Sergey Lyubka
e31f3058fa Added test for rewrites 2014-01-27 11:03:44 +00:00
Sergey Lyubka
8ae0400b0d Added ability to set "0" as listening port. Exported local_ip and local_port to the client. 2014-01-25 13:50:57 +00:00
Sergey Lyubka
037fdbcccb Ignoring chdir() return value. Resetting mg_conn in close_local_endpoint() 2014-01-25 09:45:47 +00:00
Sergey Lyubka
5d2ac4e0a6 Merge branch 'master' of ssh://github.com/valenok/mongoose 2014-01-24 20:50:21 +00:00
Sergey Lyubka
f977757a9d Added mg_set_auth_handler() 2014-01-24 20:49:57 +00:00
Andrea Guzzo
956788d7de changed mg_get_mime_type to expect the default type as argument
instead of using a configuration option
2014-01-24 15:56:21 +01:00
Andrea Guzzo
45f6612096 allow to define a default mime-type to use when lookup in the internal table fails
instead of always returning 'text/plain'

To allow setting a different default mime-type the mg_get_mime_type() api has been
extended to require an mg_server parameter.

Note that using a static global as default mime type wouldn't have allowed us to
control it via a configuration option because there is not global initialization phase
and configuration options are provided (and specific) to each server instance.
This means that different servers can be configured to use a different default mime-type
(which is also a desired behaviour in many scenarios) when lookup fails.
2014-01-24 14:45:19 +01:00
Sergey Lyubka
2392156fd4 Not exiting on a wrong option, best effort to recover 2014-01-23 20:57:27 +00:00
Sergey Lyubka
93c5335d80 USE_POST_SIZE_LIMIT -> MONGOOSE_USE_POST_SIZE_LIMIT, and unit test added 2014-01-23 11:24:00 +00:00
Sergey Lyubka
ad89868564 Moved must_hide_file to under #ifndef MONGOOSE_NO_FILESYSTEM 2014-01-22 18:24:28 +00:00
Sergey Lyubka
976f286134 Made mg_connection::content_len int -> size_t, which is 64-bit on 64-bit systems 2014-01-20 20:57:21 +00:00
Sergey Lyubka
503a1a749d Added unit test for MONGOOSE_USE_SSL 2014-01-20 20:50:30 +00:00
Sergey Lyubka
67b7d79710 Removed comment about MONGOOSE_USE_STACK_SIZE 2014-01-20 11:10:30 +00:00
Sergey Lyubka
2e35e25935 ENABLE_DBG -> MONGOOSE_ENABLE_DEBUG, USE_STACK_SIZE -> MONGOOSE_USE_STACK_SIZE 2014-01-20 11:04:12 +00:00
Sergey Lyubka
d86d409d3c Preprocessor definitions prefixed by MONGOOSE_ 2014-01-20 10:54:15 +00:00
Sergey Lyubka
1109d3aa3c Guarded #define EINPROGRESS 2014-01-20 09:02:57 +00:00
Sergey Lyubka
8208d9e250 Fixed -DUSE_SSL build 2014-01-20 09:01:16 +00:00
Sergey Lyubka
fdd086b11c moved discard_leading_iobuf_bytes() out from conditional 2014-01-20 08:55:34 +00:00
Sergey Lyubka
5825e3ea74 Adding use_ssl to mg_connect() 2014-01-20 08:55:03 +00:00
Sergey Lyubka
7a129c17ba Added http client with unit tests 2014-01-19 16:32:43 +00:00
Sergey Lyubka
400084ea8a read_from_client -> read_from_socket 2014-01-17 16:58:19 +00:00
Sergey Lyubka
82ad9a073a Calling long running connections regardless of select() status 2014-01-17 16:37:35 +00:00
Sergey Lyubka
40e5c744da Calling long-running URI handlers on each poll iteration 2014-01-17 15:49:16 +00:00
Sergey Lyubka
e648681f1d Moved mg_connect() 2014-01-17 15:42:35 +00:00
Sergey Lyubka
02f19fc05a Using mg_handler_t for iterate_over_connections() 2014-01-17 11:45:57 +00:00
Sergey Lyubka
7690f9e34b Fixed websocket example, and websocket callback calling logic. 2014-01-17 10:17:15 +00:00
Sergey Lyubka
7b6e8fb93c Moved idle_timeout_ms into compile-time option 2014-01-16 13:23:23 +00:00
Sergey Lyubka
89ef8f2f30 Removed method checks for CGI 2014-01-15 11:46:05 +00:00
Sergey Lyubka
9115a99f47 Fixed scanf format in parse_port_string() 2014-01-15 11:06:37 +00:00
Sergey Lyubka
bac0f75dd6 int sock -> sock_t sock 2014-01-15 07:10:09 +00:00
Sergey Lyubka
6440c358c1 C++ friendliness fix 2014-01-14 23:20:23 +00:00
Sergey Lyubka
0adbfcba96 Moved send_options out of NO_DAV conditional 2014-01-14 19:28:29 +00:00
Sergey Lyubka
136c3e8200 Eat prior POST data in close_local_endpoint() 2014-01-14 13:57:55 +00:00
Sergey Lyubka
fc37b08139 URI handler status code drives streaming behavior 2014-01-14 13:16:58 +00:00
Sergey Lyubka
346179d1f1 keep-alive for all EP_USER requests 2014-01-14 00:44:27 +00:00
Sergey Lyubka
0148bc804a Added NO_THREADS wrapper 2014-01-13 21:35:45 +00:00
Sergey Lyubka
472e198d4a Fixed mg_parse_header to allow NULL strings 2014-01-13 21:31:18 +00:00
Sergey Lyubka
cc636197bc Added auth example 2014-01-13 17:58:14 +00:00
Sergey Lyubka
73ed83c5e3 Added mg_parse_multipart 2014-01-13 16:29:12 +00:00
Sergey Lyubka
56f128514e Implemented mg_set_http_error_handler() 2014-01-13 12:17:47 +00:00
Sergey Lyubka
a3663da90e Exposed mg_send_digest_auth_request(). Exported conn->content to Lua 2014-01-13 10:50:26 +00:00
Sergey Lyubka
f74a1e1dc2 Fixed start_process on windows to use correct interpreter 2014-01-12 07:20:53 +00:00
Sergey Lyubka
4d105386ca Better handling of non-ascii chars for windows CGIs 2014-01-11 23:17:17 +00:00
Sergey Lyubka
e38061970e Exposed mg_authorize_digest() 2014-01-11 16:44:37 +00:00
Sergey Lyubka
a4e8dc3069 Sending status 200 to CGI by default 2014-01-11 16:18:59 +00:00
Sergey Lyubka
e0b6109214 Added -DNO_FILESYSTEM 2014-01-11 09:48:27 +00:00
Sergey Lyubka
4eef5b14fb Added comment to https://github.com/cesanta/mongoose/pull/287 2014-01-10 22:48:47 +00:00
Sergey Lyubka
283af71bbf Merge pull request #287 from oli-obk/fix/last_send_data_before_shutdown
mg_printf_data was ignored if mg_destroy_server was called directly afte...
2014-01-10 14:47:00 -08:00
Sergey Lyubka
ff85b802c3 Using case-insensitive string comparison for connection: keep-alive 2014-01-10 22:46:03 +00:00
Sergey Lyubka
e2b42e4117 Using case-insensitive string comparison for connection: keep-alive 2014-01-10 22:43:52 +00:00
Sergey Lyubka
63909b59c5 Added __cdecl to SSL decls to make sure correct linkage with OpenSSL which is cdecl 2014-01-10 22:41:36 +00:00
Sergey Lyubka
e9316a4feb CGI fixes 2014-01-10 21:59:37 +00:00
Oliver Schneider
2ac231cb7e mg_printf_data was ignored if mg_destroy_server was called directly after 2014-01-10 18:38:18 +01:00
Sergey Lyubka
a741d53028 Fixed leak for server creation/destroy 2014-01-10 11:23:29 +00:00
Sergey Lyubka
9ea7b6f8ae Removed unnecessary buffer initializer 2014-01-10 11:11:26 +00:00
Sergey Lyubka
580d3da3c7 Using unicode winapi for stat(), fopen(), open() 2014-01-10 11:03:38 +00:00
Sergey Lyubka
aa59dda966 wrapped read_from_cgi() into NO_CGI 2014-01-09 17:50:57 +00:00
Sergey Lyubka
47b92e4145 Added string defs for 301 and 302 codes in status_code_to_str() 2014-01-09 17:24:20 +00:00
Sergey Lyubka
5fb275e146 Added URL rewrites for HTTP errors, to allow for error pages. 2014-01-09 12:36:25 +00:00
Sergey Lyubka
9390c66b48 Moved next_option() to the rest of string functions 2014-01-09 12:34:50 +00:00
Sergey Lyubka
2f69ca37d3 Better CGI error diagnostic for UNIX 2014-01-09 10:53:25 +00:00
Sergey Lyubka
4cd11de400 Ping only websocket connections 2014-01-09 10:37:17 +00:00
Sergey Lyubka
15a2639355 Added better diagnostic to send_http_error() 2014-01-09 10:35:43 +00:00
Sergey Lyubka
c20f26dbb9 removed mg_fmt() 2014-01-09 09:58:19 +00:00
Sergey Lyubka
cae797cf04 Merge branch 'master' of https://github.com/cesanta/mongoose 2014-01-09 09:37:35 +00:00
Sergey Lyubka
0d885add0e Fixed put_dir() 2014-01-09 09:36:58 +00:00
Sergey Lyubka
842231cc5c GetFullPathNameA -> GetFullPathName 2014-01-08 18:20:13 +00:00
Sergey Lyubka
dc55a3ae40 Added #undef UNICODE in mongoose.c to force ANSI Win32 functions 2014-01-08 18:10:15 +00:00
Sergey Lyubka
238b43af84 Squashed warnings for gcc 4.6.3 2014-01-08 09:16:36 +00:00
EC2 Default User
5f2f359bd6 Squashed warning under gcc 4.6.3 2014-01-07 14:53:48 +00:00
Sergey Lyubka
347a8c2f70 Fix source IP in logging 2014-01-06 14:53:41 +00:00
Sergey Lyubka
9624200663 SSL build 2014-01-06 13:31:46 +00:00
Sergey Lyubka
18b1e95350 LSP functionality 2014-01-06 13:08:39 +00:00
Sergey Lyubka
7541c6339a Removed error_log_file 2014-01-06 11:52:09 +00:00
Sergey Lyubka
31f1efd4f5 Removed index.shtml from the index files 2014-01-06 11:34:32 +00:00
Sergey Lyubka
2477f80a43 Wrapped run_as_user into conditional 2014-01-06 11:32:15 +00:00
Sergey Lyubka
2210043b87 removed mutex calls. wrapped ssl_certificate option in a conditional 2014-01-06 11:22:11 +00:00
Sergey Lyubka
10872b3227 Inlined openssl definitions instead of including a header - preparing for ssl amalgamation 2014-01-05 23:52:43 +00:00
Sergey Lyubka
fa216849e5 Resetting connection flags in close_local_endpoint() 2014-01-04 22:17:16 +00:00
Sergey Lyubka
df6e35e330 dav_auth_file moved 2014-01-04 20:49:54 +00:00
Sergey Lyubka
7cec2fe280 Sorted options list 2014-01-04 20:11:55 +00:00
Sergey Lyubka
d0e2741832 Added new response creation interface 2014-01-04 11:31:55 +00:00
Sergey Lyubka
85940c8045 Moved <netdb.h> to under unix includes 2014-01-04 02:05:18 +00:00
Sergey Lyubka
a0b599b308 Removed protection from mg_write(). Refactored mg_iterate_over_connections() 2014-01-04 00:51:07 +00:00
Sergey Lyubka
675b83a3ef Let mongoose binary change CWD to document_root 2014-01-03 21:45:13 +00:00
Sergey Lyubka
5475fe661d Implemented USE_POST_SIZE_LIMIT 2013-12-31 13:57:51 +00:00
Sergey Lyubka
7a77bb1c4a More descriptive comment in multithreaded example 2013-12-31 09:06:21 +00:00
Sergey Lyubka
4576b69e30 Initializing remote_ip and remote_port properly 2013-12-31 09:02:24 +00:00
Sergey Lyubka
257dacd7bb Squashed warning about dangerous optimization 2013-12-30 11:43:07 +00:00
Sergey Lyubka
c88b7b19b3 Squashed warning on Windows, using INVALID_SOCKET 2013-12-30 11:35:33 +00:00
Sergey Lyubka
9dde225b5e Squashed C++ warning in read_from_cgi() 2013-12-26 11:45:44 +00:00
Sergey Lyubka
f5f6edcf5a Added mg_printf() back 2013-12-26 10:12:18 +00:00
Sergey Lyubka
522a7eb554 Added socket functionality 2013-12-24 11:33:56 +00:00
Sergey Lyubka
072833acd5 Squashed win32 warnings 2013-12-23 10:01:11 +00:00
Sergey Lyubka
a6c2c2a10b Comparing URI prefix when looking for URI handler 2013-12-23 08:06:10 +00:00
Sergey Lyubka
4708cce8bd mg_poll_server() returns currect time. add mg_set_listening_socket() and mg_get_listening_socket() 2013-12-21 20:52:54 +00:00
Sergey Lyubka
2990f9328a struct linked_list_link -> struct ll 2013-12-21 20:10:08 +00:00
Sergey Lyubka
0970e080d9 Added OpenSSL support 2013-12-21 15:50:11 +00:00
Sergey Lyubka
d5b33adb88 Properly crafting HTTP reply line by parsing CGI reply headers 2013-12-21 10:53:20 +00:00
Sergey Lyubka
ec84a148f0 Creating server ctl socket in a loop to protect from interrupt 2013-12-21 10:19:12 +00:00
Sergey Lyubka
58dab48156 Using unsigned char in deliver_websocket_frame() arithmetic 2013-12-20 17:59:07 +00:00
Sergey Lyubka
b7adf9b52a Passing server_param to the URI callback 2013-12-20 09:44:51 +00:00
Sergey Lyubka
7d0662f1bc Make WEBSOCKET_PING_INTERVAL_SECONDS overridable from the command line 2013-12-18 10:13:31 +00:00
Sergey Lyubka
e3751d29d5 Made mongoose send websocket PINGs automatically 2013-12-18 09:35:36 +00:00
Sergey Lyubka
9ef42621e0 Fixed wrong memset() in scan_directory() 2013-12-15 10:12:19 +00:00
Sergey Lyubka
f5865886b2 Respecting -run_as_user 2013-12-12 20:31:43 +00:00
Sergey Lyubka
473e2a1cb2 Added <signal.h> for linux, and squashed warning in transfer_file_data() 2013-12-12 13:51:14 +00:00
Sergey Lyubka
146cf1d1c0 Calling mg_socketpair() in a loop until success. Ignoring SIGPIPE. Squashed waring in mg_start_thread() 2013-12-12 13:43:59 +00:00
Sergey Lyubka
4d7ea04dd8 Added cast for c++ friendliness 2013-12-10 00:19:33 +00:00
Sergey Lyubka
653fab6b41 Added skeleton lua support 2013-12-09 15:53:35 +00:00
Sergey Lyubka
f4c30b746e Switched to async, non-blocking core 2013-12-09 14:18:49 +00:00
Sergey Lyubka
fe087cdce9 Fixed lsp_sock_send(), return value 2013-12-07 17:45:34 +00:00
Sergey Lyubka
ebf9ee089b Do not send 500 when timing out getreq() 2013-12-05 11:12:07 +00:00
Sergey Lyubka
88cf329490 Closing connection on 5xx errors 2013-12-05 10:47:03 +00:00
Sergey Lyubka
bba29d32ce Using socketpair for inter-thread communication 2013-12-05 10:01:11 +00:00
Sergey Lyubka
a50a52ca91 Fixed #259 2013-12-04 10:11:12 +00:00
Sergey Lyubka
c6606c714f Removed symbian-specific #defines. Nokia and Symbian got killed by Microsoft. 2013-11-25 14:32:33 +00:00
Sergey Lyubka
988b40f70d Moved webdav functions into webdav.c 2013-11-24 17:33:05 +00:00
Sergey Lyubka
b5fdd48d76 Moved websocket functions into websocket.c 2013-11-24 17:29:21 +00:00
Sergey Lyubka
f4f73a8dfa Init vars in handle_cgi_request() 2013-11-23 15:04:35 +00:00
Sergey Lyubka
2d5d668863 Squashed warning 2013-11-23 13:48:55 +00:00
Sergey Lyubka
87279f3518 Throttling functionality removed 2013-11-23 13:47:07 +00:00
Sergey Lyubka
73019665fa moved mg_upload() into upload.c 2013-11-23 10:49:13 +00:00
Sergey Lyubka
66824e7757 moved CGI and IO into separate files 2013-11-23 10:47:35 +00:00
Sergey Lyubka
7fe6b29218 mg_get_cookie() moved to string.c 2013-11-23 10:32:43 +00:00
Sergey Lyubka
ebdf973af9 log_access() moved to log.c 2013-11-23 10:31:24 +00:00
Sergey Lyubka
71dd7a96c7 mg_url_decode() moved to string.c 2013-11-23 10:26:28 +00:00
Sergey Lyubka
886dcb3f5d get_request_len() moved to string.c 2013-11-23 10:25:20 +00:00
Sergey Lyubka
37751a2875 directory ops moved to directory.c 2013-11-23 10:24:25 +00:00
Sergey Lyubka
45347bd44c Moved mime-type functions to mime.c 2013-11-23 07:48:46 +00:00
Sergey Lyubka
8c4521af03 moved remove_double_dots_and_double_slashes() to string.c 2013-11-23 07:46:11 +00:00
Sergey Lyubka
0d2a8db626 Added #define for WSAPoll 2013-11-22 13:39:57 +00:00
Sergey Lyubka
607651a3ff Squashed warning for MG_REQUEST_END 2013-11-11 17:18:48 +00:00
Sergey Lyubka
224d18589f Fixed -DNO_SSL build 2013-11-02 10:24:30 +00:00
Sergey Lyubka
2fd7191836 Squashed C++ void * casting warning 2013-10-30 23:04:35 +00:00
Sergey Lyubka
853d162b55 removed double def for ssl_sw 2013-10-30 23:02:36 +00:00
Sergey Lyubka
915e923e35 Firing MG_HTTP_ERROR 2013-10-10 07:46:19 -07:00
Sergey Lyubka
1777cc6e86 Squashed warning 2013-10-07 17:28:53 +01:00
Sergey Lyubka
cafaecfc56 Moved HTTP client, ssl and some util code into separate files 2013-10-03 19:09:35 +01:00
Sergey Lyubka
47606a71ee Moved unix and win32 code to different files 2013-10-02 23:21:13 +01:00
Sergey Lyubka
eedfedd13b Added reference to a relevant pull request in getreq() comment 2013-10-01 19:09:29 +01:00
Sergey Lyubka
87d841d81b Set content_len to 0 for GET requests without Content-Length header. 2013-10-01 18:49:44 +01:00
Sergey Lyubka
5153eebc9b mg_read() does not block on content_len=0. mg_read() reads until socket is closed if content-length is not provided 2013-10-01 17:47:32 +01:00
Sergey Lyubka
70154f6c23 Moved mod_lua.c to src/lua.c 2013-10-01 15:16:09 +01:00
Sergey Lyubka
d3577b7877 Moved auth code to separate file 2013-10-01 14:54:26 +01:00
Sergey Lyubka
199e0a330f Moved options handling to src/options.c 2013-09-30 19:57:33 +01:00
Sergey Lyubka
a8da1b3334 Moved date parsing in build/src/parse_date.c 2013-09-30 19:51:16 +01:00
Sergey Lyubka
63c19b4631 Moved to unix file format 2013-09-30 13:11:24 +01:00
Sergey Lyubka
1f471e1cf3 Moved string functions to src/string.c 2013-09-30 13:09:16 +01:00
Sergey Lyubka
ef28c37529 Removed mg_get_request_info() 2013-09-30 13:02:36 +01:00
Sergey Lyubka
cd7e1b9eb7 Moved more ssl defs to internal.h 2013-09-30 12:59:43 +01:00
Sergey Lyubka
226d476856 Moved more defines to internal.h. Squashed some warnings in win32 2013-09-29 23:58:32 +01:00
Sergey Lyubka
21965e0e03 Splitting monolithic mongoose.c to separate files. Amalgamating into mongoose.c for release. 2013-09-29 23:56:59 +01:00
Sergey Lyubka
1a64d37fc7 Fixed mg_websocket_read() 2013-09-29 09:25:47 +01:00
Sergey Lyubka
ecbf79135f Refactored API, returned back to event-based handlers. Upload and Websocket API simplified 2013-09-28 11:00:54 +01:00
Sergey Lyubka
079c99c47f Started to restore single callback function 2013-09-26 13:25:51 +01:00
Sergey Lyubka
98214ce1a4 Removed init_lua() and open_file() callbacks 2013-09-26 09:35:07 +01:00
Sergey Lyubka
b12cc9fd49 Refactored handle_options_request() to use mg_write() with less copying 2013-09-25 18:30:51 +01:00
Sergey Lyubka
a61c3a2636 Added handle_delete_request(). Refactored convert_uri_to_file_name() 2013-09-25 18:24:36 +01:00
Sergey Lyubka
9fd435059f Setting user_data for fake connection 2013-09-25 14:28:09 +01:00
Sergey Lyubka
3156ac9791 read_websocket(): check for WEBSOCKET_OPCODE_CLOSE corrected 2013-09-25 14:25:14 +01:00
Sergey Lyubka
d67b1dbd53 Added CommonProgramFiles(x86) to the CGI environment under Win32, to make Win32::OLE work under CGI 2013-09-18 08:11:37 +01:00
Sergey Lyubka
19c94ce218 Fix for the issue 109 2013-09-17 16:09:00 +01:00
Sergey Lyubka
5e5033a0f3 Fix for the issue 156 2013-09-16 23:25:30 +01:00
Sergey Lyubka
5bb361b1d2 Squashed warnings 2013-09-12 10:03:04 +01:00
Sergey Lyubka
16c4fe1f37 4.1 -> 4.2 2013-09-07 22:05:39 +01:00
Sergey Lyubka
3070e8572d removed file locking on windows, to fix the crash introduced by 52e3be5c58 2013-09-07 22:04:59 +01:00
Sergey Lyubka
d5acf2e2a7 4.0 -> 4.1 2013-09-07 20:21:27 +01:00
Sergey Lyubka
73d2b395d1 Moved SIGCHLD handler out of mongoose.c. Embedded user must set SIGCHLD handler if CGI is used. 2013-09-07 19:41:40 +01:00
Sergey Lyubka
e556a487e0 Fix for the SCRIPT_NAME in the presence of PATH_INFO, https://code.google.com/p/mongoose/issues/detail?id=403 2013-09-07 18:49:24 +01:00
Sergey Lyubka
784a1580ce Merge pull request #232 from ellusak/master
use chunked encoding for directory listing
2013-09-05 11:18:07 -07:00
Sergey Lyubka
6a0ac69761 version 3.9 -> 4.0 2013-09-05 12:35:44 +01:00
ellusak
7c06279a8c use chunked encoding for directory listing 2013-09-05 17:14:34 +08:00
Sergey Lyubka
aec6f85f55 Merge branch 'master' of ssh://github.com/valenok/mongoose 2013-09-02 11:15:57 +01:00
Sergey Lyubka
52e3be5c58 Refactored f[un]lockfile for Windows using LockFileEx/UnlockFileEx 2013-09-02 11:15:48 +01:00
Boris Pek
94933047a7 Fixed compilation warning 2013-08-30 21:32:58 +03:00
Sergey Lyubka
cd6005c86f Calling thread_stop() before free-ing conn 2013-08-28 09:54:00 +01:00
Sergey Lyubka
00b289a0f4 Added thread_start() and thread_stop() 2013-08-26 12:22:38 +01:00
Sergey Lyubka
85209ac4fa Reverted contributions by jmucchiello 2013-08-19 11:54:47 +01:00
Sergey Lyubka
93365fcbd2 audio/ogg -> application/ogg 2013-08-19 06:46:13 +01:00
Sergey Lyubka
e40a44ba70 Moved mod_lua to build/ 2013-08-18 23:04:36 +01:00
Sergey Lyubka
511ef4137f Better SSI mime type handling 2013-08-18 13:27:54 +01:00
Sergey Lyubka
479164129b Styling, lines > 80 chars 2013-08-18 13:16:53 +01:00
Sergey Lyubka
08746115e2 Sending EXTRA_HTTP_HEADERS in handle_file_request() 2013-08-18 13:03:39 +01:00
Sergey Lyubka
218428662e License change 2013-08-16 11:18:16 +01:00
Sergey Lyubka
2055d41a9f Corrected misplaced brackets in parse_http_message() 2013-08-14 10:55:36 +01:00
Sergey Lyubka
1ef29c1b3b Using #define MGSQLEN for the socket queue length 2013-08-14 08:23:30 +01:00
Sergey Lyubka
e95dbb90a7 Sending content-length from put_file() 2013-08-14 08:15:42 +01:00
Sergey Lyubka
cf18c932a4 Refactored parse_http_message() 2013-08-14 07:41:47 +01:00
Sergey Lyubka
a730afc44d Merge branch 'master' of ssh://github.com/valenok/mongoose 2013-08-14 07:09:28 +01:00
Sergey Lyubka
94296c9697 Corrected check for websocket connection close 2013-08-14 07:09:22 +01:00
Daniel Oaks
90b6fab3bb Added SERVER_SOFTWARE CGI variable 2013-08-13 21:21:05 +10:00
Pavel Khlebovich
3d6b373c8f (mg_fgets) Accept lines at the end not terminated by \n
(mg_fgets) Don't consume more than size bytes when line cannot fit into buffer.
2013-08-12 14:27:20 +04:00
Pavel Khlebovich
5b84acbc14 Consume \n in mg_fgets when reading from membuf. 2013-08-12 00:47:12 +04:00
Sergey Lyubka
3054a7f09e Make sure child closes all pipe fds when executing CGI 2013-08-03 07:18:25 +01:00
Sergey Lyubka
2de96bd54e Workaround for non-compliant vsnprintf() 2013-08-02 11:00:21 +01:00
Sergey Lyubka
2468a8fb38 Merge branch 'master' of ssh://github.com/valenok/mongoose 2013-07-30 11:19:42 +01:00
Sergey Lyubka
ed38a4102e showing error string as well as numeric error on bind failure 2013-07-30 11:19:33 +01:00
bick
8f79a0564f Add casts to fix strict compiler errors [-fpermissive]
When using g++ and enforcing strict compiler errors, this commit fixes the following:

mongoose.c: In function ‘char* mg_fgets(char*, size_t, file*, char**)’:
mongoose.c:2405:60: error: invalid conversion from ‘void*’ to ‘char*’ [-fpermissive]

mongoose.c: In function ‘int set_ports_option(mg_context*)’:
mongoose.c:4586:64: error: invalid conversion from ‘void*’ to ‘socket*’ [-fpermissive]

mongoose.c: In function ‘void* worker_thread(void*)’:
mongoose.c:5104:28: error: invalid conversion from ‘void*’ to ‘mg_context*’ [-fpermissive]

mongoose.c: In function ‘void* master_thread(void*)’:
mongoose.c:5220:28: error: invalid conversion from ‘void*’ to ‘mg_context*’ [-fpermissive]
mongoose.c:5235:58: error: invalid conversion from ‘void*’ to ‘pollfd*’ [-fpermissive]
2013-07-29 11:46:24 -07:00
Sergey Lyubka
2e93cde929 Merge branch 'master' of ssh://github.com/valenok/mongoose 2013-07-28 12:15:30 +01:00
Sergey Lyubka
e53d05637a Binding to IPv6 addresses 2013-07-28 12:15:16 +01:00
bick
ea81a22529 adding include of openssl/err.h to fix errors when NO_SSL_DL is defined:
mongoose.c:4680:23: error: ‘ERR_get_error’ was not declared in this scope
mongoose.c:4681:52: error: ‘ERR_error_string’ was not declared in this scope
2013-07-26 14:12:33 -07:00
Sergey Lyubka
526f3aa31c Added check for document_root != NULL in convert_uri_to_file_name(). Added #define rmdir _rmdir for win32 2013-07-25 07:22:02 +01:00
Sergey Lyubka
62d66201c9 make match_prefix() case-insensitive 2013-07-25 07:07:25 +01:00
José Miguel Gonçalves
ca019799b9 Fix uninitialized argument in getsockname(). 2013-07-24 12:24:13 +01:00
Sergey Lyubka
c6fb9ac3d0 Fixed indenting in is_put_or_delete_request() 2013-07-23 08:24:52 +01:00
Sergey Lyubka
f2e19ca3ff Fixed indenting 2013-07-23 08:16:38 +01:00
Sergey Lyubka
16c463d2e9 Added compile-time option to set stack size 2013-07-22 10:10:19 +01:00
Sergey Lyubka
61148f1323 Using absolute paths for all file/directory options 2013-07-22 08:23:15 +01:00
Sergey Lyubka
a9d51c0e87 squashed warning 2013-07-20 11:33:34 +01:00
Sergey Lyubka
e003236a03 Made SSI #include file= relative to the current doc, as per spec 2013-07-19 07:57:47 +01:00
Sergey Lyubka
de7745370c Merge pull request #200 from ejohnstown/master
Allow no SSL_CERTIFICATE when using init_ssl callback.
2013-07-18 23:35:16 -07:00
Sergey Lyubka
21786eec8e Changed int -> SOCKET where appropriate, per Ben Currie 2013-07-18 18:17:48 +01:00
John Safranek
61f5f0b725 Allow no SSL_CERTIFICATE when using init_ssl callback. 2013-07-17 16:37:28 -07:00
Sergey Lyubka
d864d72470 On windows, enclosing path to CGI script in quotes to allow paths with spaces 2013-07-17 08:24:52 +01:00
Sergey Lyubka
7ca5962d2d in pull_all() and read_request(), respect ctx->stop_flag() 2013-07-16 17:17:36 +01:00
Sergey Lyubka
8ce1562f0d Using SetHandleInformation() to make socket handles on Windows non-inheritable 2013-07-16 15:52:40 +01:00
Sergey Lyubka
cdc7380d00 3.8 -> 3.9 2013-07-16 08:13:00 +01:00
Sergey Lyubka
faa030385c Removing extra SSL_shutdown() call. 2013-07-15 18:20:16 +01:00
Sergey Lyubka
bc40aa5442 fixed strtoll() for win32: using _atoi64 2013-07-14 12:49:24 +01:00
Sergey Lyubka
c68df310b8 Added mg_websocket_write(), per morgan3d pull request 2013-07-12 12:25:25 +01:00
Sergey Lyubka
70ce6c5ad3 Added comments to read_websocket(), per morgan3d pull request 2013-07-12 11:55:52 +01:00
Sergey Lyubka
348db16245 NOT redirecting stderr to stdout for UNIX CGI, to avoid output being littered with error messages. 2013-07-11 08:44:51 +01:00
Sergey Lyubka
bcb294620f increased buffer for the ip address string from 20 to 50, to allow ipv6 addresses 2013-07-10 07:48:06 +01:00
Sergey Lyubka
fa160cb9a3 Merge pull request #191 from kblinova/master
Detect Window's style slashes in mg_upload file names
2013-07-01 00:47:21 -07:00
Sergey Lyubka
137d6484e2 Removed bogus comment 2013-07-01 08:46:20 +01:00
Sergey Lyubka
e7c34c26cb mg_read() with no Content-Length would read until socket is closed 2013-07-01 08:45:07 +01:00
Katerina Blinova
dfb7d928c2 Review revision for windows path separator detection in mg_upload 2013-06-28 11:05:33 -07:00
Katerina Blinova
4bb9faaf50 Detect Window's style slashes in mg_upload file names 2013-06-27 11:46:52 -07:00
Stefan Doehla
17ecb0a459 MKCOL and recursive DELETE 2013-06-12 00:04:07 +02:00
Sergey Lyubka
a0e5494569 Merge pull request #177 from arvidn/master
support serving pre-gzipped files
2013-05-30 10:14:45 -07:00
arvidn
d283e3167f support serving pre-gzipped files transparently provided the user agent accepts gzip content-encoding. The feature breaks if the user agent makes a range request within a gzipped file, and returns 501 in this case 2013-05-30 09:59:11 -07:00
Cody Hanson
94050d44e4 Added bounds checking for listening_ports.
Needs to be a valid TCP port number, and not less than 1 or greater than 65535
2013-05-30 10:54:59 -06:00
Sergey Lyubka
33b920ed2c Exported mg_url_encode() 2013-05-19 08:00:42 +01:00
jwang
063b26fece Securely close SSL conection
For SSL in close_connection, current implementation use close_socket_gracefully to close socket firstly, then SSL_free. In my
testing, this approach may cause some pending write data missing. I'd suggest use standard SSL_shutdown in SSL conection. It
need call twice according to openSSL manual - one call sends the close_notify alert and one call receives the response from
the peer
2013-05-19 10:40:10 +08:00
Sergey Lyubka
add079a949 Added socket functions to lua environment 2013-05-19 01:25:54 +01:00
Sergey Lyubka
5e78711467 Fixed masking in websocket code 2013-05-18 10:29:03 +01:00
Erik Oomen
3a186976d7 Added .mov (quicktime) to builtin_mimes_types 2013-05-16 14:33:58 +02:00
Sergey Lyubka
2e232b3304 Lua functionality change: print renamed to mg.write, read renamed to mg.read. Expanded user manual, fixed example pages. 2013-05-15 17:42:34 +01:00
Sergey Lyubka
d72645bf91 Using local var in open_auth_file 2013-05-15 09:43:38 +01:00
Sergey Lyubka
7d5bcec92d Better cleanup in close_connection() 2013-05-15 08:28:56 +01:00
Sergey Lyubka
9b76d60b38 Merge pull request #131 from abadc0de/lua_read_fixup
lsp_mg_read: remove dead code, return nil on empty read
2013-05-13 10:15:34 -07:00
Sergey Lyubka
63ccf8199f Style changes in poll() 2013-05-13 18:07:38 +01:00
Sergey Lyubka
6bc6022aa9 Merge pull request #164 from fredfung/master
Fix parameter 1 for select in poll()
2013-05-13 10:05:26 -07:00
ff.feng
b68db66e97 Fix parameter 1 for select in poll() 2013-05-13 23:57:26 +08:00
Sergey Lyubka
94e1c5a41b Added sanity checking in send_file_data() 2013-05-12 23:17:44 +01:00
Sergey Lyubka
ab16220861 Not leaking socket in set ports option 2013-05-10 15:40:19 +01:00
Sergey Lyubka
c0eb3e56b4 Not using realloc2 in set_ports_option 2013-05-10 15:21:55 +01:00
Sergey Lyubka
5591aa5a0d Added .ttf mime type, https://github.com/valenok/mongoose/issues/129 2013-05-10 14:45:12 +01:00
Sergey Lyubka
6f946f5eea websocket code fix, https://github.com/valenok/mongoose/pull/146 2013-05-10 13:41:48 +01:00
Sergey Lyubka
a7f97bf2f2 Fixed leaks, per afs-bb https://github.com/valenok/mongoose/pull/161 2013-05-10 12:22:04 +01:00
Sergey Lyubka
cfbaf7f1ae Expose mg_url_decode to the API 2013-05-08 11:36:38 +01:00
Pavel
c28dc45d4c removing warning about _CRT_SECURE_NO_WARNINGS if it is already defined
modified:   mongoose.c
2013-05-06 09:02:30 -04:00
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
Igor Okulist
2260c8ddc0 Merge branch 'master' of https://github.com/okigan/mongoose 2012-09-19 20:57:00 -07:00
Sergey Lyubka
f9873eb87a Experimentl websocket support 2012-09-19 12:23:54 +01:00
Sergey Lyubka
358e4ffbf5 extra check in cry() for NULL context 2012-09-18 09:47:29 +01:00
Sergey Lyubka
9aad922983 added mg_get_ssl_context. passing fake connection to the MG_INIT_SSL event 2012-09-17 23:36:06 +01:00
Sergey Lyubka
05b2a04267 moved status_code, user_data, log_message out of struct mg_request_info 2012-09-17 19:38:19 +01:00
Sergey Lyubka
4408083b4d removed ssl chain file option. restored context param in fc() call 2012-09-17 19:19:15 +01:00
Igor Okulist
4f01f101fc Compile on Win32 2012-09-15 20:40:28 -07:00
Sergey Lyubka
d9f9911d9b removed max request size from options, moved to the #define 2012-09-15 10:58:50 +01:00
Sergey Lyubka
0bb67e06c1 #define _XOPEN_SOURCE 600 only for linux 2012-09-15 10:51:35 +01:00
Sergey Lyubka
518b3aa726 Merge pull request #12 from nigels-com/master
Touch-ups for Regal build of mongoose
2012-09-14 03:28:20 -07:00
Sergey Lyubka
8072b0a7d4 Do not report error if mg_printf() printed 0 bytes 2012-09-13 21:58:37 +01:00
Sergey Lyubka
43953782f9 Do not require SSL, fix for issue 20 2012-09-06 10:06:30 +01:00
Sergey Lyubka
12e133a5e9 Merge branch 'master' of ssh://github.com/valenok/mongoose 2012-09-06 10:00:42 +01:00
Sergey Lyubka
e92d4451ef fc() doesnt take ctx argument anymore 2012-09-06 09:54:39 +01:00
Marin Atanasov Nikolov
0521d78982 Fix building of mongoose under FreeBSD.
According to flockfile(3) under Linux you need only this:

    #define _XOPEN_SOURCE

* http://man7.org/linux/man-pages/man3/flockfile.3.html

This also fixes the build under FreeBSD.
2012-09-04 11:58:45 +03:00
Sergey Lyubka
3602d54a5b Better check for NULL in mg_connect() 2012-09-03 22:36:40 +01:00
Nigel Stewart
fafc9c6a20 Undefine WIN32_LEAN_AND_MEAN, if necessary.
Allow debug tracing to be disabled in debug-mode build by defining DEBUG_TRACE at compile-time.
2012-08-28 08:25:10 -05:00
Sergey Lyubka
c92d7c3bc8 Fix for Android: fread() might return < 0 2012-08-25 22:10:45 +01:00
Sergey Lyubka
ee91109d9f Ger Hobbelt's fixes 2012-08-25 22:02:51 +01:00
Sergey Lyubka
ab6f145e3e Update thread count on OOM error in worker_thread() 2012-08-25 20:24:09 +01:00
Sergey Lyubka
3d3359910f Added printf format checking macros. Changed mg_printf() to allocate the buffer on heap if it does not fit the local one. 2012-08-19 12:08:33 +01:00
Ger Hobbelt
ccf43fe3e3 backport of the relevant fix as per http://code.google.com/p/mongoose/issues/detail?id=370#c5 2012-08-18 21:44:29 +02:00
Sergey Lyubka
8b491d75b5 added const in mg_get_request_info() 2012-08-18 16:47:25 +01:00
Sergey Lyubka
d70c18d692 3.2 -> 3.3 2012-08-17 21:42:25 +01:00
Sergey Lyubka
9378946e7d Added comments in read_request() 2012-08-17 02:13:18 +01:00
Sergey Lyubka
d7e6492fac Refactored code that discards request data after handling 2012-08-17 01:49:36 +01:00
Sergey Lyubka
102101e9d6 Corrected dangerous assert() in process_new_connection 2012-08-16 22:48:29 +01:00
Sergey Lyubka
cf53f3da4f Revert "Added MG_SHUTDOWN event"
This reverts commit 15a0d819ed.
There is no point in MG_SHUTDOWN. Thread that calls mg_stop() can
do the same thing.
2012-08-16 20:20:18 +01:00
Sergey Lyubka
15a0d819ed Added MG_SHUTDOWN event 2012-08-16 17:24:33 +01:00
Sergey Lyubka
6add727c72 %zu printf spec is not understood by MS compiler, changing it to %lu 2012-08-16 11:33:16 +01:00
Sergey Lyubka
375950f6d7 Fixed hang for keep-alive connections 2012-08-16 00:05:46 +01:00
Sergey Lyubka
38d805933e Passing mg_connection to pull() function, in order to give it access to the stop status 2012-08-15 21:51:46 +01:00
Sergey Lyubka
941500f967 Sorted options list alphabetically 2012-08-15 21:40:43 +01:00
Sergey Lyubka
6619f2edac Implemented -x option 2012-08-14 16:06:10 +01:00
Sergey Lyubka
33853cd5de BUFSIZ -> MG_BUF_LEN 2012-08-14 13:32:24 +01:00
Sergey Lyubka
9a807aa7be Added If-None-Match support 2012-08-14 08:26:42 +01:00
Sergey Lyubka
4a5e1ecf92 Fixed error logging in set_ssl_option() 2012-08-11 10:29:08 +01:00
Sergey Lyubka
0e0091e1c0 Changing API: callback doesnt get mg_request_info pointer anymore, but it is possible to get it using mg_get_request_info() 2012-08-03 11:15:38 +01:00
Sergey Lyubka
e8f3132aa8 Added .json => text/json mime type. In handle_cgi_request, closing write stream straight after data is sent to the CGI process. 2012-08-03 00:10:01 +01:00
Sergey Lyubka
dccc524adb Fixed fseek() on large files on windows, using _lseeki64() and not casting to off_t 2012-08-02 15:41:39 +01:00
Sergey Lyubka
b42d25edd2 NOT exporting string functions 2012-07-31 23:52:46 +01:00
Sergey Lyubka
39215f6930 Exported mg_get_builtin_mime_type() 2012-07-31 08:58:44 +01:00
Sergey Lyubka
df7da95cb6 Setting Host header in mg_fetch. Added test for fetching large file. 2012-07-29 17:12:44 +01:00
Sergey Lyubka
4bc508525b Exported string functions 2012-07-29 14:04:48 +01:00
Sergey Lyubka
a9bb7d78ab Fixed mg_fetch() by passing a buffer, placeholder for the reply headers 2012-07-29 10:15:37 +01:00
Sergey Lyubka
e6bb39a2d3 Using client-side SSL context for mg_connect() 2012-07-28 18:57:04 +01:00
Sergey Lyubka
104480ed9c mg_start_thread() exported 2012-07-28 12:06:26 +01:00
Sergey Lyubka
c1ab21ecfe Argh, nasty typo fixed 2012-07-28 11:32:05 +01:00
Sergey Lyubka
6c54370aa1 Added mg_connect(), mg_fetch() API functions. More tests added 2012-07-28 11:04:03 +01:00
Sergey Lyubka
0b4676b711 More unit test for parse_http_header() 2012-07-14 10:29:38 -07:00
Sergey Lyubka
39fd804aeb Using BUFSIZ->16384 buffer size for the headers returned by CGI. BUFSIZ may be too small, e.g. 512 2012-06-15 22:38:49 +01:00
Sergey Lyubka
97392645c4 Refactored read_request() 2012-06-07 21:36:57 +01:00
Sergey Lyubka
9771d184f2 Squashed -DNO_SSL build warning 2012-06-06 06:45:23 +01:00
Sergey Lyubka
3ca6155add should_keep_alive() nitpick fix 2012-06-04 22:56:58 +01:00
Sergey Lyubka
594a37d51d refactored should_keep_alive() for better readability 2012-06-04 22:51:22 +01:00
Sergey Lyubka
5071978267 Corrected should_keep_alive() per bel2s suggestions 2012-06-04 22:49:16 +01:00
Sergey Lyubka
e6357396ef made readdir() static 2012-05-31 15:42:15 +01:00
Sergey Lyubka
bd3b812b82 Added index.shtml and index.php to index_files 2012-05-27 10:35:51 +01:00
Sergey Lyubka
4c5fee9673 Protect from DoS with negative Content-Length 2012-05-19 07:38:50 +01:00
Sergey Lyubka
cdd905c0fb Added #include <ws2tcpip.h> 2012-03-29 11:09:35 +01:00
Sergey Lyubka
5a22cb90b9 Fixing #327 2012-03-23 19:37:21 +00:00
Sergey Lyubka
9d4d48e703 Using mg_sleep() instead of sleep() 2012-03-13 21:17:03 +00:00
Sergey Lyubka
108a9739f4 3.1 -> 3.2 2012-03-11 22:54:12 +00:00
Sergey Lyubka
2824ae345d Added new event, MG_REQUEST_COMPLETE 2012-03-11 22:38:28 +00:00
Sergey Lyubka
a6678814af Checking malloc return code in worker_thread() 2012-03-11 22:25:27 +00:00
Sergey Lyubka
cda24d94fb Fixed overflow in substitute_index_file() 2012-03-11 22:19:12 +00:00
Sergey Lyubka
f085e68baf Added check for the duplicate option 2012-03-11 22:14:50 +00:00
Sergey Lyubka
b78110b92e Using MSG_NOSIGNAL in send() 2012-03-11 21:58:04 +00:00
Sergey Lyubka
37503c78c8 setting conn->must_close = 1; in handle_propfind() 2012-03-11 21:52:12 +00:00
Sergey Lyubka
83447fb6e5 Fix Windows build 2012-03-11 21:32:53 +00:00
Sergey Lyubka
2a3f31f521 Using g++ for compilation. Fixed C++ build. 2012-03-06 20:19:47 +00:00
Sergey Lyubka
dcecfadbeb Use static initialization for STARTUPINFO and PROCESS_INFORMATION 2012-03-04 19:40:25 +00:00
Sergey Lyubka
5faa2de3f5 Directory request closes the connection 2012-03-04 16:24:18 +00:00
Sergey Lyubka
6dc1b347a0 Various fixes from bel2125, http://code.google.com/r/bel2125-mongoose/source/detail?r=9fe067d34a3f3a7311f86627b8e1ecb7719a663d 2012-03-04 16:00:12 +00:00
Sergey Lyubka
c88f736971 Removed DEBUG_TRACE from convert_uri_to_file_name() 2012-02-22 18:30:59 +00:00
Sergey Lyubka
b10b989865 Increasing master thread priority on Windows 2012-02-20 23:27:40 +00:00
Sergey Lyubka
ba8b07387c Issue 317: increase priority of the master thread 2012-02-20 18:44:02 +00:00
Sergey Lyubka
d05b7b06aa PATH_INFO support 2012-02-20 18:42:32 +00:00
Sergey Lyubka
6576a783da Remove proxy code 2012-02-12 08:49:59 +00:00
lsm
86e3cd262b Using IS_DIRSEP_CHAR() in remove_double_dots_and_double_slashes() 2012-02-10 22:01:42 +00:00
Sergey Lyubka
84a76fba69 Remove repeating backslashes only on Windows 2012-02-09 22:53:56 +00:00
Sergey Lyubka
76dd31055e Exporting SystemDrive environment variable for CGIs on Windows 2012-02-05 13:04:52 +00:00
Sergey Lyubka
b5ed7ed7d1 Changed NO_IPV6 to USE_IPV6. Also, using inet_ntop() everywhere. 2012-02-05 12:27:58 +00:00
Sergey Lyubka
7af9df9fab Added preliminary IPv6 support 2012-02-01 21:50:22 +00:00
Sergey Lyubka
6905a9a0cb Formatting changes 2012-01-30 18:56:17 +00:00
Sergey Lyubka
f56dcb8989 removed match_extension() 2012-01-29 21:22:42 +00:00
valenok
8ea40bae4b Introduced $ meta character in glob expressions 2012-01-26 03:21:51 +00:00
valenok
905413b656 Fix issue 300 2012-01-24 16:05:07 +00:00
valenok
ed70793670 Options ssi_extensions, cgi_extensions became cgi_pattern, ssi_pattern 2012-01-24 09:30:01 +00:00
valenok
01c5ee0973 Added -w option 2012-01-23 22:03:36 +00:00
Sergey Lyubka
aa90972a31 Set code 302 automatically if CGI reply has Location: header present 2011-11-06 11:24:23 +01:00
Sergey Lyubka
8601b03ead Do not set Connection: keep-alive unless -enable_keep_alive is set 2011-11-06 10:04:55 +01:00
Sergey Lyubka
4e551d9a1d Copyright year changed to 2011. Fixed documentation string for mg_get_cookie() 2011-08-26 21:30:20 +01:00
Sergey Lyubka
5edfe797f1 Using _beginthread() for starting threads on Windows 2011-08-26 13:03:15 +01:00
Sergey Lyubka
8442a9ceea Fix stuck master thread in produce_socket() by always signalling sq_empty from the worker threads 2011-08-26 10:19:19 +01:00
Sergey Lyubka
5d70ffe878 parse_date_string() interprets time in UTC, as per standrard 2011-08-26 08:57:04 +01:00
Sergey Lyubka
f749eeb795 Style changes: using C++ comments everywhere 2011-08-25 16:57:17 +01:00
Sergey Lyubka
60408deaa8 Fix -DNO_CGI build 2011-08-24 13:11:41 +01:00
Sergey Lyubka
bc900844f1 Added .mp4 and .m4v mime types 2011-08-24 13:05:49 +01:00
Sergey Lyubka
a49c688d48 Fixed directory traversal security issue for windows 2011-08-24 12:55:08 +01:00
Sergey Lyubka
ba714de066 Added directory listing support to the PROPFIND method 2011-08-24 08:24:20 +01:00
Colin Leitner
015ddf8ac1 Basic PROPFIND support. Not capable of listing a directory yet. 2011-08-20 12:13:23 +02:00
Colin Leitner
22754f403d Fixed bug in handle_directory_request, that used the unintialized path variable instead of dir for an error message. 2011-08-20 11:49:50 +02:00
Colin Leitner
a021ebf4c4 Added OPTIONS method 2011-08-20 11:48:31 +02:00
Sergey Lyubka
025b11b176 Fixed buffer overflow in put_dir() 2011-08-03 11:39:55 +02:00
valenok
27983c535d All dates in headers must be in UTC 2011-07-26 00:39:05 +01:00
valenok
9be6774197 Breaking process_new_connection() loop when mg_stop() is called 2011-07-04 13:01:18 +01:00
valenok
99f5f11612 Fix SEGV in handle_proxy_request 2011-06-28 15:33:40 +01:00
valenok
a844115043 close_socket_gracefully(): set linger option to prevent port exhaustion 2011-06-24 08:31:37 +01:00
valenok
71b6a53617 spawn_process(): reading hashbang string correctly on Windows 2011-06-23 00:07:46 +01:00
valenok
5303e37702 Allow NULL passwords in mg_modify_passwords_file 2011-06-22 14:01:10 +01:00
valenok
ff28c04b60 Corrected errror message in set_ports_option() 2011-06-22 08:37:11 +01:00
valenok
a77519def3 Uninitializing SSL on mg_stop() 2011-06-22 08:35:08 +01:00
valenok
8942a4cdad Ignoring SIGCHLD to let OS reap the zombies. 2011-06-22 00:45:08 +01:00
valenok
9e524a2fce Changed backlog length, listen(20) -> listen(100) 2011-06-21 22:47:44 +01:00
valenok
5bbb6fbbd5 Added mg_send_file() 2011-06-19 17:45:52 +01:00
valenok
23a3cc6472 Added "Content-Length: 0" to the authorization reply to make it keep-alive friendly 2011-06-18 10:21:13 +01:00
valenok
377cece9c0 Better comments for TCP keep-alive change 2011-05-26 21:15:34 +01:00
valenok
abc230eb34 Set keep alive on TCP level 2011-05-26 21:12:44 +01:00
valenok
938407dc16 3.0 -> 3.1 2011-05-02 08:59:58 +01:00
valenok
d7cba57e17 Make source g++ friendly 2011-04-24 22:40:08 +01:00
Sergey Lyubka
cb601b7718 Fix potential leak in handle_directory_request() 2011-03-31 18:04:46 +02:00
Sergey Lyubka
6a43bd952f Fix pthread_cond_wait() to prevent race 2011-03-31 17:59:23 +02:00
valenok
ec15f2da2b Fixed assert() in mg_read() 2011-03-08 21:51:03 +00:00
valenok
3e48cebc13 MD5Update(): memset() call corrected 2011-03-07 17:34:40 +00:00
valenok
be20ced0a1 parse_url() fixed 2011-03-06 23:30:34 +00:00
valenok
2557884179 Added __SYMBIAN32__ conditionals 2011-03-06 22:48:31 +00:00
valenok
b489cb6c76 Bug in SSL defines fixed, thanks to mmeuli 2011-03-05 12:38:48 +00:00
valenok
4840457927 Passing request_info with user_data to MG_INIT_SSL 2011-03-05 09:01:38 +00:00
valenok
80d9fbcda4 Passing user_data into MG_INIT_SSL as 3rd parameter 2011-03-05 08:49:50 +00:00
valenok
fae26c1bfd Style cleanup 2011-02-19 12:00:46 +00:00
valenok
29716fa22e Changed API: function mg_modify_passwords_file(). Instead of passing context, a domain name is passed, thus making this function completely mongoose-agnostic. 2011-02-18 16:40:58 +00:00
valenok
3583e83a3f Using volatile keyword in the context struct to prevent unwanted optimization. See http://code.google.com/p/mongoose/issues/detail?id=216 2011-02-15 16:13:38 +00:00
Arnout Vandecappelle (Essensium/Mind)
a57f2cf744 Do authentication before trying NEW_REQUEST callback. 2010-12-03 13:16:34 +01:00
Arnout Vandecappelle (Essensium/Mind)
a9b6eb1809 Fix for issue#209: support spaces, commas, quotes and other weirdness in Authorization header. 2010-12-03 12:48:56 +01:00
Arnout Vandecappelle (Essensium/Mind)
d9c05f9910 Partial fix for issue#209: don't crash when some Authorization fields are missing. 2010-12-02 17:48:08 +01:00
Sergey Lyubka
ac09360430 Accept * URI 2010-11-29 18:27:25 +01:00
Sergey Lyubka
9bda69f573 Fix issue 180 - make mg_read() handle PUT requests, too. Stop checking for request method in mg_read(). 2010-11-29 17:56:26 +01:00
Arnout Vandecappelle (Essensium/Mind)
fb9493a090 Bugfix of Issue #180: mg_read() should accept PUT requests. 2010-11-29 16:27:30 +01:00
Sergey Lyubka
0db96c5ba5 make it possible to set SSL_LIB and CRYPTO_LIB during build 2010-11-29 14:46:42 +01:00
Sergey Lyubka
e97762879d reduced select() timeout from 1 second to 0.2 second to make mongoose snappier 2010-11-29 14:39:04 +01:00
Sergey Lyubka
db1c0806ef Parsing auth header - fix issue 206, IE case 2010-11-29 14:28:52 +01:00
Sergey Lyubka
1de7fef760 fix blocked CGI read 2010-11-15 10:41:17 +01:00
valenok
da21192b10 squashed a warning 2010-11-03 07:46:59 +00:00
valenok
073890215d RTEMS fixes: removed mman.h include, and introduced NO_POPEN conditional 2010-11-03 07:37:59 +00:00
Arnout Vandecappelle (Essensium/Mind)
bdb396cc5d Bugfix of Issue #200: Multiple calls to mg_read always return the same data.
The buffer must skip over consumed_content.
2010-11-02 11:14:43 +01:00
Matt Healy
c1e24ac7f9 Resolved various compile-time warnings when building code. (This is due to
requirements on some projects I work on, where warning levels must be kept
to a minimum.)
2010-10-30 15:49:12 -04:00
valenok
11951a57ff API change: added void *user_data to mg_start(). Bumped version to 3.0 2010-10-26 23:37:44 +01:00
valenok
7034f49276 should_keep_alive(): using mg_strcasecmp() instead of strcmp() to compare header value 2010-10-05 07:08:51 +01:00
valenok
6240455779 2.11 -> 2.12 2010-10-05 07:06:53 +01:00
valenok
9390b00166 squash warning under win32 2010-09-26 22:27:41 +01:00
valenok
51b1f3a021 Under Linux, reap CGI zombies reliably 2010-09-26 22:20:20 +01:00
valenok
66ba1259f2 CGI script execution fixed for windows 2010-09-20 19:23:40 +01:00
valenok
7865ed7bad SCRIPT_FILENAME should be relative to document root, and begin with slash. 2010-09-19 21:57:34 +01:00
valenok
1811240587 exporting correct SCRIPT_FILENAME for CGI 2010-09-19 13:00:49 +01:00
valenok
3e5d2bd3ac extra check in mg_start(): options may be NULL 2010-09-18 04:20:10 +01:00
valenok
d475188a3d protected free(ssl_mutexes) with ifndef NO_SSL 2010-09-14 11:16:30 +01:00
valenok
9b5de49437 free-ing allocated SSL mutexes 2010-09-12 22:44:02 +01:00
valenok
ea71faf71d 2.10 -> 2.11 2010-09-12 22:26:12 +01:00
valenok
2b732a8067 implemented pthread_cond_broadcast() better to avoid mg_stop() deadlock on Win32 2010-09-12 21:58:22 +01:00
valenok
bd152b0923 introduced max_request_size 2010-09-11 16:53:23 +01:00
valenok
3d43451b36 reporting error if request size is too big 2010-09-10 23:44:23 +01:00
valenok
d8c12e449d refactored set_port_option 2010-09-09 13:46:05 +01:00
valenok
4c1451bab1 refactored SSL initialization. implemented mg_connect() 2010-09-08 22:53:25 +01:00
valenok
1ceafea1f9 SSL_CTX_use_certificate_chain_file() call fixed. using __cdecl for qsort callback. squashed warnings under msvc 2010-09-07 10:59:31 +01:00
valenok
149a553872 not setting SO_REUSEADDR on windows 2010-09-06 21:58:05 +01:00
valenok
236768b30c 2.9 -> 2.10 2010-09-06 21:46:07 +01:00
valenok
de5aff7f10 fixed check_acl() to return -1 for malformed ACL 2010-09-06 21:36:54 +01:00
valenok
28f3073873 added -DNO_SSL_DL option 2010-09-03 03:58:23 +01:00
valenok
0f89d437d5 added -ssl_chain_file option 2010-08-31 21:19:27 +01:00
valenok
5a0376488d rearranged options list in alphabetical order 2010-08-31 21:10:19 +01:00
Sergey Lyubka
75b6717d8b wrapped set_ssl_option call into NO_SSL conditional. Fixed test. 2010-08-31 11:58:45 +02:00
valenok
f105b74dc0 experimental keep-alive, options defaults 2010-08-31 08:01:14 +01:00
valenok
a0e202d828 fixed win32 build 2010-08-31 00:12:16 +01:00
valenok
64ca2965c0 disabled SSL handshake error messages 2010-08-30 23:41:17 +01:00
valenok
68dde1b7b1 error message in set_ssl_option() corrected 2010-08-30 17:56:43 +01:00
valenok
97f2155239 introduced short option names 2010-08-30 13:10:10 +01:00
valenok
bb21ffec12 moved document_root verification to standalone server (into main.c) 2010-08-30 12:54:46 +01:00
valenok
39c6d3ee08 corrected error log message in spawn_process() 2010-08-30 10:35:04 +01:00
valenok
6cf296515b added debug trace in mg_start. restored stderr duping in spawn_process() 2010-08-29 23:19:53 +01:00
valenok
546bec333c API change for mg_start: most binary compatible across releases. 2010-08-29 22:30:49 +01:00
valenok
e846212180 embedded mode: implement mg_read() properly. This brings straming support to Mongoose. 2010-08-28 00:31:06 +01:00
valenok
ee997ba7d4 put back dynamic SSL lib loading 2010-08-26 20:50:59 +01:00
valenok
4f716e2b9a fixed win32 build 2010-08-26 00:55:03 +01:00
valenok
8d2bc8dd8a squash MinGW warning 2010-08-23 21:46:28 +01:00
valenok
f4907bc0c2 introdused NO_SSL. Explicitely linking against SSL library. 2010-08-23 21:36:35 +01:00
valenok
cb71dc4a1e integrated Michael Krelin fixes: no extra newline in error logs, no #ifndef NO_CGI for match_extension() 2010-08-23 20:48:40 +01:00
valenok
b6d53922d2 s/FILENAME_MAX/PATH_MAX/g, also allocating connections on heap 2010-08-23 19:58:45 +01:00
Sergey Lyubka
aca0512173 optimized DEBUG_TRACE(). Fixed thread sync on exit. 2010-08-23 17:42:25 +02:00
Sergey Lyubka
fcb57df105 creating all worker threads in mg_start(). 2010-08-23 14:06:58 +02:00
valenok
e650941174 fixed bad http version handling 2010-08-23 07:26:03 +01:00
valenok
d87cd36beb removed partial copyright - no relevant code. adopted CGI code to no post_data. Embedded mode is still todo. FALSE -> MG_FALSE. 2010-08-23 07:11:35 +01:00
valenok
4cf7851996 decreased thread idle time to 5 seconds. exiting worker thread if stop flag is raised. 2010-07-06 23:04:50 +01:00
valenok
9a2b2d75f1 adopted mongoose.c to Google style 2010-07-06 17:41:21 +01:00
valenok
88a224d808 fixed example. some more comments added 2010-07-05 19:37:53 +01:00
Sergey Lyubka
5425b94f39 introduced struct mg_config. Fixed Range response. 2010-06-25 17:23:17 +02:00
valenok
9a5f96e755 Win32 compilation fixed 2010-06-15 12:49:52 +03:00
migal
f9456c4d76 removed MAX_LISTENING_SOCKETS restriction 2010-06-05 16:30:50 +03:00
Sergey Lyubka
e8db81e33b SSL error logging my Martin Lamb 2010-05-28 15:52:58 +01:00
mlamb
57157edc66 don't close the error log if we didn't open it. 2010-05-28 10:28:45 -04:00
mlamb
c511671e33 formatting 2010-05-27 17:36:55 -04:00
mlamb
22322f2851 Add ssl_cry() function to display error message plus any detailed error messages that OpenSSL might care to provide.
This can help to debug SSL communication issues.

Example output with a couple of problematic SSL client sessions (new log messages start with "-->" to indicate that they are providing additional detail to a previous log message):

Mongoose "2.9, $Rev: 517 $" started on port(s) "80,443s", serving directory "."
[1274991792] [error] [client 10.50.50.50] worker_thread: SSL handshake error
[1274991792] [error] [client 10.50.50.50]   --> error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
[1274991882] [error] [client 10.50.50.50] worker_thread: SSL handshake error
[1274991882] [error] [client 10.50.50.50]   --> error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher
2010-05-27 15:44:59 -04:00
Sergey Lyubka
ddde5d9d1b range support for PUT request by Yan Jabin 2010-05-21 11:51:49 +02:00
lsm
d94c3f8b64 moved linux-specific compilation #defines into mongoose.c. This way we make sure flags are picked up if Makefile is not used. 2010-05-08 14:06:35 +02:00
Sergey Lyubka
627a6dbb5a mg_md5 made public 2010-05-05 00:39:36 +01:00
Sergey Lyubka
a69a2da39d Initial import - converting from Subversion. 2010-05-03 21:46:42 +01:00