summaryrefslogtreecommitdiffstats
path: root/network/guacamole-server/uuid.patch
blob: e3c165ee31bbb55d6282fd46b4b34462090d282f (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
--- guacamole-server-0.9.8/configure.ac	2015-09-04 17:36:05.000000000 -0700
+++ guacamole-server-0.9.8.new/configure.ac	2015-11-27 16:36:00.229847035 -0800
@@ -68,19 +68,25 @@
 
 # OSSP UUID
 AC_CHECK_LIB([ossp-uuid], [uuid_make], [UUID_LIBS=-lossp-uuid],
-             AC_CHECK_LIB([uuid], [uuid_make], [UUID_LIBS=-luuid],
+             AC_CHECK_LIB([uuid], [uuid_generate], [UUID_LIBS=-luuid],
                           AC_MSG_ERROR("The OSSP UUID library is required")))
 
 # Check for and validate OSSP uuid.h header
-AC_CHECK_HEADERS([ossp/uuid.h])
-AC_CHECK_DECL([uuid_make],,
-              AC_MSG_ERROR("No OSSP uuid.h found in include path"),
+AC_CHECK_HEADERS([ossp/uuid.h], [uuid/uuid.h])
+AC_CHECK_DECL([uuid_make],, ,
               [#ifdef HAVE_OSSP_UUID_H
                #include <ossp/uuid.h>
                #else
                #include <uuid.h>
                #endif
                ])
+AC_CHECK_DECL([uuid_generate],, ,
+              [#ifdef HAVE_OSSP_UUID_H
+               #include <ossp/uuid.h>
+               #else
+               #include <uuid/uuid.h>
+               #endif
+               ])
 
 # cunit
 AC_CHECK_LIB([cunit], [CU_run_test], [CUNIT_LIBS=-lcunit])
--- guacamole-server-0.9.8/src/libguac/client.c	2015-09-04 17:36:05.000000000 -0700
+++ guacamole-server-0.9.8.new/src/libguac/client.c	2015-11-27 16:36:00.230847035 -0800
@@ -39,7 +39,7 @@
 #ifdef HAVE_OSSP_UUID_H
 #include <ossp/uuid.h>
 #else
-#include <uuid.h>
+#include <uuid/uuid.h>
 #endif
 
 #include <stdarg.h>
@@ -170,8 +170,8 @@
 
     char* buffer;
     char* identifier;
+#ifdef HAVE_OSSP_UUID_H
     size_t identifier_length;
-
     uuid_t* uuid;
 
     /* Attempt to create UUID object */
@@ -211,6 +211,21 @@
     }
 
     uuid_destroy(uuid);
+#else
+    uuid_t uuid;
+#define UUID_LEN_STR 36
+
+    buffer = malloc (UUID_LEN_STR + 2);
+    if (buffer == NULL) {
+        guac_error = GUAC_STATUS_NO_MEMORY;
+        guac_error_message = "Could not allocate memory for connection ID";
+        return NULL;
+    }
+    identifier = buffer + 1;
+
+    uuid_generate (uuid);
+    uuid_unparse (uuid, identifier);
+#endif
 
     buffer[0] = '$';
     buffer[UUID_LEN_STR + 1] = '\0';