@boenrobot boenrobot released this May 13, 2017

  • Fixed "failed to parse address" error that occurs in patched PHP versions for Debian 7 and Ubuntu 16.04.
    • NOTE: Persistent connections still fail in those environments, and there's no possible workaround, short of getting a non-patched PHP version or upgrading to Debian 8 or Ubuntu 16.10.


@boenrobot boenrobot released this Nov 7, 2016 · 6 commits to master since this release

  • Fixed a streaming issue with newer PHP 5.6 versions and later.
  • Stream::setIsBlocking() is only implicitly called if needed (i.e. for encrypted connections), ensuring compatibility with web hosts that for bizzare reasons have disabled stream_set_blocking().
  • Doc and test fixes that now ensure large code coverage.


@boenrobot boenrobot released this Nov 2, 2014 · 11 commits to master since this release

  • Added fragments to exceptions, allowing retrieval of incomplete receives' contents, and byte count on incomplete sends.
  • Changed Stream to use an fread/fwrite duo instead of stream_copy_to_stream() for the sake of stability.
  • Tweaked Stream::isAcceptingData() and NetworkStream::isAvailable(), in order to work around a reproducible hang on Linux.
  • Doc fixes.


@boenrobot boenrobot released this Aug 15, 2013 · 23 commits to master since this release

  • Support for encrypted connections. Note that due to known issues with PHP itself, encrypted connections may be unstable (as in "sometimes disconnect suddenly" or "sometimes hang when calling TcpClient::isDataAwaiting() without a timeout").
  • Stream::isAcceptingData() and Stream::isDataAwaiting() now accept an optional timeout, modeled after stream_select().
  • Changed sending to retry indefinetly unless the connection is broken, thanks to isDataAwaiting()'s new ability. Receiving can still timeout.
  • Chnaged the PHAR stub to not fail when reading the hash fails.
  • Doc and CS fixes.


@boenrobot boenrobot released this Aug 15, 2013 · 39 commits to master since this release

Added locking support at TcpClient, particularly for persistent connections. Also some doc fixes.


@boenrobot boenrobot released this Aug 15, 2013 · 55 commits to master since this release

Lots of reorganization and initial test suite.

  • Renamed all "SocketTransmitter" classes to "Tcp".
  • Added test suite with nearly complete code coverage. Remaining coverage is due to forward compatibility issues.
  • Added FilterCollection, in turn allowing for the same filter to be applied more than once.
  • Added NetworkStream, and made Tcp* classes inherit from it. This new class contains a new method called shutdown().
  • IPv6 addresses must now be written literally, without the surrounding "[" and "]".
  • TcpServerConnection can now accept IPv6 connections.
  • Merged sendStream() into send().
  • Added $offset and $length to send().
  • Removed redundant error variables in TcpServerConnection.
  • Removed the TcpServerConnection::isServer() function (can't tell apart server and client).