moonbridge

log

age author description
5 months ago jbe Added tag v1.1.3 for changeset 62901393deb0default tip
5 months ago jbe Updated reference regarding dual IPv6/IPv4 socketsv1.1.3
5 months ago jbe Updated LICENSE
7 months ago jbe Added missing "extern" for moonbr_io_sigterm_flag (caused linker errors on certain platforms)
7 months ago jbe Improved Makefile to allow manual selection of PLATFORM and DISTRIBUTION; Emit warning if platform or Linux distribution could not be determined
7 months ago jbe Added missing include of fcntl.h to avoid compiler warning under Linux
8 months ago jbe Make moonbridge_io.tcplisten(nil, port) accept both IPv6 and IPv4 connections independently of operating system setting; if first argument is non-nil and resolves to an IPv6 address, never accept IPv4 connections
9 months ago jbe Added tag v1.1.2 for changeset a8b1012856a5
9 months ago jbe Bugfix: Do not use freeaddrinfo() if getaddrinfo() failedv1.1.2
15 months ago jbe Fixed proper errno handling for blocking I/O in localconnect function for connecting to sockets
23 months ago jbe Use "cc -shared" instead of "ld -shared" to create *.so files
23 months ago jbe Add -L/usr/lib -lc to all invocations of ld on FreeBSD
23 months ago jbe Add -L/usr/lib to ld call for compiling on FreeBSD
2019-01-21 jbe Use offsetof macro at compile time to determine maximum length of local socket paths
2018-12-22 jbe Added tag v1.1.1 for changeset 5fe68ba5fe0e
2018-12-22 jbe Raspbian support in Makefilev1.1.1
2018-10-04 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

Impressum / About Us