moonbridge

log

age author description
3 months ago jbe Fixed proper errno handling for blocking I/O in localconnect function for connecting to socketsdefault tip
11 months ago jbe Use "cc -shared" instead of "ld -shared" to create *.so files
11 months ago jbe Add -L/usr/lib -lc to all invocations of ld on FreeBSD
11 months ago jbe Add -L/usr/lib to ld call for compiling on FreeBSD
20 months ago jbe Use offsetof macro at compile time to determine maximum length of local socket paths
21 months ago jbe Added tag v1.1.1 for changeset 5fe68ba5fe0e
21 months ago jbe Raspbian support in Makefilev1.1.1
23 months ago jbe Methods to manipulate socket buffer sizes
2018-07-26 jbe Added tag v1.1.0 for changeset f6154dccdab8
2018-07-26 jbe Fixed year in LICENSE filev1.1.0
2018-07-26 jbe Added tag v1.1.0 for changeset 15132b3c053d
2018-02-03 jbe Fixed some bugs with _call and _yield functions in moonbridge_io
2018-02-01 jbe Added parameter to waitfunc of asynchronous I/O functions which allows to check whether waitfunc was called for the first time
2018-02-01 jbe Modified non-blocking I/O _call functions to pass certain arguments (socket, mode, module) to wait function
2018-01-27 jbe merge
2018-01-27 jbe Bugfix/workaround: Do not call getpeername() when opening TCP connections in non-blocking mode
2017-12-04 jbe Linux compatibility: do not set sun_len
2017-11-24 jbe Bugfix: Properly set sun_len, sun_family, and addrlen when filling sockaddr_un struct (using maximum possible length)
2017-11-24 jbe Renamed HTTP "header_size_limit" and "body_size_limit" options to "request_header_size_limit" and "request_body_size_limit" (to match documentation in example code)
2017-11-24 jbe Fixed use of INET_ADDRSTRLEN constant (for IPv4)
2017-11-19 jbe Added tag v1.0.2 for changeset e4e1ad8d5ab8
2017-11-16 jbe Code cleanup in moonbr_io_read_cont function (avoid unnecessary lua_pushvalue)v1.0.2
2017-11-16 jbe Bugfix in moonbr_io_read_cont function which caused read chunks to be concatenated in wrong order
2017-11-15 jbe Avoid using WNOWAIT in moonbridge_io.poll(...) for Linux compatibility
2017-06-23 jbe Do not shutdown due to main thread termination when shutdown is already in progress
2017-06-18 jbe Fixed two errors in moonbridge_io.poll(...) regarding child termination
2017-06-18 jbe Code formatting
2017-06-18 jbe Throw error when polling a collected child process
2017-06-18 jbe Fixed wrong treatment of waitpid() return value in moonbridge_io.poll(...)
2017-06-17 jbe Bugfix regarding waiting for child processes in moonbridge_io.poll(...)
2017-06-17 jbe Extend moonbridge_io.poll(...) to support waiting for child process termination
2017-06-17 jbe Make moonbridge_io.poll(...) check for SIGTERM also when wakeup is forced due to TLS negotiation or closed local socket
2017-06-12 jbe Code-cleanup: removed redundancy in moonbr_initiate_shutdown()
2017-06-12 jbe Do not reuse child workers that have been SIGTERM'ed
2017-06-12 jbe Bugfix in moonbridge_io.c: Do not restore sigmask if not changed
2017-06-12 jbe Bugfix in moonbridge.c: Do not use killpg but only terminate each child
2017-06-11 jbe Changed error messages for moonbridge_io.poll(...)
2017-06-11 jbe Fixed documentation of moonbridge_io.poll(...)
2017-06-11 jbe Changed behavior of moonbridge_io.poll(...); Renamed moonbridge_io.sigterm_setup() to moonbridge_io.catch_sigterm(); Removed moonbridge_io.sigterm_received()
2017-06-11 jbe Use new sigterm handling in moonbridge_http
2017-06-11 jbe Minor fixes in reference.txt
2017-06-11 jbe Removed moonbridge_io.signals table
2017-06-11 jbe New implementation of SIGTERM handling
2017-06-09 jbe Removed colon from stderr output
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

Impressum / About Us