Version 3.2.2 released 2024-03-21
- Use single quotes around 'maybe' atom for compatibility with OTP 27 mochi#262
- Update Erlang CI images mochi#261
Version 3.2.1 released 2023-09-22
- mochinum:digits/1: fix handling of -0.0 for OTP-26.1/27.0 mochi#260
Version 3.2.0 released 2023-08-31
- Add new mochiweb_request:is_closed/1 function mochi#258
Version 3.1.2 released 2023-04-20
- Fix rebar edoc settings mochi#257
Version 3.1.1 released 2022-10-11
Version 3.1.0 released 2022-08-13
- Leading and trailing whitespace in header values are now trimmed for better RFC 7230 compliance. mochi#247 mochi#248
Version 3.0.0 released 2022-05-09
- rebar3 is now the preferred build tool (finally) mochi#241 mochi#243
- Minimum OTP version is now 18, which allows us to remove a number of backwards compatibility hacks while still supporting almost 7 years of Erlang releases. mochi#239
- Crashing client processes now exit with reason
{shutdown, Error}
. This ensures processes linked to the connection process are also cleaned up. If exitnormal
was caught in a request loop callback, for example in atry ... catch exit:normal ...
expression, that expression might have to be updated to handle the{shutdown, Error}
error reason. mochi#238 mochi#242
Version 2.22.0 released 2021-08-23
- Renamed master branch to main
- Add unquote_path/1 for separate '+' encoding mochi#231
Version 2.21.0 released 2021-06-06
- Upgrade crypto functions to support OTP 23 mochi#231
- Switch from Travis to GitHub Actions for testing mochi#232
Version 2.20.1 released 2020-02-03
- Removed deprecated metadata from .app file
Version 2.20.0 released 2019-07-14
- Expand testing matrix to include Erlang/OTP 22.0 and Erlang/OTP 21.3
- Add support for SameSite=none in cookies mochi#225
- Fix parsing of certain unquoted cookie values mochi#212
Version 2.19.0 released 2019-01-17
- Fix warning in 21.2.3 and crash on incompatible releases (21.2, 21.2.1, 21.2.2 have a SSL bug) mochi#210
- Erlang/OTP 21 compatibility mochi#198 mochi#204
- New
{buffer, Buffer}
socket server option mochi#208 - New
{format, map}
option for mochijson2:decode/2 mochi#206 - No longer crash when a socket is closed server-side mochi#205
- Support for SameSite cookie setting mochi#203
Version 2.18.0 released 2018-05-12
- Add the 100.64.0.0/10 private IP shared address range mochi#193
Version 2.17.0 released 2017-08-12
- Fix deprecation warnings for Erlang/OTP 20.0 mochi#186
- Updated mochiweb_html singleton tag heuristic for HTML5 mochi#190
- Send 400 Bad Request if request line exceeds recbuf (regression fix) mochi#191
Version 2.16.0 released 2016-12-19
- Added support for encoding maps to mochijson2 (where available) mochi#184
- Added missing RFC1918 address spaces to the allowed x-forwarded-for header mochi#183
Version 2.15.1 released 2016-06-24
- Fixed deprecation warnings in Erlang/OTP 19.0 mochi#177
Version 2.15.0 released 2016-05-08
- mochiweb_request now normalizes paths such that duplicate slashes are discarded (and thus all path segments except the last are non-empty). mochi#173
Version 2.14.0 released 2016-04-11
- mochiweb_html now requires a letter to begin a HTML tag mochi#171
Version 2.13.2 released 2016-03-18
- Allow mochijson2 to handle code points that xmerl_ucs considered invalid mochi#168
Version 2.13.1 released 2016-03-13
- Fix mochiweb_html regression parsing invalid charref sequences mochi#167
Version 2.13.0 released 2016-02-08
- Support parsing of UTF-16 surrogate pairs encoded as character references in mochiweb_html mochi#164
- Avoid swallowing messages that are not related to the socket during request parsing mochi#161
- Ensure correct ordering of Set-Cookie headers: first in, first out mochi#162
- Improve response times by caching a formatted date once per second for the response headers with a mochiweb_clock service mochi#158
Version 2.12.2 released 2015-02-21
- Close connections quietly when setopts fails with a closed socket. mochi#152
Version 2.12.1 released 2015-02-01
- Fix active_socket accounting mochi#149
- Added full MIT license preludes to each source file to make it easier for mochiweb's code to be used piecemeal mochi#148
Version 2.12.0 released 2015-01-16
- Send "Connection: close" header when the server is going to close a Keep-Alive connection, usually due to unread data from the client mochi#146
Version 2.11.2 released 2015-01-16
- Fix regression introduced in #147 mochi#147
Version 2.11.1 released 2015-01-16
- Accept range end position which exceededs the resource size mochi#147
Version 2.11.0 released 2015-01-12
- Perform SSL handshake after releasing acceptor back into the pool, and slow accept rate when file descriptors are not available, to mitigate a potential DoS attack. Adds new mochiweb_socket functions transport_accept/1 and finish_accept/1 which should be used in preference to the now deprecated accept/1 function. mochi#138
Version 2.10.1 released 2015-01-11
- Fixes issue with SSL and mochiweb_websocket. Note that mochiweb_websocket is still experimental and the API is subject to change in future versions. mochi#144
Version 2.10.0 released 2014-12-17
- Added new
recbuf
option to mochiweb_http to allow the receive buffer to be configured. mochi#134
Version 2.9.2 released 2014-10-16
- Add timeouts to SSL connect to prevent DoS by opening a connection and not doing anything. mochi#140
- Prevent using ECDH cipher in R16B because it is broken mochi#140
- For default SSL connections, remove usage of sslv3 and not-so-secure ciphers. mochi#140
Version 2.9.1 released 2014-09-29
- Fix Makefile rule for building docs mochi#135
- Minimize gen_tcp:send calls to optimize performance. mochi#137
Version 2.9.0 released 2014-06-24
- Increased timeout in test suite for FreeBSD mochi#121
- Updated rebar to v2.5.0 and fixed associated build issues mochi#131
Version 2.8.0 released 2014-01-01
- Websocket support mochi#120
- Force files named "crossdomain.xml" to have MIME type text/x-cross-domain-policy. mochi#118
Version 2.7.0 released 2013-08-01
- Fix 0-length range responses mochi#87
- Add support for all possible
erlang:decode_packet/3
responses, previously these would just crash. mochi#114 - Makefile fixed to make
make test
work beforemake all
mochi#116 - Usage of the crypto module made R16B01+ compatible mochi#115
- Build fixed for R16B01 mochi#112
mochiweb_socket_server:stop/1
is now a synchronous call instead of an asynchronous castmochiweb_html:parse_tokens/1
(andparse/1
) will now create a html element to wrap documents that have a HTML5 doctype (<!doctype html>
) but no html element mochi#110
Version 2.6.0 released 2013-04-15
- Enable R15B gen_tcp workaround only on R15B mochi#107
Version 2.5.0 released 2013-03-04
- Replace now() with os:timestamp() in acceptor (optimization) mochi#102
- New mochiweb_session module for managing session cookies. NOTE: this module is only supported on R15B02 and later! mochi#94
- New mochiweb_base64url module for base64url encoding (URL and Filename safe alphabet, see RFC 4648).
- Fix rebar.config in mochiwebapp_skel to use {branch, "master"} mochi#105
Version 2.4.2 released 2013-02-05
- Fixed issue in mochiweb_response introduced in v2.4.0 mochi#100
Version 2.4.1 released 2013-01-30
- Fixed issue in mochiweb_request introduced in v2.4.0 mochi#97
- Fixed issue in mochifmt_records introduced in v2.4.0 mochi#96
Version 2.4.0 released 2013-01-23
- Switch from parameterized modules to explicit tuple module calls for R16 compatibility (#95)
- Fix for mochiweb_acceptor crash with extra-long HTTP headers under R15B02 (#91)
- Fix case in handling range headers (#85)
- Handle combined Content-Length header (#88)
- Windows security fix for
safe_relative_path
, any path with a backslash on any platform is now considered unsafe (#92)
Version 2.3.2 released 2012-07-27
- Case insensitive match for "Connection: close" (#81)
Version 2.3.1 released 2012-03-31
- Fix edoc warnings (#63)
- Fix mochiweb_html handling of invalid charref sequences (unescaped &) (#69).
- Add a manual garbage collection between requests to avoid worst case behavior on keep-alive sockets.
- Fix dst cookie bug (#73)
- Removed unnecessary template_dir option, see https://github.com/basho/rebar/issues/203
Version 2.3.0 released 2011-10-14
- Handle ssl_closed message in mochiweb_http (#59)
- Added support for new MIME types (otf, eot, m4v, svg, svgz, ttc, ttf, vcf, webm, webp, woff) (#61)
- Updated mochiweb_charref to support all HTML5 entities. Note that
if you are using this module directly, the spec has changed to return
[integer()]
for some entities. (#64)
Version 2.2.1 released 2011-08-31
- Removed
mochiweb_skel
module from the pre-rebar era
Version 2.2.0 released 2011-08-29
- Added new
mochiweb_http:start_link/1
andmochiweb_socket_server:start_link/1
APIs to explicitly start linked servers. Also added{link, false}
option to thestart/1
variants to explicitly start unlinked. This is in expectation that we will eventually change the default behavior ofstart/1
to be unlinked as you would expect it to. See mochi#58 for discussion.
Version 2.1.0 released 2011-08-29
- Added new
mochijson2:decode/2
with{format, struct | proplist | eep18}
options for easy decoding to various proplist formats. Also added encoding support for eep18 style objects.