This commit is contained in:
@@ -121,6 +121,21 @@ public class FileTransfer implements FTCut.FTCutListener, FTDft.FTDftListener {
|
||||
if (state == FTState.RUNNING || state == FTState.AWAIT_ACK) {
|
||||
log.info("User cancelled transfer");
|
||||
setState(FTState.ABORT_WAIT); // Signal handlers to abort at next chance
|
||||
// Start a safety timeout in case the host does not send further packets to trigger abort
|
||||
cancelTimeout();
|
||||
timeoutTimer = new Timer("FTCancelTimeout", true);
|
||||
timeoutTimer.schedule(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
if (state != FTState.NONE) {
|
||||
log.warning("Transfer cancel timeout — force resetting state");
|
||||
completeTransfer("Transfer cancelled by user.");
|
||||
callback.onTransferAborted("Cancelled by user.");
|
||||
}
|
||||
});
|
||||
}
|
||||
}, 3000);
|
||||
} else if (state != FTState.NONE) {
|
||||
log.info("Forcing cancel from state " + state);
|
||||
completeTransfer("Transfer cancelled.");
|
||||
|
||||
Reference in New Issue
Block a user