diff options
author | Ross Lagerwall <rosslagerwall@gmail.com> | 2014-10-19 09:03:51 +0100 |
---|---|---|
committer | Ross Lagerwall <rosslagerwall@gmail.com> | 2015-02-09 23:14:17 +0000 |
commit | fcd88e9ee0c68c5f0e15fb402c22b26dc4415299 (patch) | |
tree | 4397baf7f83f5dc26ec66c99440934f20c89c3cc /metadata/metatree.c | |
parent | 221378f58f50bdf6e780e668539e875bac581826 (diff) | |
download | gvfs-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.c | 29 |
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) |