Skip to content

Commit 0c8d93e

Browse files
committed
Properly reject promise instead of dying
1 parent dbc2e32 commit 0c8d93e

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

Datagram/Factory.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use React\EventLoop\LoopInterface;
66
use React\Dns\Resolver\Resolver;
77
use React\Promise\When;
8+
use \Exception;
89

910
class Factory
1011
{
@@ -25,10 +26,9 @@ public function createClient($host, $port)
2526
$address = $factory->createAddress($ip, $port);
2627
$socket = stream_socket_client('udp://' . $address, $errno, $errstr);
2728
if (!$socket) {
28-
die("$errstr ($errno)");
29+
throw new Exception('Unable to create client socket: ' . $errstr, $errno);
2930
}
3031

31-
3232
return new Client($loop, $socket, $address);
3333
});
3434
}
@@ -39,8 +39,9 @@ public function createServer($port, $host = '127.0.0.1')
3939

4040
$socket = stream_socket_server("udp://" . $address, $errno, $errstr, STREAM_SERVER_BIND);
4141
if (!$socket) {
42-
die("$errstr ($errno)");
42+
return When::reject(new Exception('Unable to create server socket: ' . $errstr, $errno));
4343
}
44+
4445
return When::resolve(new Server($this->loop, $socket, $address));
4546
}
4647

@@ -55,20 +56,18 @@ protected function resolve($host)
5556
return When::resolve('127.0.0.1');
5657
}
5758

58-
if ($resolver === null) {
59+
if ($this->resolver === null) {
5960
return When::reject(\Exception('No resolver given in order to get IP address for given hostname'));
6061
}
6162
return $this->resolver->resolve($host);
6263
}
6364

6465
public function createAddress($host, $port)
6566
{
66-
$address = $host;
6767
if (strpos($host, ':') !== false) {
6868
// enclose IPv6 address in square brackets
69-
$address = '[' . $host . ']';
69+
$host = '[' . $host . ']';
7070
}
71-
$address .= ':' . $port;
72-
return $address;
71+
return $host . ':' . $port;
7372
}
7473
}

0 commit comments

Comments
 (0)