diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2009-05-18 20:55:01 +0800 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2009-06-01 23:53:20 +0800 |
commit | 24c1b03b78ee231e78a52ec79eb15e2f41e80338 (patch) | |
tree | a9cf50e7307d61c4cafead3f8c2c77f06077d869 | |
parent | 948f05b5e6b28afbfc0549efe6cc4fd55598738c (diff) | |
download | gsoc2013-empathy-24c1b03b78ee231e78a52ec79eb15e2f41e80338.tar gsoc2013-empathy-24c1b03b78ee231e78a52ec79eb15e2f41e80338.tar.gz gsoc2013-empathy-24c1b03b78ee231e78a52ec79eb15e2f41e80338.tar.bz2 gsoc2013-empathy-24c1b03b78ee231e78a52ec79eb15e2f41e80338.tar.lz gsoc2013-empathy-24c1b03b78ee231e78a52ec79eb15e2f41e80338.tar.xz gsoc2013-empathy-24c1b03b78ee231e78a52ec79eb15e2f41e80338.tar.zst gsoc2013-empathy-24c1b03b78ee231e78a52ec79eb15e2f41e80338.zip |
Set use_hash according to what the CM returns
Set use_hash according to what the CM returns and not what the user
would like it to be, so that clients won't be confused about whether
they should connect to "hashing-started" after "transfer-done".
-rw-r--r-- | libempathy/empathy-ft-handler.c | 11 | ||||
-rw-r--r-- | src/empathy-ft-manager.c | 10 |
2 files changed, 18 insertions, 3 deletions
diff --git a/libempathy/empathy-ft-handler.c b/libempathy/empathy-ft-handler.c index e2172bcd5..beb57b1ed 100644 --- a/libempathy/empathy-ft-handler.c +++ b/libempathy/empathy-ft-handler.c @@ -1277,14 +1277,25 @@ empathy_ft_handler_incoming_set_destination (EmpathyFTHandler *handler, GFile *destination, gboolean use_hash) { + EmpathyFTHandlerPriv *priv; + DEBUG ("Set incoming destination, use hash %s", use_hash ? "True" : "False"); g_return_if_fail (EMPATHY_IS_FT_HANDLER (handler)); g_return_if_fail (G_IS_FILE (destination)); + priv = GET_PRIV (handler); + g_object_set (handler, "gfile", destination, "use-hash", use_hash, NULL); + + /* check if hash is really supported. if it isn't, set use_hash to FALSE + * anyway, so that clients won't be expecting us to checksum. + */ + if (EMP_STR_EMPTY (priv->content_hash) || + priv->content_hash_type == TP_FILE_HASH_TYPE_NONE) + priv->use_hash = FALSE; } /** diff --git a/src/empathy-ft-manager.c b/src/empathy-ft-manager.c index 858b21208..7b3e88a24 100644 --- a/src/empathy-ft-manager.c +++ b/src/empathy-ft-manager.c @@ -491,16 +491,20 @@ ft_handler_transfer_done_cb (EmpathyFTHandler *handler, EmpathyTpFile *tp_file, EmpathyFTManager *manager) { - DEBUG ("Transfer done"); - if (empathy_ft_handler_is_incoming (handler) && empathy_ft_handler_get_use_hash (handler)) { - /* connect to the signal */ + DEBUG ("Transfer done, waiting for hashing-started"); + + /* connect to the signal and return early */ g_signal_connect (handler, "hashing-started", G_CALLBACK (ft_handler_hashing_started_cb), manager); + + return; } + DEBUG ("Transfer done, no hashing"); + do_real_transfer_done (manager, handler); } |