summaryrefslogtreecommitdiff
path: root/metadata
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
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')
-rw-r--r--metadata/Makefile.am6
-rw-r--r--metadata/metatree.c29
2 files changed, 6 insertions, 29 deletions
diff --git a/metadata/Makefile.am b/metadata/Makefile.am
index e86e1c92..767033e1 100644
--- a/metadata/Makefile.am
+++ b/metadata/Makefile.am
@@ -46,16 +46,16 @@ libmetadata_la_SOURCES = \
libmetadata_la_LIBADD = $(GLIB_LIBS) $(UDEV_LIBS)
-meta_ls_LDADD = libmetadata.la
+meta_ls_LDADD = libmetadata.la ../common/libgvfscommon.la
meta_ls_SOURCES = meta-ls.c
meta_set_LDADD = libmetadata.la ../common/libgvfscommon.la
meta_set_SOURCES = meta-set.c
-meta_get_LDADD = libmetadata.la
+meta_get_LDADD = libmetadata.la ../common/libgvfscommon.la
meta_get_SOURCES = meta-get.c
-meta_get_tree_LDADD = libmetadata.la
+meta_get_tree_LDADD = libmetadata.la ../common/libgvfscommon.la
meta_get_tree_SOURCES = meta-get-tree.c
convert_nautilus_metadata_LDADD = libmetadata.la $(LIBXML_LIBS)
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)