et-nik / gameap-legacy

Free Game Admin Panel
http://www.gameap.ru
Other
37 stars 20 forks source link

Ошибка определения статуса сервера #4

Closed mymarche closed 10 years ago

mymarche commented 10 years ago

Проверял на сервере CS:S. ошибка заключается в том что проверяется первая строка из запроса netstat не всегда нужного формата. Мое решение:

function server_status() { global $program, $dir, $ip, $port, $startcommand, $psexec; $pid=NULL; system("netstat -ano | findstr " . $port .">" . $dir . '\pid.txt'); $file = file($dir . '\pid.txt');
// TCP 10.99.1.8:27015 0.0.0.0:0 LISTENING 3496 // UDP 10.99.1.8:27015
:_ 3496
foreach ($file as $str) { $str = str_replace(' ', '', $str); if(pregmatch('/^UDP(\d).(\d).(\d).(\d):(\d)_:(\d)/xsi', $str, $text)) { $pid = $text['6']; } } if ($pid!=NULL) { system("echo " . $pid .">" . $dir . '\pid.txt'); } else { system("echo NOT FOUND>" . $dir . '\pid.txt'); } return $pid; }

PS Извиняюсь за форматирование кода. Не получается дружить с GitHub Issues,

et-nik commented 10 years ago

А как выглядит netstat для CSS сервера?

mymarche commented 10 years ago

Выглядит вот так: http://pastebin.com/PAA4ct72

et-nik commented 10 years ago

Проблема решена https://github.com/ET-NiK/GameAP/commit/eaa437e2a7fce727db66af1878b3e2c3e00baa97