|
4 | 4 |
|
5 | 5 | use React\EventLoop\LoopInterface; |
6 | 6 | use React\Dns\Resolver\Resolver; |
7 | | -use React\Promise\When; |
| 7 | +use React\Promise\Deferred; |
8 | 8 | use Datagram\Socket; |
9 | 9 | use \Exception; |
10 | 10 |
|
@@ -65,7 +65,10 @@ protected function resolveAddress($address) |
65 | 65 | $parts = parse_url($address); |
66 | 66 |
|
67 | 67 | if (!$parts || !isset($parts['host'])) { |
68 | | - return When::resolve($address); |
| 68 | + $deferred = new Deferred(); |
| 69 | + $deferred->resolve($address); |
| 70 | + |
| 71 | + return $deferred->promise(); |
69 | 72 | } |
70 | 73 |
|
71 | 74 | if ($nullport) { |
@@ -97,16 +100,26 @@ protected function resolveHost($host) |
97 | 100 | { |
98 | 101 | // there's no need to resolve if the host is already given as an IP address |
99 | 102 | if (false !== filter_var($host, FILTER_VALIDATE_IP)) { |
100 | | - return When::resolve($host); |
| 103 | + $deferred = new Deferred(); |
| 104 | + $deferred->resolve($host); |
| 105 | + |
| 106 | + return $deferred->promise(); |
101 | 107 | } |
102 | 108 | // todo: remove this once the dns resolver can handle the hosts file! |
103 | 109 | if ($host === 'localhost') { |
104 | | - return When::resolve('127.0.0.1'); |
| 110 | + $deferred = new Deferred(); |
| 111 | + $deferred->resolve('127.0.0.1'); |
| 112 | + |
| 113 | + return $deferred->promise(); |
105 | 114 | } |
106 | 115 |
|
107 | 116 | if ($this->resolver === null) { |
108 | | - return When::reject(new Exception('No resolver given in order to get IP address for given hostname')); |
| 117 | + $deferred = new Deferred(); |
| 118 | + $deferred->reject(new Exception('No resolver given in order to get IP address for given hostname')); |
| 119 | + |
| 120 | + return $deferred->promise(); |
109 | 121 | } |
| 122 | + |
110 | 123 | return $this->resolver->resolve($host); |
111 | 124 | } |
112 | 125 | } |
0 commit comments