summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
Diffstat (limited to 'daemon')
-rw-r--r--daemon/gvfsbackendafp.c13
-rw-r--r--daemon/gvfsbackendsftp.c33
-rw-r--r--daemon/gvfsbackendsmb.c14
-rw-r--r--daemon/gvfsdaemon.c19
-rw-r--r--daemon/gvfsdaemonutils.c1
5 files changed, 13 insertions, 67 deletions
diff --git a/daemon/gvfsbackendafp.c b/daemon/gvfsbackendafp.c
index 3630c1c4..090d1de9 100644
--- a/daemon/gvfsbackendafp.c
+++ b/daemon/gvfsbackendafp.c
@@ -53,6 +53,7 @@
#include "gvfsjobsetdisplayname.h"
#include "gvfsjobmove.h"
#include "gvfsjobcopy.h"
+#include "gvfsutils.h"
#include "gvfsafpserver.h"
#include "gvfsafpvolume.h"
@@ -1293,22 +1294,12 @@ replace_create_tmp_file_cb (GObject *source_object, GAsyncResult *res, gpointer
}
static void
-random_chars (char *str, int len)
-{
- int i;
- const char chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-
- for (i = 0; i < len; i++)
- str[i] = chars[g_random_int_range (0, strlen(chars))];
-}
-
-static void
replace_create_tmp_file (GVfsAfpVolume *volume, GVfsJobOpenForWrite *job)
{
char basename[] = "~gvfXXXX.tmp";
char *dir, *tmp_filename;
- random_chars (basename + 4, 4);
+ gvfs_randomize_string (basename + 4, 4);
dir = g_path_get_dirname (job->filename);
tmp_filename = g_build_filename (dir, basename, NULL);
diff --git a/daemon/gvfsbackendsftp.c b/daemon/gvfsbackendsftp.c
index 005a9eb5..576b74e6 100644
--- a/daemon/gvfsbackendsftp.c
+++ b/daemon/gvfsbackendsftp.c
@@ -66,6 +66,7 @@
#include "gvfsjobpush.h"
#include "gvfsjobpull.h"
#include "gvfsdaemonprotocol.h"
+#include "gvfsutils.h"
#include "gvfskeyring.h"
#include "sftp.h"
#include "pty_open.h"
@@ -3408,34 +3409,6 @@ replace_create_temp_reply (GVfsBackendSftp *backend,
}
static void
-random_text (char *s)
-{
- static const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- static const int NLETTERS = sizeof (letters) - 1;
- static int counter = 0;
-
- GTimeVal tv;
- glong value;
-
- /* Get some more or less random data. */
- g_get_current_time (&tv);
- value = (tv.tv_usec ^ tv.tv_sec) + counter++;
-
- /* Fill in the random bits. */
- s[0] = letters[value % NLETTERS];
- value /= NLETTERS;
- s[1] = letters[value % NLETTERS];
- value /= NLETTERS;
- s[2] = letters[value % NLETTERS];
- value /= NLETTERS;
- s[3] = letters[value % NLETTERS];
- value /= NLETTERS;
- s[4] = letters[value % NLETTERS];
- value /= NLETTERS;
- s[5] = letters[value % NLETTERS];
-}
-
-static void
replace_create_temp (GVfsBackendSftp *backend,
GVfsJobOpenForWrite *job)
{
@@ -3460,7 +3433,7 @@ replace_create_temp (GVfsBackendSftp *backend,
g_free (data->tempname);
dirname = g_path_get_dirname (job->filename);
- random_text (basename + 8);
+ gvfs_randomize_string (basename + 8, 6);
data->tempname = g_build_filename (dirname, basename, NULL);
g_free (dirname);
@@ -5395,7 +5368,7 @@ push_create_temp (SftpPushHandle *handle)
g_free (handle->tempname);
dirname = g_path_get_dirname (handle->op_job->destination);
- random_text (basename + 8);
+ gvfs_randomize_string (basename + 8, 6);
handle->tempname = g_build_filename (dirname, basename, NULL);
g_free (dirname);
diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c
index bdfb3659..4b0df517 100644
--- a/daemon/gvfsbackendsmb.c
+++ b/daemon/gvfsbackendsmb.c
@@ -49,6 +49,8 @@
#include "gvfsjobqueryattributes.h"
#include "gvfsjobenumerate.h"
#include "gvfsdaemonprotocol.h"
+#include "gvfsdaemonutils.h"
+#include "gvfsutils.h"
#include "gvfskeyring.h"
#include <libsmbclient.h>
@@ -1052,16 +1054,6 @@ do_append_to (GVfsBackend *backend,
}
-static void
-random_chars (char *str, int len)
-{
- int i;
- const char chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-
- for (i = 0; i < len; i++)
- str[i] = chars[g_random_int_range (0, strlen(chars))];
-}
-
static char *
get_dir_from_uri (const char *uri)
{
@@ -1095,7 +1087,7 @@ open_tmpfile (GVfsBackendSmb *backend,
dir_uri = get_dir_from_uri (uri);
do {
- random_chars (filename + 4, 4);
+ gvfs_randomize_string (filename + 4, 4);
tmp_uri = g_strconcat (dir_uri, filename, NULL);
smbc_open = smbc_getFunctionOpen (backend->smb_context);
diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c
index f0865b0a..7bc334b9 100644
--- a/daemon/gvfsdaemon.c
+++ b/daemon/gvfsdaemon.c
@@ -38,6 +38,7 @@
#include <gvfsdaemon.h>
#include <gvfsdaemonprotocol.h>
#include <gvfsdaemonutils.h>
+#include <gvfsutils.h>
#include <gvfsjobmount.h>
#include <gvfsjobopenforread.h>
#include <gvfsjobopenforwrite.h>
@@ -722,18 +723,6 @@ daemon_peer_connection_setup (GVfsDaemon *daemon,
#define USE_ABSTRACT_SOCKETS
#endif
-static void
-randomize_string (char tmp[9])
-{
- int i;
- const char chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-
- for (i = 0; i < 8; i++)
- tmp[i] = chars[g_random_int_range (0, strlen(chars))];
-
- tmp[8] = '\0';
-}
-
#ifndef USE_ABSTRACT_SOCKETS
static gboolean
test_safe_socket_dir (const char *dirname)
@@ -770,7 +759,8 @@ create_socket_dir (void)
{
g_free (safe_dir);
- randomize_string (tmp);
+ gvfs_randomize_string (tmp, 8);
+ tmp[8] = '\0';
dirname = g_strdup_printf ("gvfs-%s-%s",
g_get_user_name (), tmp);
@@ -827,7 +817,8 @@ generate_address (char **address,
{
gchar tmp[9];
- randomize_string (tmp);
+ gvfs_randomize_string (tmp, 8);
+ tmp[8] = '\0';
*address = g_strdup_printf ("unix:abstract=/dbus-vfs-daemon/socket-%s", tmp);
}
#else
diff --git a/daemon/gvfsdaemonutils.c b/daemon/gvfsdaemonutils.c
index 660873cf..3c331271 100644
--- a/daemon/gvfsdaemonutils.c
+++ b/daemon/gvfsdaemonutils.c
@@ -215,4 +215,3 @@ gvfs_file_info_populate_content_types (GFileInfo *info,
g_free (free_mimetype);
}
-