summaryrefslogtreecommitdiffstats
path: root/php-horde-Horde-Support-uuid.patch
blob: 09974d75eb58a098f21a4b726f4c6023a4118d01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
diff -up Horde_Support-2.0.0/lib/Horde/Support/Uuid.php.old Horde_Support-2.0.0/lib/Horde/Support/Uuid.php
--- Horde_Support-2.0.0/lib/Horde/Support/Uuid.php.old	2012-11-06 17:23:48.000000000 +0100
+++ Horde_Support-2.0.0/lib/Horde/Support/Uuid.php	2012-11-06 17:36:23.000000000 +0100
@@ -36,9 +36,20 @@ class Horde_Support_Uuid
      */
     public function generate()
     {
+        $this->_uuid = NULL;
         if (extension_loaded('uuid')) {
-            $this->_uuid = uuid_create();
-        } else {
+            if (function_exists("uuid_export")) {
+                // UUID extension from http://www.ossp.org/pkg/lib/uuid/
+                if (uuid_create($ctx)==UUID_RC_OK && uuid_make($ctx, UUID_MAKE_V4)==UUID_RC_OK && uuid_export($ctx, UUID_FMT_STR, $str)==UUID_RC_OK) {
+                    $this->_uuid = $str;
+                    uuid_destroy($ctx);
+                }
+            } else {
+                // UUID extension from http://pecl.php.net/package/uuid
+                $this->_uuid = uuid_create();
+            }
+        }
+        if (!$this->_uuid) {
             list($time_mid, $time_low) = explode(' ', microtime());
             $time_low = (int)$time_low;
             $time_mid = (int)substr($time_mid, 2) & 0xffff;