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_socket
andtcp_client
) - ability to change the number of
io_service
workers (orthread_pool
threads) 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_TIMEOUT
that 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_port
methods fortcp_client
None.
2.4.1
April 30th, 2017
- Compile project with
/bigobj
option 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_client
ortcp_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_removal
as 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
select
and not onpoll
anymore to solve some issues encountered on windows due to the buggy implementation ofpoll
on 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.