cvs: pear /Net_GameServerQuery Socket.php

From: 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) {

« previous php.pear.cvs (#21351) next »