moonbridge

log

age author description
2017-06-09 jbe Shortened stderr output in logfile
2017-06-08 jbe Make :kill(signal) accept also strings and default to signal 9 (KILL); Improved error handling of :kill(signal)
2017-06-06 jbe Modified behavior of moonbridge_io.signalsocket(...); Fixed usage of moonbridge_io.signalsocket(...) in moonbridge_http module
2017-06-06 jbe Close idle HTTP connections on SIGTERM
2017-06-06 jbe Make moonbridge_io.signalsocket(...) return a new socket each time it is called
2017-06-06 jbe Ignore SIGTERM once after sending it to own process group
2017-06-06 jbe Undo last commit (Avoid duplicate shutdown)
2017-06-06 jbe Avoid duplicate shutdown
2017-06-06 jbe Allow "main threads" to be named; main threads also use MOONBR_PROTO_INTERVAL as listener type now
2017-06-05 jbe Fixed documentation of moonbridge_io.timeref(...): poll function does not return nil on event
2017-06-05 jbe SIGINFO not available on Linux
2017-06-04 jbe Make moonbridge_io.signalsocket(...) accept strings as argument
2017-06-04 jbe Added signal constants table moonbridge_io.signals
2017-06-04 jbe Use SIGTERM to terminate child processes gracefully
2017-06-04 jbe Fixed documentation of socket:drain_call(...)
2017-06-04 jbe Minor change in documentation of signalsocket(...)
2017-06-04 jbe Added moonbridge_io.signalsocket(...) and moonbridge_io.getpid() functions; poll returns true on signal interruption (instead of nil)
2017-06-04 jbe Backup and restore errno in signal handler
2017-06-04 jbe Added missing "do" statement in while(0) macro workaround
2017-05-28 jbe Do not throw error on TCP RST when waiting for HTTP request
2017-04-25 jbe Updated Lua version in Makefile to 5.3
2016-09-20 jbe Work on non-blocking close (for TLS)
2016-09-19 jbe Use (blocking) tls_close() on :finish() and :close()
2016-09-19 jbe Bugfix: do not attempt flushing/closing if file descriptor has already been closed
2016-09-18 jbe Code reformatting (of #ifdef MOONBR_IO_USE_TLS)
2016-09-18 jbe Simplified error handling with new macro(s)
2016-09-18 jbe Bugfix: Do not throw (hard) Lua error in moonbr_io_handle_set_nonblocking, moonbr_io_handle_set_linger, and moonbr_io_handle_set_nopush (may cause Lua error on connection reset)
2016-09-17 jbe Bugfix: Switch SO_LINGER off also when data is to be flushed on close
2016-09-17 jbe Added TODO for configurable TLS legacy support
2016-09-17 jbe Fixed indentation
2016-09-03 jbe Fixes for TLS extension of moonbridge_io (userdata instead of lightuserdata for TLS configuration required)
2016-09-03 jbe Call tls_close always before closing file descriptor
2016-08-26 jbe Perform TLS handshake in :read and :write methods and store TLS_WANT_POLLIN, TLS_WANT_POLLOUT in handle structure
2016-08-26 jbe More work on libtls integration (incomplete/experimental yet)
2016-08-25 jbe Added missing #ifdef MOONBR_IO_USE_TLS clause
2016-08-24 jbe Modifications to poll(...) function in regard to TLS handshake
2016-08-22 jbe Method :starttls(...) for I/O handle
2016-08-22 jbe Require "mode" parameter passed to tlsconf function
2016-08-21 jbe Process "verify_client" field in moonbridge_io.tlsconf{...}
2016-08-21 jbe Re-added experimental work on libtls integration
2016-08-21 jbe Removed experimental work on libtls integration
2016-08-21 jbe Fixed copy/paste error in tlsconf function
2016-08-21 jbe Work on tlsconf function
2016-08-20 jbe merge
2016-08-20 jbe Use luaL_setmetatable instead of luaL_getmetatable and lua_setmetatable
2016-08-20 jbe Work on optional libtls integration for moonbridge_io (tls_config stub)
2016-07-26 jbe Fixed bug in regard to empty POST bodies
2016-01-16 jbe Added missing documentation for moonbridge_io.timeref(...) function
2016-01-16 jbe Consistent usage of curly brackets for documentation of listen{...} function in reference.txt
2016-01-16 jbe Proper documentation of error handling of moonbridge_io.exec(...) function
2016-01-16 jbe Corrected argument to closefrom() C-call
2015-08-17 jbe Added missing termination in structure passed to getopt_long() call
2015-07-12 jbe Added tag v1.0.1 for changeset 829e748cf668
2015-07-12 jbe Set version string to "1.0.1"v1.0.1
2015-07-12 jbe Fixed bug in write buffer, which caused data to be lost when I/O is blocked
2015-07-12 jbe Fixed trivial error in example_application.lua
2015-07-12 jbe Bugfix in error handling regarding broken client connection
2015-06-23 jbe Added tag v1.0.0 for changeset 828e2bca2e16
2015-06-23 jbe Fixes in reference documentationv1.0.0
2015-06-23 jbe Remove SIGUSR1 mechanism to terminate children gracefully (incomplete yet)
2015-06-23 jbe Updated timeout options in example_application.lua
2015-06-23 jbe Code cleanup in helloworld.lua
2015-06-23 jbe Minor fixes/improvements for reference
2015-06-23 jbe Clarified nil/false return values of poll function and wait_nb method
2015-06-23 jbe Send a TCP RST instead of TCP FIN when a socket gets garbage collected (and hasn't been closed)
2015-06-23 jbe Changed version number to 1.0.0
2015-06-22 jbe Added $(UTIL_FLAGS) to moonbridge_io.so in Makefile
2015-06-22 jbe Fixed mistake in previous commit
2015-06-22 jbe Use accept() only on Linux and only if _GNU_SOURCE is not set
2015-06-22 jbe Safety catch for noncompliant strerror_r() implementation on GNU/Linux systems
2015-06-22 jbe Avoid use of accept4() function in favor of accept() to avoid using _GNU_SOURCE on GNU/Linux
2015-06-22 jbe Avoid use of asprintf function
2015-06-22 jbe Avoid compiler warnings on GNU/Linux (fix)
2015-06-22 jbe Avoid compiler warnings on GNU/Linux
2015-06-22 jbe Ensure that socket handles always get closed, even in case of an error while creating the socket handle
2015-06-21 jbe Removed two functions from moonbridge_io.h
2015-06-21 jbe Code cleanup regarding SOCK_CLOEXEC in moonbridge_io.c
2015-06-21 jbe Support asynchronous I/O with stdin/stdout/stderr of executed child processes
2015-06-21 jbe Adjusted error message sent by request_error function in HTTP module
2015-06-21 jbe Fixes to timeout system in HTTP module
2015-06-21 jbe Improvements to timeout system of HTTP module
2015-06-20 jbe Added drain_timeout to HTTP module
2015-06-20 jbe Bugfix in HTTP module regarding extra yield in read_body()
2015-06-20 jbe Initialize request.get_params correctly in HTTP module
2015-06-20 jbe Avoid hang-up on empty/nonexistent body in moonbridge_http.lua
2015-06-20 jbe Set post_params also in case of GET requests
2015-06-20 jbe Do not read whole request body unless necessary in HTTP module (extra yield)
2015-06-20 jbe Send SIGUSR1 to all child processes on termination via SIGTERM
2015-06-20 jbe Removed example chat application
2015-06-19 jbe Bugfix in moonbridge_io.c regarding reading without terminator char
2015-06-19 jbe Added request:consume_input() call to example_application.lua
2015-06-19 jbe Signal request body EOF in HTTP module
2015-06-19 jbe Use rawget in __index metamethod in HTTP module
2015-06-19 jbe Avoid resuming dead coroutine in HTTP module (set consume = nil)
2015-06-19 jbe Removed wrong socket:write call in send call in HTTP module
2015-06-19 jbe Fixed mistake with additional local state variable in HTTP module
2015-06-19 jbe Changed scope of local target variable in HTTP module
2015-06-19 jbe Removed moonbridge_websocket.c
2015-06-19 jbe Code cleanup, renamed functions, added documentation for HTTP module
2015-06-19 jbe Fixes and code-cleanup in HTTP module
2015-06-19 jbe Code cleanup in HTTP module
2015-06-19 jbe Some code cleanup / fixes in HTTP module
2015-06-19 jbe Code cleanup and added "request_body_content_length" declaration in HTTP module
2015-06-18 jbe Throw error if key is not a string when accessing headers table
2015-06-18 jbe Check if key is a string in index metamethod of headers table
2015-06-18 jbe Bugfix in headers metatable (causes lowercase headers to not be properly processed)
2015-06-18 jbe Renamed remaining_header_size_limit and remaining_body_size_limit to local "limit" variables
2015-06-18 jbe Minor code cleanup and changed default timeout values
2015-06-17 jbe Ignore nil values in pairs(...) on GET and POST params
2015-06-17 jbe Added missing header reading/parsing for new HTTP module implementation
2015-06-16 jbe Completed new HTTP module implementation (untested yet)
2015-06-16 jbe Removed "prepare" state and added 100-Continue header in local prepare() function in HTTP module
2015-06-16 jbe Use abstraction for socket:read_yield(...) in HTTP module
2015-06-15 jbe Fixes for last commit
2015-06-15 jbe Work on new HTTP module implementation
2015-06-15 jbe Use old system for GET/POST param tables in new HTTP module implementation
2015-06-13 jbe Work on new HTTP module implementation
2015-06-13 jbe Work on new HTTP module implementation
2015-06-13 jbe Work on new HTTP module implementation
2015-06-12 jbe Work on new HTTP module implementation
2015-06-11 jbe Work on new HTTP module implementation
2015-06-11 jbe Discard minimal changes to HTTP module in favor of new reimplementation
2015-06-11 jbe Restarted work on new HTTP module implementation
2015-06-05 jbe Further work on new HTTP layer (not finished)
2015-05-27 jbe Minimal changes to HTTP module to support interface of new :read(...) method
2015-05-27 jbe Further work on new HTTP layer (code cleanup, work on body reading)
2015-05-26 jbe Further work on new HTTP layer (read body, without parsing yet)
2015-05-25 jbe Further work on new HTTP layer
2015-05-21 jbe Initial work on reimplemented HTTP layer (utilizing non-blocking I/O with coroutines and a cleaner object-oriented structure)
2015-05-19 jbe Accept max length of zero for read methods
2015-05-15 jbe Removed moonbridge_io.run(...); yielding read and write methods do not yield any values
2015-05-08 jbe Improved Lua reference code for moonbridge_io.run(...)
2015-05-08 jbe Fixed trival mistake in reference.txt
2015-05-08 jbe New function moonbridge_io.run(...) as a "coroutine scheduler"
2015-05-07 jbe Reverted previous commit (but changes to Makefile)
2015-05-07 jbe Do not pass moonbridge_io.block when invoking callback passed to _call I/O methods but only include it for _yield I/O methods
2015-05-07 jbe Proper treatment of zero/negative timeouts to moonbridge_io.poll(...); Make _yield methods yield singleton moonbridge_io.block as first yield value
2015-05-02 jbe Yielding write and flush methods for I/O
2015-05-02 jbe Added new methods drain_call, drain_yield
2015-05-02 jbe Method "read" always returns two return values
2015-05-01 jbe Bugfix regarding detection of read end in "read" method
2015-05-01 jbe Fixed wrong treatment of Lua string buffer in drain mode
2015-05-01 jbe Added methods "read_call" and "read_yield"
2015-04-18 jbe Added moonbridge_io.h to Makefile; Added stub for moonbridge_websocket.c (with base64'd SHA-1)
2015-04-17 jbe Check if file descriptors are in valid range before using them for select
2015-04-16 jbe Added _GNU_SOURCE #define for Linux; Avoid compiler warning
2015-04-16 jbe Restored Linux compatibility regarding #include section
2015-04-16 jbe Cleanup regarding #include directives
2015-04-16 jbe Proper distinction between AF_* and PF_* constants (and commented where it is not the case)
2015-04-16 jbe Revised flushing behavior of write_nb(...) again
2015-04-16 jbe Revised flushing behavior of write_nb(...)
2015-04-15 jbe Example application uses new "main" protocol; Handler for "main" gets table with "main" set to true
2015-04-15 jbe Modified termination sequence handling
2015-04-14 jbe Bugfix in close method of moonbridge_io (do not mark as closed before flushing)
2015-04-14 jbe Moved functions in source code to avoid necessity of forward declaration
2015-04-14 jbe Introduced new proto "main" to allow for a main thread
2015-04-14 jbe Removed <file>:readuntil(...) function
2015-04-14 jbe Code cleanup; Allow binding to specific interfaces
2015-04-12 jbe Do not announce socket/listener type when communicating with the child process
2015-04-11 bsw Updated chat example
2015-04-11 jbe Make moonbridge_io.poll(...) return immediately if there is data pending in read buffers
2015-04-11 bsw Added multiuser chat to example
2015-04-10 jbe Use SO_REUSEADDR for moonbridge_io.tcplisten(...)
2015-04-10 jbe Fixed bug regarding testing of valid file descriptor in moonbr_child_run function
2015-04-10 jbe Delete local socket in filesystem before and after listening
2015-04-10 jbe Bugfixes regarding treatment of memory allocation errors and closing file descriptors
2015-04-10 jbe Proper marking I/O handles as closed and finished
2015-04-10 jbe Added helper function moonbridge_io.timeref(...); HTTP module sends 408 Request Timeout
2015-04-09 jbe Updated reference to include listeners and local sockets
2015-04-09 jbe Moved SIGPIPE ignore from moonbridge.c to moonbridge_io.c
2015-04-09 jbe New function moonbridge_io.locallisten(path) to listen on local (unix domain) sockets
2015-04-09 jbe Added function moonbridge_io.localconnect(pathname) to connect to local (unix domain) socket
2015-04-09 jbe Fixed bug regarding length check of addess of local (unix domain) socket
2015-04-09 jbe Catching state-related errors properly in moonbridge_io.poll(...)
2015-04-09 jbe Fixes in moonbridge_io.tcpconnect(...); Added moonbridge_io.tcplisten(...)
2015-04-08 jbe Moved local/remote address extraction/formatting to I/O library
2015-04-08 jbe Added moonbridge_io.poll(...)
2015-04-08 jbe Refined buffer model for reading in I/O library
2015-04-08 jbe Some code cleanup in I/O library
2015-04-08 jbe Different buffering model for I/O writer
2015-04-08 jbe Added missing freeaddrinfo() call to moonbridge_io.tcpconnect(...) function; Updated documentation regarding blocking DNS lookups of tcpconnect(...)
2015-04-08 jbe Convert local and remote IP address to human readable string
2015-04-08 jbe Bugfix in C function moonbr_io_closehandle
2015-04-08 jbe New function moonbridge_io.tcpconnect_nb(...) for nonblocking connects
2015-04-08 jbe Added moonbridge_io.tcpconnect(...) function
2015-04-08 jbe Bugfix regarding TCP PSH
2015-04-08 jbe Allow full write buffer without forcing TCP PSH
2015-04-08 jbe Correctly cache nonblocking status of socket in I/O library; Use TCP_NOPUSH/TCP_CORK when applicable
2015-04-07 jbe Removed timeout option from socket:close(); Simulate shutdown for local sockets (Unix Domain Sockets)
2015-04-07 jbe Removed excess linebreak in reference.txt
2015-04-07 jbe Always re-fill immediate send buffer in write_nb method
2015-04-07 jbe write_nb returns total number of bytes buffered in case of block; Updated reference
2015-04-07 jbe Proper return values for drain functions
2015-04-07 jbe Register I/O library as moonbridge_io (and not mapping functions into io)
2015-04-07 jbe Extended I/O library; Integrated new I/O library into moonbridge.c and moonbridge_http.lua
2015-04-07 jbe Close and reset method for I/O library
2015-04-07 jbe New I/O methods drain and drain_nb
2015-04-06 jbe Implementation of read and read_nb in I/O module
2015-04-06 jbe Refined interface of I/O library to directly support (previously opened) sockets
2015-04-06 jbe Code cleanup and fixes in optionally non-blocking write/write_nb method; Allow to mark I/O handles as closed
2015-04-06 jbe Non-blocking write methods shall return io handle
2015-04-06 jbe Implementation of write, write_nb, flush, flush_nb with double buffering technique
2015-04-06 jbe Blocking :write(...) and :flush(...) methods in I/O library
2015-04-05 jbe Stub for new non-blocking I/O library
2015-04-05 jbe Reverted experimental work on non-blocking I/O with file handles
2015-04-05 jbe Use write instead of fwrite for non-blocking I/O
2015-04-05 jbe Work on write_nb method
2015-04-04 jbe Proper handling of out-of-memory errors in xread_nb method
2015-04-04 jbe Mention testing of file handle buffer test in io.poll(...)
2015-04-04 jbe Another initialization to avoid (wrong) compiler warning
2015-04-04 jbe Add initialization to avoid compiler warning
2015-04-04 jbe Updated reference to include xread, xread_nb, write_nb
2015-04-04 jbe Fixed io.poll(...) function
2015-04-04 jbe Work on io.poll(...) and file handle methods "xread", "xread_nb", "write_nb"
2015-04-04 jbe Extended io.poll(...) to check FILE buffers; Replaced method "readuntil" with "xread"
2015-04-04 jbe Fixed typo in moonbridge.c
2015-04-04 jbe Work on non-blocking I/O; Improved efficiency of :readuntil(...)
2015-04-04 jbe Second table to io.poll(...) is optional
2015-04-04 jbe Work on support for non-blocking I/O
2015-03-30 jbe Optimized module preamble
2015-03-24 jbe Added tag v0.4.0 for changeset 54d488774467
2015-03-24 jbe Set default fork delay to 0.25 secondsv0.4.0
2015-03-24 jbe New method request:close_after_finish()
2015-03-24 jbe Do not discard duplicate "Connection: close" header (because other connection options might be set)
2015-03-23 jbe Set _MOONBRIDGE_VERSION variable for Lua machine
2015-03-22 jbe Removed explicit garbage collection while waiting for next request
2015-03-22 jbe Collect Lua garbage after initialization
2015-03-22 jbe Perform garbage collection before waiting for request
2015-03-22 jbe Adjusted HTTP timeouts
2015-03-22 jbe Timeout management
2015-03-22 jbe Improvements to reference (idle_time vs timeout)
2015-03-20 jbe Send TCP RST in case of input error when output has already been (partially) written
2015-03-20 jbe Proper handling of I/O errors; Added property "request.faulty"; Removed "io_error_handler" hook; Added documentation for global function "timeout"
2015-03-19 jbe Bugfix in local error_response function
2015-03-19 jbe Renamed "Request body is already being processed" error to "Request body is currently being processed"
2015-03-19 jbe Bugfix: Don't read request body when sending (minimalistic) error response due to malformed requests, etc.
2015-03-19 jbe Treat multipart/form-data protocol errors and chunked transfer-encoding protocol errors as I/O errors
2015-03-19 jbe Added missing assert_io(...) for socket.output:close(); Close peer connection (with TCP RST) on I/O error
2015-03-17 jbe Added io_error_handler; Code cleanup
2015-03-09 jbe Methods :close(), :cancel(), and :readuntil(...) do not throw I/O errors but return error message as second return value after nil

Impressum / About Us