cvs: pear /Net_GameServerQuery Socket.php
| From: | Aidan Lister | Date: | Thu, 01 Jul 2004 12:00:19 +0000 |
| Subject: | cvs: pear /Net_GameServerQuery Socket.php | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-21351@lists.php.net to get a copy of this message | ||
aidan Thu Jul 1 08:00:19 2004 EDT
Modified files:
/pear/Net_GameServerQuery Socket.php
Log:
Fixed infinte loops if no servers queryed
http://cvs.php.net/diff.php/pear/Net_GameServerQuery/Socket.php?r1=1.2&r2=1.3&ty=u
Index: pear/Net_GameServerQuery/Socket.php
diff -u pear/Net_GameServerQuery/Socket.php:1.2 pear/Net_GameServerQuery/Socket.php:1.3
--- pear/Net_GameServerQuery/Socket.php:1.2 Thu Jul 1 07:47:52 2004
+++ pear/Net_GameServerQuery/Socket.php Thu Jul 1 08:00:19 2004
@@ -37,7 +37,8 @@
foreach ($servers as $key => $server)
{
// Open each socket
- $socket = @fsockopen("udp://" . $server['ip'], $server['port'],
$errno, $errstr, 1);
+ $ip = "udp://" . $server['ip'];
+ $socket = @fsockopen($ip, $server['port'], $errno, $errstr, 1);
if ($socket !== false)
{
stream_set_blocking($socket, false);
@@ -45,6 +46,7 @@
$sockets[$key] = $socket;
$sockets_list[(int)$socket] = $key;
+ // Need some error checking here
foreach ($server['query'] as $packet) {
$this->write($socket, $packet);
}
@@ -76,6 +78,12 @@
$result = array ();
$starttime = microtime(true);
$r = $this->_sockets;
+
+ // If we have no sockets don't bother
+ if (empty($this->_sockets)) {
+ return array ();
+ }
+
while (stream_select($r, $w = null, $e = null, 0, $timeout - ((microtime(true) - $starttime) *
1000000)) !== 0)
{
foreach ($r as $socket) {