gvfs r1647 - in trunk: . daemon
- From: otte svn gnome org
- To: svn-commits-list gnome org
- Subject: gvfs r1647 - in trunk: . daemon
- Date: Wed, 12 Mar 2008 15:36:00 +0000 (GMT)
Author: otte
Date: Wed Mar 12 15:36:00 2008
New Revision: 1647
URL: http://svn.gnome.org/viewvc/gvfs?rev=1647&view=rev
Log:
2008-03-12 Benjamin Otte <otte gnome org>
* daemon/gvfsbackendftp.c:
invalidate the cache of directories that we modified ourselves.
* daemon/Makefile.am:
allow 10 threads in parallel
Modified:
trunk/ChangeLog
trunk/daemon/Makefile.am
trunk/daemon/gvfsbackendftp.c
Modified: trunk/daemon/Makefile.am
==============================================================================
--- trunk/daemon/Makefile.am (original)
+++ trunk/daemon/Makefile.am Wed Mar 12 15:36:00 2008
@@ -222,7 +222,7 @@
gvfsd_ftp_CPPFLAGS = \
-DBACKEND_HEADER=gvfsbackendftp.h \
-DDEFAULT_BACKEND_TYPE=ftp \
- -DMAX_JOB_THREADS=1 \
+ -DMAX_JOB_THREADS=10 \
$(HTTP_CFLAGS) \
-DBACKEND_TYPES='"ftp", G_VFS_TYPE_BACKEND_FTP,'
Modified: trunk/daemon/gvfsbackendftp.c
==============================================================================
--- trunk/daemon/gvfsbackendftp.c (original)
+++ trunk/daemon/gvfsbackendftp.c Wed Mar 12 15:36:00 2008
@@ -1529,6 +1529,34 @@
}
}
+static void
+gvfs_backend_ftp_purge_cache_directory (GVfsBackendFtp *ftp,
+ const FtpFile * dir)
+{
+ g_static_rw_lock_writer_lock (&ftp->directory_cache_lock);
+ g_hash_table_remove (ftp->directory_cache, dir);
+ g_static_rw_lock_writer_unlock (&ftp->directory_cache_lock);
+}
+
+static void
+gvfs_backend_ftp_purge_cache_of_file (GVfsBackendFtp *ftp,
+ FtpConnection * conn,
+ const FtpFile * file)
+{
+ char *dirname, *filename;
+ FtpFile *dir;
+
+ filename = ftp_filename_to_gvfs_path (conn, file);
+ dirname = g_path_get_dirname (filename);
+ dir = ftp_filename_from_gvfs_path (conn, dirname);
+
+ gvfs_backend_ftp_purge_cache_directory (ftp, dir);
+
+ g_free (dir);
+ g_free (filename);
+ g_free (dirname);
+}
+
/* forward declaration */
static GFileInfo *
create_file_info (GVfsBackendFtp *ftp, FtpConnection *conn, const char *filename, char **symlink);
@@ -1560,6 +1588,7 @@
}
file = ftp_filename_from_gvfs_path (conn, filename);
do_start_write (ftp, conn, flags, "STOR %s", file);
+ gvfs_backend_ftp_purge_cache_of_file (ftp, conn, file);
g_free (file);
return;
@@ -1583,6 +1612,7 @@
file = ftp_filename_from_gvfs_path (conn, filename);
do_start_write (ftp, conn, flags, "APPE %s", filename);
+ gvfs_backend_ftp_purge_cache_of_file (ftp, conn, file);
g_free (file);
return;
}
@@ -1615,6 +1645,7 @@
file = ftp_filename_from_gvfs_path (conn, filename);
do_start_write (ftp, conn, flags, "STOR %s", file);
+ gvfs_backend_ftp_purge_cache_of_file (ftp, conn, file);
g_free (file);
return;
}
@@ -2050,7 +2081,6 @@
dir = ftp_filename_from_gvfs_path (conn, name);
g_free (name);
now = ftp_filename_construct (conn, dir, display_name);
- g_free (dir);
if (now == NULL)
{
g_set_error (&conn->error,
@@ -2070,6 +2100,8 @@
g_free (now);
g_vfs_job_set_display_name_set_new_path (job, name);
g_free (name);
+ gvfs_backend_ftp_purge_cache_directory (ftp, dir);
+ g_free (dir);
g_vfs_backend_ftp_push_connection (ftp, conn);
}
@@ -2098,6 +2130,7 @@
0,
"RMD %s", file);
+ gvfs_backend_ftp_purge_cache_of_file (ftp, conn, file);
g_free (file);
g_vfs_backend_ftp_push_connection (ftp, conn);
}
@@ -2121,6 +2154,7 @@
"MKD %s", file);
/* FIXME: Compare created file with name from server result to be sure
* it's correct and otherwise fail. */
+ gvfs_backend_ftp_purge_cache_of_file (ftp, conn, file);
g_free (file);
g_vfs_backend_ftp_push_connection (ftp, conn);
@@ -2198,6 +2232,8 @@
0,
"RNTO %s", destfile);
+ gvfs_backend_ftp_purge_cache_of_file (ftp, conn, srcfile);
+ gvfs_backend_ftp_purge_cache_of_file (ftp, conn, destfile);
out:
g_free (srcfile);
g_free (destfile);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]