public function logData() { global $wgUDPProfilerHost, $wgUDPProfilerPort; $this->close(); if (isset($this->mCollated['-total']) && $this->mCollated['-total']['real'] < $this->mMinimumTime) { # Less than minimum, ignore return; } if (!MWInit::functionExists('socket_create')) { # Sockets are not enabled return; } $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); $plength = 0; $packet = ""; foreach ($this->mCollated as $entry => $pfdata) { if (!isset($pfdata['count']) || !isset($pfdata['cpu']) || !isset($pfdata['cpu_sq']) || !isset($pfdata['real']) || !isset($pfdata['real_sq'])) { continue; } $pfline = sprintf("%s %s %d %f %f %f %f %s\n", $this->getProfileID(), "-", $pfdata['count'], $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry); $length = strlen($pfline); /* printf("<!-- $pfline -->"); */ if ($length + $plength > 1400) { socket_sendto($sock, $packet, $plength, 0, $wgUDPProfilerHost, $wgUDPProfilerPort); $packet = ""; $plength = 0; } $packet .= $pfline; $plength += $length; } socket_sendto($sock, $packet, $plength, 0x100, $wgUDPProfilerHost, $wgUDPProfilerPort); }
/** * Wrapper for posix_isatty() * We default as considering stdin a tty (for nice readline methods) * but treating stout as not a tty to avoid color codes * * @param $fd int File descriptor * @return bool */ public static function posix_isatty($fd) { if (!MWInit::functionExists('posix_isatty')) { return !$fd; } else { return posix_isatty($fd); } }