diff options
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/gvfsbackendafp.c | 13 | ||||
-rw-r--r-- | daemon/gvfsbackendsftp.c | 33 | ||||
-rw-r--r-- | daemon/gvfsbackendsmb.c | 14 | ||||
-rw-r--r-- | daemon/gvfsdaemon.c | 19 | ||||
-rw-r--r-- | daemon/gvfsdaemonutils.c | 1 |
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); } - |