davidrg / ckwin

Kermit 95 (C-Kermit for Windows) - scriptable internet and serial communications with terminal emulation
Other
60 stars 15 forks source link

SSH DLL #263

Closed davidrg closed 4 weeks ago

davidrg commented 1 month ago

This moves the entire SSH backend (all the libssh-related code) into a DLL when built with CKF_DYNAMIC_SSH=yes and Kermit 95 attempts to load this DLL on startup provided the -#2 command line argument to disable loading of optional network DLLs has not been given. If loading of the backend DLL fails, all SSH related commands and options are hidden except for a single new SSH LOAD command which lets you attempt to load an SSH backend from a list of DLL files which will be attempted in order. The first DLL that loads successfully will be used to turn on which ever SSH features that DLL claims to support.

This solves the recent manual DLL shuffling thats been required in recent releases to support Kerberos and Windows XP. It also means that K95 no longer depends on libssh - other SSH implementations could be supported by implementing the relatively simple DLL interface (similar to the existing Network DLL interface).

When built with CKF_DYNAMIC_SSH=no (the default), SSH support is as before - k95g.exe and k95.exe depend directly on libssh (ssh.dll) and will fail to start when it is not present.

TODO:

davidrg commented 4 weeks ago

User manual isn't updated for this feature yet (as its not updated for most features yet), but build documentation is.