summaryrefslogtreecommitdiff
path: root/daemon/gvfsftptask.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-02-07 19:53:11 +0100
committerBenjamin Otte <otte@redhat.com>2010-02-07 19:53:11 +0100
commit153fae8d1f6796686d46de0ecbd58281738f30e9 (patch)
tree5a7de0e8d1eb730ab81e260537a9d16a47c3b219 /daemon/gvfsftptask.c
parent4113a6fd0e4b628a71a7144e4009012523945cc9 (diff)
downloadgvfs-153fae8d1f6796686d46de0ecbd58281738f30e9.tar.gz
ftp: put check if a method is supported into its own function
Diffstat (limited to 'daemon/gvfsftptask.c')
-rw-r--r--daemon/gvfsftptask.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/daemon/gvfsftptask.c b/daemon/gvfsftptask.c
index fcf01ab8..5393d0cc 100644
--- a/daemon/gvfsftptask.c
+++ b/daemon/gvfsftptask.c
@@ -983,6 +983,17 @@ struct _GVfsFtpOpenDataConnectionMethod {
GVfsFtpOpenDataConnectionFunc func;
};
+static gboolean
+g_vfs_ftp_task_open_data_connection_method_is_supported (const GVfsFtpOpenDataConnectionMethod *method,
+ GVfsFtpTask * task)
+{
+ if (method->required_feature &&
+ !g_vfs_backend_ftp_has_feature (task->backend, method->required_feature))
+ return FALSE;
+
+ return TRUE;
+}
+
static GVfsFtpMethod
g_vfs_ftp_task_setup_data_connection_any (GVfsFtpTask *task, GVfsFtpMethod unused)
{
@@ -998,8 +1009,7 @@ g_vfs_ftp_task_setup_data_connection_any (GVfsFtpTask *task, GVfsFtpMethod unuse
/* first try all advertised features */
for (i = 0; i < G_N_ELEMENTS (funcs_ordered); i++)
{
- if (funcs_ordered[i].required_feature &&
- !g_vfs_backend_ftp_has_feature (task->backend, funcs_ordered[i].required_feature))
+ if (!g_vfs_ftp_task_open_data_connection_method_is_supported (&funcs_ordered[i], task))
continue;
method = funcs_ordered[i].func (task, G_VFS_FTP_METHOD_ANY);
if (method != G_VFS_FTP_METHOD_ANY)
@@ -1011,8 +1021,7 @@ g_vfs_ftp_task_setup_data_connection_any (GVfsFtpTask *task, GVfsFtpMethod unuse
/* then try if the non-advertised features work */
for (i = 0; i < G_N_ELEMENTS (funcs_ordered); i++)
{
- if (!funcs_ordered[i].required_feature ||
- g_vfs_backend_ftp_has_feature (task->backend, funcs_ordered[i].required_feature))
+ if (g_vfs_ftp_task_open_data_connection_method_is_supported (&funcs_ordered[i], task))
continue;
method = funcs_ordered[i].func (task, G_VFS_FTP_METHOD_ANY);
if (method != G_VFS_FTP_METHOD_ANY)