=== modified file 'src/ChangeLog'
--- src/ChangeLog 2012-03-25 15:49:55 +0000
+++ src/ChangeLog 2012-03-30 15:40:57 +0000
@@ -1,3 +1,7 @@
+2012-03-30 Tim Ruehsen
+
+ * warc.c: make warc_uuid_str() implementation depend on HAVE_LIBUUID
+
2012-03-25 Giuseppe Scrivano
* utils.c: Include .
=== modified file 'src/warc.c'
--- src/warc.c 2012-02-25 10:58:21 +0000
+++ src/warc.c 2012-03-30 15:41:06 +0000
@@ -580,15 +580,32 @@
strftime (timestamp, 21, "%Y-%m-%dT%H:%M:%SZ", timeinfo);
}
-/* Fills uuid_str with a UUID based on random numbers.
+#ifdef HAVE_LIBUUID
+/* Fills urn_str with a UUID in the format required
+ for the WARC-Record-Id header.
+ The string will be 47 characters long. */
+void
+warc_uuid_str (char *urn_str)
+{
+ char uuid_str[37];
+
+ uuid_t record_id;
+ uuid_generate (record_id);
+ uuid_unparse (record_id, uuid_str);
+
+ sprintf (urn_str, "", uuid_str);
+}
+#else
+/* Fills urn_str with a UUID based on random numbers in the format
+ required for the WARC-Record-Id header.
(See RFC 4122, UUID version 4.)
Note: this is a fallback method, it is much better to use the
methods provided by libuuid.
- The uuid_str will be 36 characters long. */
-static void
-warc_uuid_random (char *uuid_str)
+ The string will be 47 characters long. */
+void
+warc_uuid_str (char *urn_str)
{
// RFC 4122, a version 4 UUID with only random numbers
@@ -605,32 +622,14 @@
// clock_seq_hi_and_reserved to zero and one, respectively.
uuid_data[8] = (uuid_data[8] & 0xBF) | 0x80;
- sprintf (uuid_str,
- "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ sprintf (urn_str,
+ "",
uuid_data[0], uuid_data[1], uuid_data[2], uuid_data[3], uuid_data[4],
uuid_data[5], uuid_data[6], uuid_data[7], uuid_data[8], uuid_data[9],
uuid_data[10], uuid_data[11], uuid_data[12], uuid_data[13], uuid_data[14],
uuid_data[15]);
}
-
-/* Fills urn_str with a UUID in the format required
- for the WARC-Record-Id header.
- The string will be 47 characters long. */
-void
-warc_uuid_str (char *urn_str)
-{
- char uuid_str[37];
-
-# ifdef HAVE_LIBUUID
- uuid_t record_id;
- uuid_generate (record_id);
- uuid_unparse (record_id, uuid_str);
-# else
- warc_uuid_random (uuid_str);
-# endif
-
- sprintf (urn_str, "", uuid_str);
-}
+#endif
/* Write a warcinfo record to the current file.
Updates warc_current_warcinfo_uuid_str. */