summaryrefslogtreecommitdiff
path: root/metadata/metatree.c
diff options
context:
space:
mode:
authorRoss Lagerwall <rosslagerwall@gmail.com>2014-10-19 09:03:51 +0100
committerRoss Lagerwall <rosslagerwall@gmail.com>2015-02-09 23:14:17 +0000
commitfcd88e9ee0c68c5f0e15fb402c22b26dc4415299 (patch)
tree4397baf7f83f5dc26ec66c99440934f20c89c3cc /metadata/metatree.c
parent221378f58f50bdf6e780e668539e875bac581826 (diff)
downloadgvfs-fcd88e9ee0c68c5f0e15fb402c22b26dc4415299.tar.gz
daemon: Move random string generation into shared lib
Random string generation is used in a few different places, so share the implementation. https://bugzilla.gnome.org/show_bug.cgi?id=738967
Diffstat (limited to 'metadata/metatree.c')
-rw-r--r--metadata/metatree.c29
1 files changed, 3 insertions, 26 deletions
diff --git a/metadata/metatree.c b/metadata/metatree.c
index 8875ae26..2983e5d5 100644
--- a/metadata/metatree.c
+++ b/metadata/metatree.c
@@ -13,6 +13,7 @@
#include "metabuilder.h"
#include <glib.h>
#include <glib/gstdio.h>
+#include "gvfsutils.h"
#include "crc32.h"
#ifdef HAVE_LIBUDEV
@@ -266,38 +267,14 @@ link_to_tmp (const char *source, char *tmpl)
{
char *XXXXXX;
int count, res;
- static const char letters[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- static const int NLETTERS = sizeof (letters) - 1;
- glong value;
- GTimeVal tv;
- static int counter = 0;
/* find the last occurrence of "XXXXXX" */
XXXXXX = g_strrstr (tmpl, "XXXXXX");
g_assert (XXXXXX != NULL);
- /* Get some more or less random data. */
- g_get_current_time (&tv);
- value = (tv.tv_usec ^ tv.tv_sec) + counter++;
-
- for (count = 0; count < 100; value += 7777, ++count)
+ for (count = 0; count < 100; ++count)
{
- glong v = value;
-
- /* Fill in the random bits. */
- XXXXXX[0] = letters[v % NLETTERS];
- v /= NLETTERS;
- XXXXXX[1] = letters[v % NLETTERS];
- v /= NLETTERS;
- XXXXXX[2] = letters[v % NLETTERS];
- v /= NLETTERS;
- XXXXXX[3] = letters[v % NLETTERS];
- v /= NLETTERS;
- XXXXXX[4] = letters[v % NLETTERS];
- v /= NLETTERS;
- XXXXXX[5] = letters[v % NLETTERS];
-
+ gvfs_randomize_string (XXXXXX, 6);
res = link (source, tmpl);
if (res >= 0)