Ejemplo n.º 1
0
function ctx_log_msg($func, $text, $type)
{
    global $_context_log;
    if ($_context_log) {
        fprintf($_context_log, "%f %s %d %d %s %s %s\n", microtime(true), php_uname('n'), posix_getpid(), function_exists("hphp_get_thread_id") ? hphp_get_thread_id() : posix_getpid(), $type, $func, $text);
    }
}
Ejemplo n.º 2
0
 /**
  * Generate a random UUID
  *
  * @see http://www.ietf.org/rfc/rfc4122.txt
  * @return RFC 4122 UUID
  */
 public static function uuid()
 {
     $node = env('SERVER_ADDR');
     if (strpos($node, ':') !== false) {
         if (substr_count($node, '::')) {
             $node = str_replace('::', str_repeat(':0000', 8 - substr_count($node, ':')) . ':', $node);
         }
         $node = explode(':', $node);
         $ipv6 = '';
         foreach ($node as $id) {
             $ipv6 .= str_pad(base_convert($id, 16, 2), 16, 0, STR_PAD_LEFT);
         }
         $node = base_convert($ipv6, 2, 10);
         if (strlen($node) < 38) {
             $node = null;
         } else {
             $node = crc32($node);
         }
     } elseif (empty($node)) {
         $host = env('HOSTNAME');
         if (empty($host)) {
             $host = env('HOST');
         }
         if (!empty($host)) {
             $ip = gethostbyname($host);
             if ($ip === $host) {
                 $node = crc32($host);
             } else {
                 $node = ip2long($ip);
             }
         }
     } elseif ($node !== '127.0.0.1') {
         $node = ip2long($node);
     } else {
         $node = null;
     }
     if (empty($node)) {
         $node = crc32(Configure::read('Security.salt'));
     }
     if (function_exists('hphp_get_thread_id')) {
         $pid = hphp_get_thread_id();
     } else {
         if (function_exists('zend_thread_id')) {
             $pid = zend_thread_id();
         } else {
             $pid = getmypid();
         }
     }
     if (!$pid || $pid > 65535) {
         $pid = mt_rand(0, 0xfff) | 0x4000;
     }
     list($timeMid, $timeLow) = explode(' ', microtime());
     $uuid = sprintf("%08x-%04x-%04x-%02x%02x-%04x%08x", (int) $timeLow, (int) substr($timeMid, 2) & 0xffff, mt_rand(0, 0xfff) | 0x4000, mt_rand(0, 0x3f) | 0x80, mt_rand(0, 0xff), $pid, $node);
     return $uuid;
 }
Ejemplo n.º 3
0
 public function __construct()
 {
     $state = self::$state;
     if (function_exists('posix_times')) {
         $state .= serialize(posix_times());
     }
     if (!defined('HHVM_VERSION') && function_exists('zend_thread_id')) {
         $state .= zend_thread_id();
     }
     if (function_exists('hphp_get_thread_id')) {
         $state .= hphp_get_thread_id();
     }
     $state .= getmypid() . memory_get_usage();
     $state .= serialize($_ENV);
     $state .= serialize($_SERVER);
     $state .= count(debug_backtrace(false));
     self::$state = hash('sha512', $state, true);
     if (is_null(self::$counter)) {
         list(, self::$counter) = unpack("i", substr(self::$state, 0, 4));
         $seed = $this->generate(strlen(dechex(PHP_INT_MAX)));
         list(, self::$counter) = unpack("i", $seed);
     }
 }