]> jfr.im git - irc/weechat/weechat.git/commitdiff
xfer: disconnect all active DCC chats and files on /upgrade
authorSébastien Helleu <redacted>
Sun, 7 Aug 2022 09:15:03 +0000 (11:15 +0200)
committerSébastien Helleu <redacted>
Sun, 7 Aug 2022 09:15:03 +0000 (11:15 +0200)
ChangeLog.adoc
src/plugins/xfer/xfer.c

index 6213344bd6fa69e17a80c9120161047d83fb71bc..8329d301ffdb68e4ed4a03669037c89418469a29 100644 (file)
@@ -39,6 +39,7 @@ Bug fixes::
   * scripts: fix issue with year ≥ 2038 in functions infolist_new_var_time, print_date_tags and print_y_date_tags (plugins: python/lua/tcl/guile/javascript)
   * scripts: fix issue with long interval in function hook_timer (plugins: python/ruby/lua/tcl/guile/javascript/php)
   * xfer: fix crash when closing DCC chat buffer
+  * xfer: disconnect all active DCC chats and files on `/upgrade`
   * xfer: fix refresh of xfer buffer after `/upgrade`
 
 Tests::
index b1c5690d84a635a59eb5c8796227c197aebd7fea..7d14ba99897a59826cbf1e137d159c37e7003085 100644 (file)
@@ -130,8 +130,13 @@ xfer_signal_upgrade_cb (const void *pointer, void *data,
 
     xfer_signal_upgrade_received = 1;
 
-    if (signal_data && (strcmp (signal_data, "quit") == 0))
-        xfer_disconnect_all ();
+    /*
+     * TODO: do not disconnect here in case of upgrade when the save of xfers
+     * in upgrade file will be implemented
+     * (see function xfer_upgrade_save_xfers in xfer-upgrade.c)
+     */
+    /*if (signal_data && (strcmp (signal_data, "quit") == 0))*/
+    xfer_disconnect_all ();
 
     return WEECHAT_RC_OK;
 }
@@ -418,7 +423,9 @@ xfer_disconnect_all ()
                                     ptr_xfer->filename,
                                     ptr_xfer->remote_nick);
             }
-            xfer_close (ptr_xfer, XFER_STATUS_FAILED);
+            xfer_close (ptr_xfer,
+                        (XFER_IS_CHAT(ptr_xfer->type)) ?
+                        XFER_STATUS_ABORTED : XFER_STATUS_FAILED);
         }
     }
 }
@@ -1922,8 +1929,8 @@ weechat_plugin_end (struct t_weechat_plugin *plugin)
 
     if (xfer_signal_upgrade_received)
         xfer_upgrade_save ();
-    else
-        xfer_disconnect_all ();
+
+    xfer_disconnect_all ();
 
     xfer_free_all ();