Vortex Library Changelog

What's new in Vortex Library 1.1.14 Build 5292

Nov 26, 2014
  • [fix] Improved notification about complete frame limit reached so it can be more useful. Added information about the profile and connecting host and port.
  • [fix] Several updates into ALIVE implementation to check max unreply count x check period while waiting for creating the channel to ensure connection close event is triggered if that max period is reached. Also updated checking to trigger failure when max unreply count is reached instead of exceeding it.
  • [fix] Fixed ALIVE when checks are done too quickly (check_period of 20000 and max_unreply_count set to 5). Updated documentation to explain limits.
  • [fix] Adding support to ubuntu precise..
  • [fix] Fixed missing vortex_frame_unref at vortex-simple-client.c
  • [new] Updated vortex engine to support IPv6. Nice! Now IPv4 and IPv6 are automatically supported on the previous IPv4 APIs and new specific APIs are provided to "force" IPv6 resolution/usage.
  • New API function added:
  • vortex_connection_new_full6
  • vortex_connection_new6
  • Added new regression tests to check IPv6 support and to tests how it plays with IPv4 API:
  • test_02a3
  • test_02a4
  • [fix] Restoring back -ansi compilation flag. Updated vortex_connection_private.h to have some of the IPv6 resolution function prototypes so they are available during compilation even having -ansi enabled.
  • [fix] Several modifications to make IPv6 support to work on windows. Still more work required.
  • [fix] Added new API functions to allow IPv6 only listeners. API added: vortex_listener_new6 - vortex_listener_new_full6
  • [fix] Additional modifications to make vortex-simple-client.c and vortex-simple-listener.c to compile on windows and to allow selecting IPv6 addresses from the command line.
  • [fix] Updated vortex listener module to include more debug info when the listener fails.
  • [fix] Updated vortex connection freeaddrinfo code to fix a really really really odd behavior while calling it directly on finalization. :-??
  • [fix] Fixed memory allocation error when vortex_listener creation fails.
  • [fix] Updated vortex sequencer and vortex channel module to initialize static data used and reply handling (avoids valgrind warnings).
  • [fix] Added some initialization to test_02_c2 variables used at vortex-regression-listener.c

New in Vortex Library 1.1.13 (Jan 27, 2014)

  • [fix] Updated pyvortex conn.remove_on_close handler to check that value received is a handle to avoid a segfault when None or other complex object is received.
  • [new] Updated PyVortex API to include a new API that will allow python space code to enable too long notifications (handlers that are taking too long to finish) into a file. API added: - vortex.ctx.enable_too_long_notify_to_file
  • [fix] Removed debug messages from vortex_init_check.
  • [fix] Fixed unnecessary VortexCtx
  • ctx declaration inside vortex_channel_remove_first_pending_msg_no which cause the build to fail when log support is disabled. Bug reported by Dan Moore.
  • [new] Updated PyVortex API to include vortex.unlock_listeners...
  • [fix] Adding missing simple listener and simple client and fixed documentation that was out of date. Problem reported by Mark Fowler.
  • [fix] Fixed debian declaration for python-vortex-* packages to depend on python-vortex..
  • [fix] Adding instructions to run regression test before sending a patch..
  • [fix] Fixed wrong reference handler at vortex tls post action causing to return a reference that was finished because automatic tls failed. Bug reported with a nice test case by Michael Sola.
  • [fix] Updated python-vortex package installation to rename /usr/lib/python2.5/site-packages/vortex folder when found squeeze installation being upgraded from lenny.
  • [new] Added new extension library (libvortex-websocket-1.1) to support providing BEEP over WebSocket through noPoll library. Nice!! Added initial regression test (test-17) to test support.
  • [fix] Updated connection creation waiting code to detect Bad File Descriptor error code to stop waiting while connecting.
  • [new] Added new functions to allow storing and getting a hook pointer associated to a connection to avoid having to use vortex_connection_set_data and its getters which its computational expensive in cases where lots of calls are required. API added: - vortex_connection_get_hook - vortex_connection_set_hook
  • [fix] Updated reading code to track the number of "no data available" operations found for a particular connection to shutdown it when a certain amount is reached.
  • [fix] Updated reading code to execute preread handler (if defined) for VortexRoleMasterListener connections.
  • [fix] Several updates to ensure libvortex-1.1 is compilable when web-sockets isn't available.
  • [fix] Updated libvortex-websocket library to support having BEEP running on top of a TLS Websocket (wss). Nice! Added new API and regression test test_18 and test_19. API added: - vortex_websocket_connection_is_tls_running - VORTEX_WEBSOCKET_CONF_ITEM_ENABLE_TLS (configuration item)
  • [fix] Minor change to vortex_websocket.c transport..
  • [fix] Updated vortex_support.c to replace GetEnvironmentVariable and SetEnvironmentVariable with they "A" implementations to ensure ascii version is used even when those functions are used with Unicode build enabled. Bug reported and fix proposed by Étienne Dupuis (Thanks!) More information at: http://msdn.microsoft.com/en-us/library/windows/desktop/dd317766(v=vs.85).aspx
  • [fix] Making channel start notification to detect and fix serverName value provided by the requester in the case serverName value was already configured on the BEEP session by a previous request.
  • [fix] Updated vortex-websocket extension library to setup the serverName value associated to the BEEP session according to the Host header received over the WebSocket connection (if provided). Also updated the module to flag the connection as "having TLS on" when received a successful TLS WebSocket connection (wss://). This way turbulence is able to handle BEEP sessions with TLS profile and BEEP session over wss:// with the same profile path declaration. Fixed vortex-websocket-1.1.pc to also require nopoll module.
  • [new] Updated vortex support module API to include a new function to create a portable pipe. Moved this code from lua code which now uses this public and cleaned definition. API added: - vortex_support_pipe
  • [new] Updated vortex connection API to include a new function to return the internal data hash associated to each connection. API added: - vortex_connection_get_data_hash
  • [fix] Fixed some debug logs that should be critical at vortex connection module.
  • [fix] Fixed memory leak inside vortex_channel when caller requested a new serverName value over a connection with that value set.
  • [fix] Updated vortex frame factory to only drop an error log when errno != 0 and and raw read error was found.
  • [fix] Making websocket module to get Host: header value up until the ":" value.
  • [fix] Making vortex_connection_set_server_name to find hostname declarations with port part and take away it from the final serverName configured.
  • [fix] Making vortex channel pool to not print the status unless explicitly called by the client.
  • [fix] Added new regression test to check if it is possible to flood a vortex BEEP listener by sending a greetings initial message formed by infinite frames with more flag on.
  • [new] Added initial support for port share support that will allow running BEEP and BEEP over WebSocket (with TLS variation) on the same port without having to have especial configurations from library users. API added: - vortex_listener_set_port_sharing_handling - VortexPortShareHandler Added initial regression test (test_20). Still more work required. Looks really promising.
  • [fix] More updates on port sharing code used by web-socket extension library. Now regtest (test-20) finishes properly. Still more work required.
  • [fix] More cleanups on port share code. Updated code to release pending code at the listener side. Updated test_20 to ensure the connection is really working..
  • [fix] Completed working and tested implementation for Websocket port sharing including support to run on the same port BEEP, BEEP over WebSocket and BEEP over TLS websocket..
  • [fix] Fixed transport detection (port-sharing) at web-socket extension library when receiving TLS connections. Updated module to acquire references to noPollCtx object when enabled port-sharing.
  • [fix] Updated web-socket extension library to run post action functions that setups Host: WebSocket header into BEEP serverName value.
  • [fix] Updated vortex web-socket module to install thread safety handlers used by noPoll to protect critical sections.
  • [fix] Making vortex reader engine to shutdown connections before calling vortex_connection_unref on finishing operations.
  • [fix] Updated web-socket extension library to include a new setup options to enable noPoll Debug. API added: - VORTEX_WEBSOCKET_ENABLE_DEBUG
  • [fix] Several updates to fix various debug log calls with wrong or poorly configured arguments.
  • [fix] Added additional logging into web-socket extension library.
  • [fix] Renamed VORTEX_WEBSOCKET_ENABLE_DEBUG into VORTEX_WEBSOCKET_CONF_ITEM_ENABLE_DEBUG.
  • [fix] Added new function to setup manually host and port value returned by vortex_connection_get_host and vortex_connection_get_port for a given connection. API added: - vortex_connection_set_host_and_port
  • [fix] Engine update to detect bad file socket descriptors that may have been closed by other means not controlled by vortex to drop those connections as soon as possible. Added regression test to reproduce the bug and check the fix introduced (test-01y).
  • [fix] Updated vortex reader loop to do the wrong connection check after the stopping code. Upps.
  • [fix] Updated regression test code to allow enabling websocket debug when received --enable-websocket-debug
  • [fix] Updated vortex reader to unset socket associated to a connection that is showing EBADF error.
  • [fix] Removed unfortunate strlen declaration (reported by Étienne Dupuis).
  • [fix] Updated PyVortex regression test to check connection close after send operation.
  • [fix] Updated PyVortex to use Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS around exception notification and calls to vortex_async_queue_push.
  • [fix] Updated PyVortex to add missing GIL release calls on tls module when failure happens.
  • [fix] Updated regression test (test_12) to remove parts of the code that were causing problems..
  • [fix] Updated regression client to show connection errors when test_15 fails to send block message.
  • [fix] Updated vortex_tls module to include support for easy peer certificate verification (avoids forcing to use SSL post checks). API added: - vortex_tls_verify_cert
  • [fix] Additional fixings to vortex_tls_verify_cert to detect more cases.
  • [fix] Updated vortex_tls (added some additional debug logs when certificate fails to be loaded).
  • [fix] Updated vortex connection logging to also state what socket is being closed. Updated vortex frame factory to avoid issuing an additional connection close during frame reading if the connection is already broken.
  • [fix] Updated web-socket module to use new nopoll_conn_set_on_close call to control when socket is closed at the noPoll layer to avoid closing it after at the vortex layer with the risk of closing a different socket but with the same value.
  • [fix] Updated WebSocket connection API to include a new function to get noPollCtx. API added: - vortex_websocket_connection_get_ctx
  • [fix] Updated regression test to limit wait timeouts while waiting for replies at test 04-ab.
  • [fix] Removed wrong memory access inside vortex_tunnel.c implementation while passing data from and to connected sessions.
  • [fix] Updated vortex reader's detect-and-cleanup-wrong-file-descriptors to reset to 0 errno value before checking the fd, to avoid confusions about what of them is wrong indeed (fixes interaction between test_01y and test_02 under pressure).
  • [fix] Updated compilation process to include SSP by default (on linux, gcc compatible platforms..).
  • [fix] Added new regression test to check header overflow (nothing found), but test remains (test_01x).
  • [fix] Fixed unused variable error raised by newer gcc compilers..
  • [fix] Adding files to have libvortex-1.1 packages for wheezy.
  • [fix] Making vortex_channel_free to internally acquire the look associated to waiting msgno queue to release pending items inside it.

New in Vortex Library 1.1.10 (Oct 26, 2011)

  • This is a major stable release that mainly includes support for the Lua language through the LuaVortex binding.
  • Now it is possible to write Lua client/listener BEEP applications using Vortex Library 1.1.
  • This release also adds new features like "automatic thread pool resize", and fixes a lot of issues, making the library even more robust than previous releases.

New in Vortex Library 1.1.9 (Aug 24, 2011)

  • This is a stable release that includes several bug fixes and new regression tests to ensure library function, especially for the PULL API (which now has SASL and TLS available).
  • Some API updates were included, like querying object ref counting state or if a particular vortex context is in process of finishing.

New in Vortex Library 1.1.7 (Jan 28, 2011)

  • This is a new stable release that includes many improvements to make it faster.
  • The payload feeder API has been updated to allow cancel/pause an ongoing transfer or checking transfer status.
  • Several bugs have been fixed.

New in Vortex Library 1.1.5 (Sep 13, 2010)

  • This stable release includes a new set of features that allows you to easily implement alive support, feed content directly into Vortex engine, install periodic handlers, and to transfer more that 4GB over the same channel.

New in Vortex Library 1.1.3 (Mar 5, 2010)

  • Added new regression test to check channel pool ready indication for ANS/NUL interactions... No bug was found.
  • Fixed post creation notification for master listener connections.
  • General update to support connection options through VortexConnectionOpts. Used this new support to implement greetings serverName feature. API added: - VortexConnectionOpts (type) - VortexConnectionOptItem (enum) - vortex_connection_opts_new (function) - vortex_connection_opts_free (function) - CONN_OPTS (macro)
  • Updated vortex connection API to include a new function to create a BEEP connection with extended options. Updated vortex_connection_new to be built on top of this new function. API added: - vortex_connection_new_full
  • Added support for a new action stage: CONNECTION_STAGE_PROCESS_GREETINGS_FEATURES which allows getting notifications after client greetings received.
  • Updated vortex engine to make listener peer to not reply with initial greetings until client greetings are received, allowing to react according to client greetings received (especially for greetings features).
  • Updated vortex ctx module to include a function to control if automatic serverName feature must be implemented. Now by default vortex will notify serverName used on connection options or, if not provided, the host name used to connect, on the first channel created. API added: - vortex_ctx_server_name_acquire
  • Updated vortex tunnel API to include a new function that allows configuring connections options to be used. API added: - vortex_tunnel_settings_set_options
  • Updated greetings module to include support to send back a error greetings with a code and a message denying the service when required. Updated API to include a function to implement this behavior: - vortex_greetings_error_send
  • More updates on regression test (test_01g) to check serverName on greetings feature implemented. Still more work is required.
  • Finished regression test work (test_01g) to check serverName feature on greetings. Nice!
  • Fixed frame deallocation (memory leak) in case listener greetings send fails or client greetings is not accepted at listener side.
  • Improved wrong BEEP header detection. Added reg test (test_01h).
  • More updates for serverName automatic configuration..
  • Added new internal function that allows unwatching a connection from the vortex reader loop. API added: - vortex_reader_unwatch_connection
  • General internal modifications to split channel start handling to allow stopping it and later handle reply at a different process.
  • Cleanup start handling code..
  • Updated vortex profiles API to include a new function that allows configuring the frame received handler for a registered profile. API added: - vortex_profiles_set_received_handler
  • Making vortex sequencer reinitilization to check and dealloc internal structures that may be defined in a fork operation so this memory isn't lost.
  • CHANGE-NOTIFICATION: Updated vortex_connection_is_profile_filtered and VortexProfileMaskFunc to include the profile content encoding, and the frame received (in the case of channel start notification) according to vortex-profile-filter-01.
  • Making vortex thread pool reinitialization to check and dealloc internal structures that may be defined in a fork operation so this memory isn't lost.
  • Making internal changes to channel start reply handling so it can be decoupled and implemented later in another thread or process...Nice!
  • Updated vortex support API to include a function to check if a search path is already added. Updated search path initialization to check paths before adding them (to avoid leaking via paths allocated but not added). Bug exposed by turbulence reg test. - vortex_support_check_search_path
  • More updates to cleanup resources at vortex reader after fork operation. Added code to release all connection that were handled by the parent process..
  • Fixed wrong memory deallocation for error message returned by vortex_connection_is_profile_filtered.
  • Fixed on close notification causing some handlers to be not called in the case several are installed and some of them removes themselves during the call. Added regression test to reproduce the problem and fix the issue (test_02a1).
  • Fixed missing error message reply for channel start filtered.
  • Added missing socket close calls during connect failure.
  • Updated test certificates used by regression test.
  • Fixed documentation and updated section about TLS test certificate generation section.
  • Updated sasl extension to provide serverName requested to common auth handler in the case SASL channel is the first setting serverName. Still required reg test.
  • Added regression test to check serverName notification for SASL auth on first channel.
  • Added channel reference handling to avoid races at vortex_channel_notify_start_internal.
  • Fixed bug at TLS implementation causing a caller to vortex_tls_start_negotiation/vortex_tls_start_negotiation_sync to be never notified for the first case and blocked during 60 seconds for the second case. Added reg test (test_05b) to reproduce the problem and check the fix introduced. Bug reported by Dhiraj Prasad.
  • Added regression test to check vortex_connection_new fast error reporting in case of unreachable address.
  • Fixed compilation error at vortex-regression-client caused by code only activated on windows.
  • Updated PyVortex Channel and Connection classes to include a couple of methods that allows python's reference count manipulation. Added regression test to check how they work (test_10_b). API added: - vortex.Channel.incref - vortex.Channel.decref - vortex.Connection.incref - vortex.Connection.decref Updated API documentation.
  • General memory allocation improvements to make connection internal structures to be not allocated until they are required.
  • Added memory allocation checks to avoid accessing NULL memory. Still more work is required.
  • Making vortex_connection_set_profile_mask and vortex_connection_is_profile_filtered to be thread safe.
  • Fixed bug inside vortex_channel_is_ready which wasn't checking for pending outstanding MSG.
  • Making vortex_frame_get_next to close the connection in the case there is no memory to allocate the frame received.
  • Fixed lock caused by calling vortex_connection_is_profile_filtered recursively.
  • Added check at vortex.Connection python constructor to ensure first argument received is indeed a vortex.Ctx.
  • Updated vortex.Connection to include an attribute to return current serverName configured. Updated documentation. API added: - server_name
  • Adding internal function __vortex_channel_set_state to help turbulence to restore channel 0 status after transfer socket between processes.
  • Refactored socket limit reached code to also place it at the client initiator (vortex_connection_sock_connect). Fixes server side listener limit reached handling for sockets not created by accept(2) call.
  • Making vortex reader process to flag its own reinitialization so channels that are released under that process do not lock internal mutexes.
  • Added new function that allows to configure that logs sent to user debug handler are first prepared so the handler do not requires to handle printf format conversion. Added regression test to check its function. API added: - vortex_log_set_prepare_log
  • Updated vortex_socket_close macro to avoid calling socket close if socket descriptor is not valid.
  • Added initial call vortex_async_queue_release to release queues in the case of a reinitialization after a fork operation.
  • Updated PyVortex. Added ctx attribute to vortex.Connection to return connection context. API added: - vortex.Connection.ctx (read only attribute)
  • Updated PyVortex API to include access to connection unique identification. API added: - vortex.Connection.id (read only attribute).
  • Updated PyVortex internals to bind objects life time to vortex.Ctx created rather to C VortexCtx reference. This solves memory deallocation issues especially when python code install references to modules that are later unloaded but VortexCtx C reference is still working. This shows problems when turbulence unloads mod-python but its structures still reference to python objects stored..This is now solved binding/storing python objects into vortex.Ctx via internal API: - py_vortex_ctx_register - py_vortex_ctx_register_get
  • Updated internal code to reuse as much as possible already created references. Check regression test.
  • Moved data registration code at py_vortex_profile_frame_received to avoid races between the data is configured and the frame handler is called.
  • Updated PyVortex vortex.Connection API to allow providing the serverName to be used on next channel start request. Updated documentation.
  • Updated vortex channel pool internals to detect if a channel is ready by using vortex_channel_is_ready rather vortex_channel_is_up_to_date.
  • Updated vortex connection API to include a new function that allows to install on close handlers configuring when they are executed. Updated previous close handlers to use this implementation providing same behavior. Updated vortex channel start code to use this new handler to avoid executing user on close code first rather system handlers. API added: - vortex_connection_set_on_close_full2
  • Added PyVortex reg test (test_12_a) to reproduce and check fix introduced to detect on close connection during start channel operation. Previous close was deadlocking if the user configured an on close handler and then started a channel for which its connection is closed in the middle of the operation.
  • Added some debug log to on close notification. Added initial test to PyVortex to check async notifications during channel start (test_12_b).
  • Added initial code to check thread pool tasks handling. Updated thread pool API to return some stats about pending jobs, free threads and started threads. Still more work is required. API added: - vortex_thread_pool_stats
  • Defining fixed values for VortexEncoding type to make it easy to other languages binding vortex to assume those values.
  • Updated PyVortex to include encoding values for channel start profile content notification: - encoding_NONE - encoding_BASE64
  • Updated PyVortex conn.open_channel to support serverName, and profile_content attributes.
  • Fixed PyVortex conn.open_channel to allow other threads to enter into python context during channel creation allowing other async notifications to be completed. Added regression test test_12_b to check bug and fix introduced.
  • Updated vortex_log_enable, vortex_log2_enable and vortex_color_log_enable to not modify environment variable and flag setting as checked.
  • Updated thread pool module to allow adding new threads at run time. Used this new code to initialize vortex. API added: - vortex_thread_pool_add Updated test_00-a reg test to check now a pool with no available threads handles pending jobs when new threads are added.
  • Fixed vortex_thread_pool_get_num which was causing to fail on windows.
  • Added some being/end threads macros to PyVortex functions.
  • Fixed missing checked flag at vortex_color_log_enable.
  • Added more PyVortex documentation. Renamed vortex.encoding_BASE to vortex.encoding_BASE64
  • Updated PyVortex connection API to include two new methods to store and retrieve user references. API added: - Connection.get_data - Connection.set_data Added regression test to check function (test_03_a).
  • Added debug log to vortex_channel_get_reply to notify that a NULL reference queue was received.
  • Fixed PyVortex conn.set_on_close notification which was not properly notifying the conn reference at listener side when the handler was configured as a consequence of another handler activation.
  • Updated PyVortex connection reference allocation at listener side to reuse references rather creating and finishing them for each handler notification. Solves memory/performance issue and also fixes missing references problem experienced at listener side.
  • Updated PyVortex conn.open_channel to also support async channel creation and notification through on_channel handler. Updated documentation. Added regression test to check function (test_10_c and test_10_d for failure notification).
  • Adding more PyVortex documentation..
  • Added initial code to implement ans/nul replies to reproduce missing nul frames bug...
  • Rewritten channel serialize code to be seqno based rather msgno and frame type. This solves some issues with heavily loaded frame handlers that causes some NUL frames (stored as -1) to be missed. Also fixed connection dealloc failures when channel serialize is enabled and ANS/NUL frames are received. Added reg test test_03c to reproduce the problem and check fix introduced.
  • Finally finished out of order reply handling for different/parallel ANS/NUL replies over the same channel. Updated regtest test_03-c to reproduce and check fix introduced. Still more work required to better test current function.
  • Fixed bug at new reply sending code for ANS/NUL series which wasn't restoring next ansno to be used. Updated test_03c reg test to reproduce the bug and check the issue.
  • Updated vortex channel send MSG support to allow limiting how many outstanding messages can be hold until the caller is locked until some replies come in. This allow to limit memory consumption by avoiding storing messages until they can be sent. Updated vortex channel API to include a couple of functions that allows to configure such limit and to get current outstanding message queue length: - vortex_channel_set_outstanding_limit - vortex_channel_get_outstanding_messages Added regression test (test_01-k) to check function introduced.
  • Updated vortex thread pool API to include a function to remove threads from the pool. API added: - vortex_thread_pool_remove Updated regression test (test_00-a) to check API introduced.
  • Added a couple of regression tests to check memory consumption while using channel pool and channel serialize (test_01-l and test_01-o). Reg tests showed bugs on axl hash implementation and its capacity to properly retain internal nodes (causing linear memory consumption in long running applications).
  • Updated py_vortex_connection_find_reference documentation.
  • General update to PyVortex to support channel pools. Still more work required.
  • More updates to complete vortex.ChannelPool python API. Still more work required.
  • More updates on PyVortex channel pools. Added macro to easily check and throw non callable object exception. API added: - PY_VORTEX_IS_CALLABLE
  • More updates on vortex.ChannelPool API. Still more work required.
  • Updated vortex channel pool module to include a new function that returns number of channels that are available. API added: - vortex_channel_pool_get_available_num
  • Updated PyVortex ChannelPool API to include attributes to return channel pool count and channel pool available count. Added implementation to release channels. Checked next_ready () and release() method with reg test test_21 (pyvortex). - vortex.ChannelPool.channel_count - vortex.ChannelPool.channel_available - vortex.ChannelPool.release ()
  • Fixed some documentation warnings.
  • Fixed wrong user pointer notification at channel pool create handler when a pointer is defined at vortex_channel_pool_get_next_ready_full. Added reg test test_03d to check the problem and the fix introduced.
  • Updated PyVortex channel pool code to support channel pool create notification and channel pool create user land handler. Still working with frame received channel pool. Added reg test to check function (test_22).
  • Updated PyVortex Connection API to allow getting the default pool and a particular pool. Updated PyVortex ChannelPool API to allow returning the connection associated to a pool. Updated ChannelPool internals to allow other modules to find and reuse channel pool references already created. API added: - vortex.Connection.pool() (method) - vortex.ChannelPool.conn (attr)
  • Fixed wrong null handling at vortex_ctx_set_full_data which was causing to not properly handle remove cases triggered by receiving a NULL value associated to a previously stored key.
  • General updates to PyVortexChannelPool to properly implement current API without leaking memory. Completed py vortex reg tests test_21 and test_22 without exceptions and memory problems. NICE!!
  • Added new regression test to check channel window size reduction Test 04-d.
  • Updated SEQ frame log debug to fix test_04-d
  • Fixed wrong channel window SEQ frame notification when it is produced a shrink. Now this is detected, reusing currently advised max seqno accepted, applying same rules for future SEQ frame updates. Added regression test to reproduce the problem and check the fix introduced (test 04-d).
  • Updated PyVortex connection.channel_pool_new to change parameter naming: frame_received -> received frame_received_data -> received_data on_created_channel_pool -> on_created Updated documentation and regression test to check the change introduced.
  • Updated documentation to include new methods and attributes.

New in Vortex Library 1.1.2 (Sep 29, 2009)

  • This release adds support for the Python language through the PyVortex component (it is now possible to write Python BEEP applications using the Vortex engine), adds a new unified SASL auth API (which provides access with the same handler to all supported SASL profiles), fixes several bugs, and updates the project documentation.

New in Vortex Library 1.1.1 (Apr 29, 2009)

  • [fix] Removing not required sentence to configure channel to be not opened during its creation. This is already done by
  • vortex_channel_empty_new. Fix imported from 1.0. Reported by Benoit Amiaux. Fixed crash based on a race condition activated by this sentence.
  • Applied changes to make the project compilable (test files and regression tests) if not TLS support is added.
  • Making test directory to be compilable without sasl support.
  • General project changes to make vortex compilable when sources and installation directories aren't different.
  • Removing spurious comma after enum declaration. Added missing vortex-tls.dtd.h and vortex-sasl.dtd.h to distribution.(Reported Lawrence MacIntyre).
  • Applied vortex-notify-start-01 (CHANGE-NOTIFY). Updated regression tests to check changes introduced.
  • Fixing a documentation on vortex_channel_new*
  • Improving comment dropped by vortex_reader module when something has to be read from the wire...
  • Moved mutex release after frame variable configuration inside CHECK_PENDING_FRAME (vortex_channel.c).
  • Fixed dependencies with GSASL libraries on windows.Updated gsasl.nsi and gsasl-win32-compile.txt with latest instructions.
  • Adding c++ extern header decls in all extensions to make them usable for c++ users/compilers. This directive wasn't imported from base library (Problem reported by Juhani).
  • Making xml-rpc-gen-1.1 tool to include xml-rpc.dtd as a header created by axl-knife. Now it is no longer required to bundle xml-rpc.dtd file.
  • Moving vortex_sasl.dtd.h include file from public header to vortex_sasl.c to avoid users to include it.
  • Adding references to debian package support for vortex.
  • General update to add debian package support.

New in Vortex Library 1.1.0 (Jan 29, 2009)

  • After one year of work, this the first official release for Vortex Library 1.1 series which includes a new set of core changes and new features to make the library more usable and extensible than previous 1.0 series.
  • Context based API:
  • Vortex Library 1.1 has a general API update to make the library context-based, storing all status and user configuration into an external opaque object inside the user space, making the library fully stateless. This allows to have several independent Vortex execution contexts inside the same process or doing administrative tasks like, for example stopping a particular context. This API change is a core fundamental change required by Turbulence BEEP application server to allow its function on Microsoft Windows platform.
  • Library separation: modular design:
  • Now Vortex Library 1.1 is composed by a base library and a set of extension libraries that provides additional functionality like profiles or specific APIs. This change allows to reduce installation elements and to allow developers and distributors to select only those components used. Rather than including all features into a single library (like Vortex Library 1.0) this will allow independent development for each piece of code and will improve extension developments.
  • PULL API: single threaded API:
  • Vortex Library 1.1 now includes a single threaded API for those scenarios where all events and function must be implemented inside the same main thread in a non-blocking manner. PULL API is implemented as an extension library that, once connected to the base library, marshalls all async events into pullable events that are fetched from the same main loop.
  • HTTP CONNECT: HTTP proxy support for BEEP peers:
  • A interesting extension library now included allows creating BEEP clients that can connect to remote BEEP servers by using local HTTP proxy, allowing better integration in those scenarios where a local firewall do not allow direct connections.

New in Vortex Library 1.0.17 (Jan 22, 2009)

  • [fix] Applied patch to solve minor compilation warnings provided by Benoit Amiaux. Imported patch into 1.1 branch.
  • [fix] Wrong use of INT_TO_PTR applied on a pointer reference which causes segmentation faults on 64bits platforms. Bug reported with initial fixings by Szilard Pfeiffer. Imported fix into 1.1 branch.
  • [fix] Fixing test vortex-listener-connections.c with patch provided by Sam Roberts (additional modifications were required). Reworked patch to apply it on 1.1 branch.
  • [fix] Making vortex sequencer module to be stopped after vortex reader module (1.0/1.1).
  • [fix] Making vortex_support_unsetenv to be programmed internally with setenv. This avoids using unsetenv. Removed unsetenv declaration from vortex header.
  • [fix] Updating exarg files (1.0/1.1) for xml-rpc-gen tool.
  • [fix] Adding documentation about transferring files.
  • [fix] General engine update to allow remote BEEP peers to reuse MSG no in the range of 0..2147483647 while connecting to Vortex, allowing to reuse those MSG numbers as long as they are replied. Thanks to Sam Roberts who reported and provided useful comments to fix this issue. Created a regression test to check new support introduced. Even having updated MSG number checking support vortex will still use its current MSG number generation pattern (starting from 0 and going to 2147483647 by updating 1 unit). Applied updated to 1.0/1.1.
  • [fix] Added more msg no sequences to check on test_02n. Applied to 1.0/1.1. Nothing fixed.
  • [fix] Making vortex_channel_get_next_msg_no to reset proposed value if limit is reached. (1.0/1.1).
  • [fix] Checked and fixed support to transfer more than 4GB over the same channel, reusing seqno values (ranging from 0 up to 4294967295). Added regression test to simulate a large transfer (test 02-o). Applied 1.0/1.1.
  • [fix] Fixing exarg_strdup_printfv to get it compiled and working on windows. Updated associated projects using libexarg files.
  • [fix] Making xml-rpc-gen tool to translate xml definitions due to CDATA content. Fix imported into 1.0 series.
  • [fix] Fixed memory leak (frame unref) when msgno value is reused without reply. Backported fix into 1.0.

New in Vortex Library 1.0.16 (Nov 15, 2008)

  • A general API update to apply axl-bool-removal-02 change notification which, in general terms, improves C++ usability and allows existing C users to continue having the same behavior.
  • Support to allow buggy BEEP peers to use 0 as the first MSG no number on channel 0 (can be controlled via the API).
  • Support to disable SEQ frame generation (useful for tuning profiles). vortex_channel_close has been updated to block the caller until the channel is closed if a close in transit is detected (rather returning immediately with "channel closed").