Releases: clue/reactphp-socks
v0.8.2
v0.8.1
v0.8.0
-
Feature: Merge
Server
class from clue/socks-server
(#52 by @clue)$socket = new React\Socket\Server(1080, $loop); $server = new Clue\React\Socks\Server($loop, $socket);
Upgrading from clue/socks-server?
The classes have been moved as-is, so you can simply start using the new
class nameClue\React\Socks\Server
with no other changes required.
v0.7.0
-
Feature / BC break: Replace depreacted SocketClient with Socket v0.7 and
useconnect($uri)
instead ofcreate($host, $port)
(#51 by @clue)// old $connector = new React\SocketClient\TcpConnector($loop); $client = new Client(1080, $connector); $client->create('google.com', 80)->then(function (Stream $conn) { $conn->write("…"); }); // new $connector = new React\Socket\TcpConnector($loop); $client = new Client(1080, $connector); $client->connect('google.com:80')->then(function (ConnectionInterface $conn) { $conn->write("…"); });
-
Improve test suite by adding PHPUnit to require-dev
(#50 by @clue)
v0.6.0
-
Feature / BC break: Pass connector into
Client
instead of loop, remove unneeded deps
(#49 by @clue)// old (connector is create implicitly) $client = new Client('127.0.0.1', $loop); // old (connector can optionally be passed) $client = new Client('127.0.0.1', $loop, $connector); // new (connector is now mandatory) $connector = new React\SocketClient\TcpConnector($loop); $client = new Client('127.0.0.1', $connector);
-
Feature / BC break:
Client
now implementsConnectorInterface
, removeConnector
adapter
(#47 by @clue)// old (explicit connector functions as an adapter) $connector = $client->createConnector(); $promise = $connector->create('google.com', 80); // new (client can be used as connector right away) $promise = $client->create('google.com', 80);
-
Feature / BC break: Remove
createSecureConnector()
, useSecureConnector
instead
(#47 by @clue)// old (tight coupling and hidden dependency) $tls = $client->createSecureConnector(); $promise = $tls->create('google.com', 443); // new (more explicit, loose coupling) $tls = new React\SocketClient\SecureConnector($client, $loop); $promise = $tls->create('google.com', 443);
-
Feature / BC break: Remove
setResolveLocal()
and local DNS resolution and default to remote DNS resolution, useDnsConnector
instead
(#44 by @clue)// old (implicitly defaults to true, can be disabled) $client->setResolveLocal(false); $tcp = $client->createConnector(); $promise = $tcp->create('google.com', 80); // new (always disabled, can be re-enabled like this) $factory = new React\Dns\Resolver\Factory(); $resolver = $factory->createCached('8.8.8.8', $loop); $tcp = new React\SocketClient\DnsConnector($client, $resolver); $promise = $tcp->create('google.com', 80);
-
Feature / BC break: Remove
setTimeout()
, useTimeoutConnector
instead
(#45 by @clue)// old (timeout only applies to TCP/IP connection) $client = new Client('127.0.0.1', …); $client->setTimeout(3.0); $tcp = $client->createConnector(); $promise = $tcp->create('google.com', 80); // new (timeout can be added to any layer) $client = new Client('127.0.0.1', …); $tcp = new React\SocketClient\TimeoutConnector($client, 3.0, $loop); $promise = $tcp->create('google.com', 80);
-
Feature / BC break: Remove
setProtocolVersion()
andsetAuth()
mutators, only support SOCKS URI for protocol version and authentication (immutable API)
(#46 by @clue)// old (state can be mutated after instantiation) $client = new Client('127.0.0.1', …); $client->setProtocolVersion('5'); $client->setAuth('user', 'pass'); // new (immutable after construction, already supported as of v0.5.2 - now mandatory) $client = new Client('socks5://user:pass@127.0.0.1', …);
v0.5.2
-
Feature: Apply protocol version and username/password auth from SOCKS URI
(#43 by @clue)// explicitly use SOCKS5 $client = new Client('socks5://127.0.0.1', $loop); // use authentication (automatically SOCKS5) $client = new Client('user:pass@127.0.0.1', $loop);
-
More explicit client examples, including proxy chaining
(#42 by @clue)
v0.5.1
v0.5.0
v0.4.0
v0.3.0
-
BC break / Feature: Client ctor now accepts a SOCKS server URI
(#24)// old $client = new Client($loop, 'localhost', 9050); // new $client = new Client('localhost:9050', $loop);
-
Feature: Automatically assume default SOCKS port (1080) if not given explicitly
(#26) -
Improve documentation and test suite