3.2.0
November 13th, 2017
- fork support: allow set_default_io_service to take nullptr. In order to safely fork, call set_default_io_service(nullptr) to make sure the io_service destructor is called and all underlying threads joined.
- fix: timeout for connection not working due to invalid param to select, now working
- improvement: make sure socket is in blocking mode before connection (#32) as it differs from one OS to another
- improvement: check for non-blocking connect errors with getsockopt to avoid connect reporting a successful connection followed by a call to disconnection handler (now connect report a failed connection as expected).
- ipv6 support (connect, bind and accept operations, on tcp_server and tcp_client)
None
3.1.0
November 2nd, 2017
- Improvement: For windows, if port is 0, use the default AF_INET windows API behavior (bind to first port available). Behavior on unix is unchanged (is unix socket).
- CMake fix: Remove explicit STATIC in add_library call so dynamic libraries can be built with -DBUILD_SHARED_LIBS=ON
- Visual Studio C++ solution
None
3.0.1
September 26th, 2017
- Fix some compilation issues on windows
None.
- Private, Protected and Static functions from doxygen documentation
3.0.0
September 20th, 2017
- clear pending read and write requests on disconnection
- io_service access
- ability to modify number of io service worker at runtime
- doxygen documentation
- connection timeout if requested (for
tcp_socketandtcp_client) - ability to change the number of
io_serviceworkers (orthread_poolthreads) at runtime
None.
2.4.4
July 2nd, 2017
- add calls to WSAStartup and WSACleanup in examples (#16).
- fix #17 and cpp_redis#85 (select keep sleeping and does not process incoming read/write events).
None.
None.
2.4.3
June 19th, 2017
- Remove unnecessary use of self-pipe to try to fix high-CPU usage issued reported on this repository and on cpp_redis repository.
- CMake compilation flag
SELECT_TIMEOUTthat can be used to define the select timeout in nano seconds. By default, timeout is set to NULL (unlimited).
None.
2.4.2
June 11th, 2017
- Compilation Fix
- change behavior of on_new_connection_handler. Returning true means connection is handled by tcp_client wrapper and nothing will be done by tcp_server. Returning false means connection is handled by tcp_server, will be stored in an internal list and tcp_client disconnection_handler overridden.
get_host&get_portmethods fortcp_client
None.
2.4.1
April 30th, 2017
- Compile project with
/bigobjoption on windows - Fix behavior when trying to reconnect from disconnection_handler callback
None.
None.
2.4.0
April 9th, 2017
None.
- Provide support for Unix socket. Simply pass in 0 as the port when building a
tcp_socket,tcp_clientortcp_server. Then, the host will automatically be treated as the path to a Unix socket instead of a real host.
None.
2.3.0
April 9th, 2017
None.
- TCP server now supports
wait_for_removalas a parameter for.stop(). Please refer to the documentation for more information.
None.
2.2.0
April 4th, 2017
- IO Service is now based on
selectand not onpollanymore to solve some issues encountered on windows due to the buggy implementation ofpollon windows Systems.
None.
None.
2.1.0
March 19th, 2017
- read and write TCP client callbacks now takes a reference to the result as parameter instead of a const-reference.
None.
- install_deps.sh has been removed in favor of CMakelists.txt enhancement.
2.0.1
Feb. 17th, 2017
- Fix: replace gethostbyname() (not thread-safe) usage by getaddrinfo() (thread-safe) on unix platforms. No change where required on windows as getaddrinfo() was already in use before.
None.
None.
2.0.0
Jan. 29th, 2017
- Fix: some sockets were not removed from io_service tracking. Now fixed
- Improvement: handle POLLHUP events
- Feature: Port the library onto windows
- Feature: Make the library usable by cpp_redis
None.
1.1.0
Dec. 16th, 2016
- Make server on_new_connection callback take shared_ptr as parameter instead of reference (provide more flexibility to the client app)
- Provide access to tcp_socket in the public API of tcp_client and tcp_server
None.
1.0.0
Dec. 12th, 2016
None.
- TCP Client & Server for Unix & Mac platform.
- Documented in the wiki.
None.