Changelog History
Page 12
-
v0.1.14 Changes
โก๏ธ Update: the Response now supports
redirect_to
for both permanent and temporary redirection, with an optionalflash
cookie setup.๐ Performance: the Protocol class now recycles the data string as a thread global socket buffer (different threads have different buffer strings), preventing excessive
malloc
calls by the Ruby interpreter. To keep thedata
(inon_message(data)
) past theon_message
method's scope, be sure to duplicate it usingdata.dup
, or the string's buffer will be recycled.
-
v0.1.13 Changes
๐ Change: Session cookie lifetime is now limited to the browser's session. The local data will still persist until the tmp-folder is cleared (when using session file storage).
๐ Fix: renamed the SSL session token so that the SSL session id isn't lost when a non-secure session is used.
๐ Fix: The
flash
cookie-jar will now actively prevent Symbol and String keys from overlapping.Compatibility: minor fixes and changes in preparation for Ruby 2.3.0. These may affect performance due to slower String initialization times.
-
v0.1.12 Changes
โก๏ธ Update: Passing a hash as the cookie value will allow to set cookie parameters using the {Response#set_cookie} options. i.e.:
cookies['key']= {value: "lock", max_age: 20}
.๐ Security: set the HTTPOnly flag for session id cookies.
-
v0.1.11 Changes
๐ Fix: fixed the Rack server Handler, which was broken in version 0.1.10.
-
v0.1.10 Changes
๐ Fix: make sure the WebsocketClient doesn't automatically renew the connection when the connection was manually closed by the client.
๐ Performance: faster TimedEvent clearing when manually stopped. Minor improvements to direct big-file sending (recycle buffer to avoid
malloc
).
-
v0.1.9 Changes
๐ Fix: WebsocketClient connection renewal will now keep the same WebsocketClient instance object.
โก๏ธ Update Creating a TimedEvent before Iodine starts running will automatically 'nudge' Iodine into "Task polling" mode, cycling until the user signals a stop.
โก๏ธ Update: repeatedly calling
Iodine.force_start!
will now be ignored, as might have been expected. Once Iodine had started,force_start!
cannot be called until Iodine had finished (and even than, Iodine might never be as fresh nor as young as it was).
-
v0.1.8 Changes
๐ Fix: Websocket broadcasts are now correctly executed within the IO's mutex locker. This maintains the idea that only one thread at a time should be executing code on behalf of any given Protocol object ("yes" to concurrency between objects but "no" to concurrency within objects).
๐ Fix fixed an issue where manually setting the number of threads for Rack applications (when using Iodine as a Rack server), the setting was mistakenly ignored.
๐ Fix fixed an issue where sometimes extracting the HTTP response's body would fail (if body is
nil
).๐ Feature: session objects are now aware of the session id. The session id is available by calling
response.session.id
๐ Fix fixed an issue where HTTP streaming wasn't chunk encoding after connection error handling update.
๐ Fix fixed an issue where HTTP streaming would disconnect while still processing. Streaming timeout now extended to 15 seconds between response writes.
-
v0.1.7 Changes
โ Removed a deprecation notice for blocking API. Client API will remain blocking due to use-case requirements.
-
v0.1.6 Changes
๐ Fix: fixed an issue where a session key-value pair might not get deleted when using
session.delete key
and thekey
is not a String object. Also, now setting a key's value tonil
should delete the key-value pair.๐ Fix: fixed an issue where WebsocketClient wouldn't mask outgoing data, causing some servers to respond badly.
๐ Performance: minor performance improvements to the Websocket parser, for unmasking messages.
๐ Deprecation notice:
๐ (removed after reviewing use-cases).
-
v0.1.5 Changes
๐ Feature: The Response#body can now be set to a File object, allowing Iodine to preserve memory when serving large static files from disc. Limited Range requests are also supported - together, these changes allow Iodine to serve media files (such as movies) while suffering a smaller memory penalty and supporting a wider variety of players (Safari requires Range request support for it's media player).
๐ Fix: Fixed an issue where Iodine might take a long time to shut down after a Fatal Error during the server initialization.