diff options
author | Benjamin Otte <otte@gnome.org> | 2009-06-11 11:15:57 +0200 |
---|---|---|
committer | Benjamin Otte <otte@gnome.org> | 2009-06-11 11:15:57 +0200 |
commit | b6637656b002baed39647d6b7c66d79d6bae4ed5 (patch) | |
tree | 376f84ecb65cfd84527552399703c9fa2922d4f3 /daemon | |
parent | 61fcfbd9fb9e7505f9917cc2db5665b46a90e005 (diff) | |
download | gvfs-b6637656b002baed39647d6b7c66d79d6bae4ed5.tar.gz |
[FTP] close data connection before invoking error handlers
Some ftp commands like RETR require an open data connection, but if they
fail, we want to invoke error handlers. To allow those handlers to open
data connections themselves, we close any potentially open ones beofre
invoking them.
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/gvfsftptask.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/daemon/gvfsftptask.c b/daemon/gvfsftptask.c index 7ef998b1..ac479643 100644 --- a/daemon/gvfsftptask.c +++ b/daemon/gvfsftptask.c @@ -560,6 +560,10 @@ g_vfs_ftp_task_send_and_check (GVfsFtpTask * task, if (response == 550 && funcs) { + /* close a potentially open data connection, the error handlers + * might try to open new ones and that would cause assertions */ + g_vfs_ftp_task_close_data_connection (task); + while (*funcs && !g_vfs_ftp_task_is_in_error (task)) { (*funcs) (task, data); |