Double Commander is a free cross platform open source file manager with two panels side by side. https://doublecmd.sourceforge.io
  • Pascal 94.5%
  • Assembly 4.1%
  • HTML 0.5%
  • Shell 0.4%
  • C 0.2%
  • Other 0.1%
Find a file
heredie 174fd293f9 ftp/sftp: survive long idles and reconnect on refresh
SFTP/SCP tabs left open for a long time stopped working and never
reconnected. Root causes:

- TScpSend.Connect overrides Connect and never ran TFTPSendEx.Connect,
  the only place SO_KEEPALIVE was applied, so SSH sockets had no
  keep-alive at all and idle links got dropped (NAT/firewall timeout).
- TScpSend.NetworkError required CanRead(0) AND last_errno<>0, so a
  server-closed idle session (readable socket, errno still 0) was
  reported healthy and never triggered a reconnect.
- On a detected error it only re-logged-in on the dead session object.

Changes:

- Factor keep-alive into TFTPSendEx.ApplyKeepAlive and apply it to both
  the FTP control socket and the SSH socket. On Unix also tune
  TCP_KEEPIDLE/INTVL/CNT (30/10/3) so idle connections are probed within
  ~1 min: keeps NAT mappings open and detects dead peers quickly.
- TScpSend.NetworkError now treats either condition (errno set or
  unexpected readable socket) as a dead link.
- On a dead link FtpConnect discards the stale connection and reconnects
  fresh, reusing the cached password or prompting again when none is
  cached. A plain refresh then reconnects and re-lists the current
  folder. Quick connections (no stored entry) report unable to reconnect.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:19:29 -06:00
.github FIX: Build snapshots 2026-05-28 20:49:27 +03:00
components ADD: IKASPathEditMate in KASPathEdit for further refactor 2026-05-31 23:31:23 +08:00
default ADD: MultiArc - FallBackArchivers (#1837) 2024-09-17 00:07:21 +03:00
doc UPD: Minimal Lazarus version 2026-03-31 18:23:20 +03:00
doublecmd.app/Contents UPD: new Icon for macOS, better than before on macOS 15, issue #2552 2025-10-20 17:23:01 +08:00
highlighters ADD: JSONC highlighter (issue #2898) 2026-05-31 16:58:48 +03:00
install ADD: SevenZip - install plugin under Linux (experimental) 2025-10-11 13:39:55 +03:00
language UPD: Russian language file 2026-06-16 18:32:59 +03:00
libraries/src UPD: libunrar build script 2025-06-28 16:28:21 +03:00
pixmaps UPD: apply 'cm_openstash' in TStashFileSource.GetMainIcon() 2026-06-17 09:38:53 +08:00
plugins ftp/sftp: survive long idles and reconnect on refresh 2026-06-19 19:19:29 -06:00
scripts
sdk UPD: C SDK (#2634) 2025-12-09 09:17:58 +03:00
src UPD: improve sourcePath/targetPath when copying from iCloud to MultiArchive/7z 2026-06-18 21:21:42 +08:00
tools FIX: JSON-Pack utility 2023-07-11 23:03:27 +03:00
units DEL: Don't read Lazarus revision 2021-08-21 11:17:35 +03:00
.gitattributes FIX: Unset 'text' attribute for '*.bat' 2023-01-19 21:12:20 +03:00
.gitignore FIX: Main window loses focus after confirming file/folder deletion (fixes #2160) (#2760) 2026-02-21 12:38:55 +03:00
build.bat UPD: Line-endings 2023-01-19 21:17:15 +03:00
build.sh
clean.bat UPD: Rename DCPcrypt to KAScrypt 2023-12-04 20:25:15 +03:00
clean.sh Update clean.sh (#1504) 2024-03-02 17:32:51 +03:00
doublecmd.help UPD: Enable Chinese online help 2026-01-14 18:59:42 +03:00
doublecmd.lpg UPD: Rename DCPcrypt to KAScrypt 2023-12-04 20:25:15 +03:00
doublecmd.png
doublecmd.sh ADD: Pass command line arguments 2023-05-15 23:08:27 +03:00
fpmake.pp ADD: MacCloud to fpmake.pp 2026-03-14 12:33:12 +03:00
LICENSE.md ADD: GitHub license file (fixes #660) 2022-11-30 20:31:09 +03:00
pinyin.tbl UPD: Rename Pinyin table file 2021-08-29 12:54:21 +03:00
README.md UPD: Added clarifications (#713) 2022-12-12 19:42:27 +03:00

Double Commander is a free cross-platform open source file manager with two panels side by side (or one above the other). It is inspired by Total Commander and features some innovative new ideas.

Double Commander can be run on several platforms and operating systems. It supports 32-bit and 64-bit processors. See Supported platforms for a complete list.

See Double Commander in action in the Screenshot Gallery.

Where to start

Download

Go to the Double Commander download page to download the latest release.

You can check the latest version on the Versions page.

See if Double Commander is supported for your platform on the Supported platforms page.

Develop

For more information on the development of Double Commander, see the Development page.

Discuss

Go to our forum for discussions. There are English and Russian sections.

If you want to stay up-to-date with the project, you can check out the available news feeds.