[beepwg] [ANN] Turbulence 0.5.2 'Los días raros' release is ready!

Skip to first unread message

Francis Brosnan Blazquez

May 20, 2011, 4:54:16 AM5/20/11
to Vortex, BEEP, BEEPwg
-= Turbulence 0.5.2 =-
"Los dï¿œas raros release"

Release note

Advanced Software Production Line is proud to announce Turbulence
0.5.2 "Los dï¿œas raros" release: an open source BEEP application
server, written on top of Vortex Library 1.1.

Turbulence is a BEEP server extensible through modules which allows
to implement server side profiles that are used and combined later
with other profiles through run time configuration.

Turbulence is written to make it easy to develop and deploy BEEP
profiles, allowing developers to provide a convenient configuration
interface to site administrators and end users.

Check out the following links to get ready with Turbulence:

- http://www.aspl.es/turbulence
[Turbulence homepage]

- http://www.aspl.es/vortex
[Vortex Library homepage]

- http://www.sf.net/projects/vortexlibrary
[Sources and binaries]

- http://www.beepcore.org
[BEEP Core community web site]

- http://www.aspl.es/xml
[Axl Library, XML 1.0 implementation]

The release in short

Added fully working mod-tls which allows to configure different
certificates according to serverName provided on BEEP session.

General updates to SASL infrastructure which now support
loading databases from different locations or providing a particular
sasl configuration at the profile path working directory. Also added
support for MySQL.

Many bugs were fixed and many regression tests were added. Added lot
of documentation.

Change notifications

Changes since the 0.4.1

* [new] Updated tbc-sasl-conf tool to allow loading databases from
different locations than default. This allows users to implement
SASL databases inside they working directories.

* [new] Updated tbc-sasl-conf tool to allow changing passwords to
existing users.

* [fix] Fixed log creation with wrong permissions.

* [fix] Making configure process to create directory used to transfer
socket connections between process and to set the right permissions

* [fix] Updated clean start code to detect if the server was started
or not, to avoid killing the server when it was working.

* [fix] Committing debian files.

* [fix] Adding some checks to turbulence_msg, error, wrn and error to
avoid printing NULL values. Updated mod-python module to also check
values received from Python space (especially None).

* [fix] Updating mod-python to sanitize strings received on
tbc.{msg,error} API avoiding passing incomplete %s format to C API.

* [fix] Updating mod-python turbulence.Ctx.msg/error/wrn method to
replace all % by # to avoid printf functions inside C API to handle
such characters..

* [fix] Updating module versions.

* [new] Updated mod-python to allow administrator to define python
paths that will be included before loading a python app. XML path:

* [fix] Updated mod-python location support to allow keeping the path
defined to load the python start file after module was completely

* [fix] Updated python.conf.xml example to include add-path

* [fix] Committing init script.

* [new] Added new fully working mod-tls to support TLS profile inside
turbulence. The module allows to configure a set of certificates to
be used according to serverNames provided by connecting peer. Added
initial module documentation.

* [fix] Making mod-sasl to not return a critical error on profile path
selected in the case no database is found associated to the
serverName provided.

* [fix] Improved profile path filtering code to use gathered
information from turbulence connection manager module to search and
apply restrictions instead of checking all profiles registered
globally. Now all operations are done against opened profiles on a
connection (not channels) which improve operations where 1000
channels may be opened but only 3 profiles are running.

* [fix] Updated turbulence profile path module to allow application
layer to install a profile alias that causes to check a certain
attribute on a connection instead of the profile itself. This is
useful for TLS profile because once it finishes, there is no TLS
channel to check. API added:

- turbulence_ppath_add_profile_attr_alias

* [new] Updated turbulence expressions module to also record the
expression that was used to build the object. Now it is possible to
check this string by using:

- turbulence_expr_get_expression

* [new] Updated turbulence documentation to explain how to use system

* [fix] Updated turbulence process module to check if exists the run
time directory used to create the child control socket. The module
creates it in the case it is not available.

* [new] Added new function that allows getting profile stats on a
particular connection. API added:

- turbulence_conn_mgr_profiles_stats

* [new] Updated regression test to check new mod-tls added. Added
additional checks to ensure the module properly interacts with other
modules, especially mod-sasl (test 22).

* [fix] Updated mod-tls documentation to include examples to create a
key and a certificate.

* [fix] Adding documentation to explain how to include additional
paths to mod-python loaded applications.

* [fix] Updating error reporting at mod-tls.

* [fix] Fixed documentation building warning to avoid using

* [fix] Updating documentation.

* [new] Updates on-bad-signal actions to include support to get a
backtrace of the current process and dump it into a file. Also added
support to send this report to a configured mail address. Used new
smtp client support added. API added:

- turbulence_support_get_backtrace

Added test_10-a to check support added.

* [new] Added new configurable API to send SMTP messaged with
preconfigured SMTP servers, allowing to report notifications
(backtrace reports). API added:

- turbulence_support_smtp_send
- turbulence_support_simple_smtp_send

Added regression test (test-01-b) to check support added.

* [new] Added internal TurbulenceCtx status to check if we are running
in the context of the parent process or a child created

* [fix] Updated turbulence.example.conf to include latest smtp
notification examples..

* [fix] Updated signal handling to do a SMTP notification for any bad
signal received instead of only when backtrace option is configured.

* [new] Added documentation to explain how to use SMTP notifications.

* [fix] Adding additional debugging info to console signal handling.

* [new] Updated mod-python to include turbulence.Ctx.broadcast_msg
API. Added documentation to explain how to use it.

* [fix] Fixed gcc warning caused by not catching result from write ()

* [fix] Fixing naming error inside internal attribute to flag
turbulence is exiting.

* [fix] Making turbulence_conn_mgr_broadcast to check if the
connection found is defined to skip it.

* [fix] Updated turbulence_conn_mgr module to temporally unlock
internal mutex when each individual connection shutdown is called
during the cleanup process (avoid deadlocks with user code that
calls to conn mgr functions from inside connection close handlers,
that are activated by shutdown stuff).

* [fix] Fixed turbulence.example.conf to allow regtest pass (test_06).

* [fix] Fixed documentation error inside PyTurbulenceCtx doc.

* [fix] Adding missing file.

* [fix] Adding missing mod-python documentation.

* [fix] more mod-python documentation.

* [fix] Adding more tbc.Ctx documentation.

* [fix] Making mod-sasl Xml backend to reload database if file
modification stamp differs. Allows reloading database modified by
command line with a turbulence loaded in memory.

* [new] Added initial code to mod-sasl to support more database
formats in a dynamic way. Road to add support to mysql.

* [new] Added high level load module function to reuse all this code
in other places (like mod-sasl to load backend extensions). Updated
turbulence-run to use it. API added:

- turbulence_module_open_and_register

* [fix] More updates to mod-sasl to load extension modules that will
provide more database backends.

* [new] Adding initial code to implement mod-sasl-mysql. [fix]
Updated tbc-mod-gen to produce proper function signature for profile
path selected handler.

* [fix] More updates to support detecting mysql platform support and
updated mod-sasl-mysql and common-sasl.[ch] to support registering
handlers for additional formats.

* [fix] More updates to mod-sasl to support external handlers that
adds support for more database format. Added new functions to get
handler registered (to manage the particular format), load database
and to check if a format is registered. Adding initial auth-db
example based on mysql.

* [new] General updates to mod-sasl module to allow loading extension
modules that will provide support for additional backends. Used this
new support for a mysql backend. Still more work required.

* [fix] Added initial test (test_12b) to check mod-sasl mysql support.

* [fix] More mod-sasl generalizations to allow delegating more
functions to common functions that may be implemented by external
handlers. Reorganized users database loading code to share as much
as possible between each loaded.

* [fix] More updates to support backend handlers for mod-sasl. Updates
applied to auth code.

* [fix] More updates to mod-mysql-sasl.

* [fix] Added a delay to test_13-a to ensure connection counting check
is passed now connection close is not blocking (due to vortex

* [fix] Making turbulence conn manager connection close to check the
has reference before doing nothing. This is now triggered by
connection close non-blocking behavior.

* [fix] Updated mod-sasl-mysql to release result on failure and to
cleanup libmysqlclient-dev on module close.

* [fix] Updated mod-sasl auth-db loading (xml format) to use base dir
used to load sasl.conf file in the case all loading paths fails.

* [fix] Updated mod-sasl documentation to explain how to use new
mod-sasl-mysql module. Added extension.modules file example and
included into the installer.

* [new] Added a simple tool (gen-mod-sasl-pass.py) to mod-sasl code to
allow creating passwords using the format expected by the module and
as example of code to allow other apps to produce these passwords.

* [fix] Fixed missing file references at mod-sasl.

* [fix] Adding missing files for turbulence test_12-b.

* [fix] Adding missing file extension.example.modules to mod-sasl

* [fix] Minor updates due to vortex internal changes. Updated
regression test to allow selecting which test to run.

* [fix] Making profile selection path (turbulence-ppath) to reduce its
log when connection is on greetings phase.

* [fix] Making turbulence conn manager to now report as a failure not
finding profile stats for a connection in the case the connection
has no channels running on it.

* [new] Updated PyTurbulence to include .wrn method. API added:

- PyTurbulenceCtx.wrn

* [new] Updated API to include a function to return current temporal
directory. API added:

- turbulence_runtime_tmpdir

* [fix] Updated turbulence_support_get_backtrace to check if the
directory that will hold the backtrace is writable for the current
user changing the output path to the temporal directory.

* [fix] Making turbulence child process to check connection status
after notifying profile path select, to avoid registering a broken

* [fix] Updates to mod-python module to support connection filtering
at ctx.broadcast_msg inside Python API. Still more work required.

* [new] Updated PyTurbulence inside mod-python to allow providing a
filtering function to control connection broadcast

* [fix] Updated turbulence regression test to check this new feature

* [new] Updated mod-sasl-mysql to allow configuring an SQL query which
is called to log auth operations (with ok and failure status).
Updated documentation and example to show how to use it.

* [fix] Fixed memory leak at mod-sasl-mysql causing to leak axlError
reference on query failure.

* [fix] Adding initial code to support coma separated regexp
list. Added initial regression test. Still more work required.

* [fix] Finished work required to support "or" expressions defined.
by coma. Added regression test to check support added.

* [new] Updated mod-sasl module to allow mod-sasl-mysql extension to
check for ip-filter declaration allowing to filter Auth logins
attempts using an ip expression. Nice!!

* [fix] Fixing documentation. Adding examples for expressions
supported by turbulence expressions.

* [fix] Fixed wrong handling at child process creation when a profile
path was selected (because it is too generic) and TLS was then
activated on that child process. Now the child process detects this
situation and preconfigures profile path that was previously

* [fix] Security: making child control connection with parent to
remove the file associated as soon as the connection is established.

* [fix] Added internal check to prevent child process creating new
child processes due to connection created.

* [fix] Restored parent/child control connection to make the bind()
operation at the child.

* [fix] Adding internal notes to turbulence profile path module to
explain how profile path works in general and how a profile path is

* [fix] Fixed internal profile path bug which was causing due to races
to not activate the right profile path when they depend on having a
channel activated. In the case the race is activated, the
notification about the channel comes after this data is required and
thus the profile path isn't activated. Checked regression tests to
ensure they are working.

* [new] Adding new support function to implement microsecond wait. API

- turbulence_ctx_wait

* [fix] Added lot of debugging information to profile path activation
process to help tracking configuration problems.

About Us

Advanced Software Production Line provides GNU/Linux support and
consulting services to help organizations to introduce GNU/Linux
inside its process.

Contact us, using English or Spanish, to get commercial support
and/or BEEP based development services.

You can reach us:

http://www.aspl.es - in...@aspl.es

Enjoy Turbulence!

Francis Brosnan Blï¿œzquez - fra...@aspl.es
Advanced Software Production Line - http://www.aspl.es
20th may 2011, Madrid (Spain)

Reply all
Reply to author
0 new messages