| @@ 579-598 (lines=20) @@ | ||
| 576 | { |
|
| 577 | $this->type = 'udp'; |
|
| 578 | $pton = @inet_pton($host); |
|
| 579 | if ($pton === false) { // dirty check |
|
| 580 | \PHPDaemon\Clients\DNS\Pool::getInstance()->resolve($host, function ($result) use ($host, $port) { |
|
| 581 | if (!$result) { |
|
| 582 | Daemon::log(get_class($this) . '->connectUdp : unable to resolve hostname: ' . $host); |
|
| 583 | $this->onStateEv($this->bev, \EventBufferEvent::ERROR); |
|
| 584 | return; |
|
| 585 | } |
|
| 586 | // @todo stack of addrs |
|
| 587 | if (is_array($result)) { |
|
| 588 | srand(Daemon::$process->getPid()); |
|
| 589 | $real = $result[rand(0, sizeof($result) - 1)]; |
|
| 590 | srand(); |
|
| 591 | } else { |
|
| 592 | $real = $result; |
|
| 593 | } |
|
| 594 | $this->connectUdp($real, $port); |
|
| 595 | }); |
|
| 596 | return true; |
|
| 597 | } |
|
| 598 | $this->hostReal = $host; |
|
| 599 | if ($this->host === null) { |
|
| 600 | $this->host = $this->hostReal; |
|
| 601 | } |
|
| @@ 637-659 (lines=23) @@ | ||
| 634 | $this->type = 'tcp'; |
|
| 635 | $pton = @inet_pton($host); |
|
| 636 | $fd = null; |
|
| 637 | if ($pton === false) { // dirty check |
|
| 638 | \PHPDaemon\Clients\DNS\Pool::getInstance()->resolve($this->host, function ($result) use ($host, $port) { |
|
| 639 | if (!$result) { |
|
| 640 | Daemon::log(get_class($this) . '->connectTcp : unable to resolve hostname: ' . $host); |
|
| 641 | $this->onStateEv($this->bev, \EventBufferEvent::ERROR); |
|
| 642 | return; |
|
| 643 | } |
|
| 644 | // @todo stack of addrs |
|
| 645 | if (is_array($result)) { |
|
| 646 | if (!sizeof($result)) { |
|
| 647 | return; |
|
| 648 | } |
|
| 649 | srand(Daemon::$process->getPid()); |
|
| 650 | $real = $result[rand(0, sizeof($result) - 1)]; |
|
| 651 | srand(); |
|
| 652 | } else { |
|
| 653 | $real = $result; |
|
| 654 | } |
|
| 655 | $this->connectTcp($real, $port); |
|
| 656 | }); |
|
| 657 | return true; |
|
| 658 | } |
|
| 659 | $this->hostReal = $host; |
|
| 660 | if ($this->host === null) { |
|
| 661 | $this->host = $this->hostReal; |
|
| 662 | } |
|