What’s New in This Release of LabSSH?¶
LabSSH v2.6.2 is a patch release - no new library features were added.
New system support:
Added support for LabVIEW 2020-2021. In fact, this should work through LV2025.
Error 402431 System call failed: Unable to get module filename: 126.
Under the hood:
We regularly update our underlying libraries to be sure we stay up to date with the latest bugfixes and vulnerability prevention.
Updated libssh2 to version 1.9.0 (from 1.7.0). Please see <https://libssh2.org/changes.html> for details.
This updated adds support for newer ECDSA and ED25519 keys and host keys. If you were getting errors during authentication, this may resolve your issue.
Updated openssl to version 1.1.1h (from 1.0.2e). Please see <https://www.openssl.org/news/changelog.html#openssl-111> for details.
LabSSH v2.6.2 is a patch release - no new library features were added.
New system support:
Added support for LabVIEW 2019
LabSSH v2.6.1 is a patch release, which means it is primarily a bugfix release with no new features added.
Get Open Sessions.vi can return invalid session(s) on LabVIEW 64-bit.
This defect affects LabSSH versions 2.3.0 and later. The error manifests itself as error code 402429 (see Error Codes) with an error message of:
'labSSH Connection' is invalid
The root cause of this error is an incorrectly sized pointer-copy operation within the DLL. If any given session number is greater than the maximum value of a 32-bit number (2^32-1), then this function will return an invalid session and the error will occur in other LabSSH calls which use the session.
This defect does not affect LabVIEW 32-bit.
Get Open Sessions.vi fails to parse more than two sessions.
Due to an uninitialized shift register within a for-loop, the function fails to parse open sessions returned by the DLL call when there are 3 or more sessions authenticated.
LabSSH v2.6.0 is a minor release, which means it contains new features and maintains backward-compatibility with all 2.x versions.
Added support for LabVIEW 2018.
SH Read.vi now allows a timeout value of 0. Previously, if a timeout of 0 was used and there was no data available, it would throw a timeout error. Now, a timeout value of 0 can be used to rapidly poll for data.
The Shell Demo now continuously polls for data by taking advantage of the new 0-timeout feature. This makes for a more familiar terminal experience by displaying all received data as it comes in, instead of the old way of only displaying received data when a new command was sent.
The Demo application’s sub-VI’s were moved to the correct folder. It was confusing to have them in the same top-level folder, since they’re not meant to be run standalone.
Added front panel instructions to all Demo application front panels.
Show the days remaining in the evaluation period on the main Demo front panel.
LabSSH v2.5.0 is a minor release, which means it contains new features and maintains backward-compatibility with all 2.x versions.
Support for IPv6. Previously, it was not possible to establish sessions with hosts which communicated exclusively using IPv6.
This change is transparent - the protocol is automatically selected by the socket layer. There is no extra configuration needed to connect to an IPv6 host. Additionally, New Session.vi can accept a raw IPv6 address (such as fd01::9dee:0012 for example).
Support for agent-based public key authentication. You may now use tools such as Pageant to easily establish SSH sessions. Previously, you had to provide the private key file directly to LabSSH.
Allow changing default pseudo-terminal (PTY) emulation setting.
Prior to v2.5, the terminal emulation setting used when allocating a PTY was hard-coded to the string vanilla. You may now change the default terminal emulation setting by setting the value of the string control PTY Emulation found in the VI SH Request.vi.
The port control of function New Session.vi has been changed to an unsigned 16-bit number . It was previously a signed 16-bit number , which prevented connections to any TCP port greater than 32768.
LabSSH v2.4.0 is a minor release, which means it contains new features and maintains backward-compatibility with all 2.x versions.
Added support for LabVIEW 2017
Init.vi is no longer without a block diagram.
This simplifies the process for creating applications with the LabVIEW Application Builder. For more information, see 3.4. Additional Exclusions.
Previously, these functions were implemented as C code in labSSH.dll, which caused the LabVIEW UI thread to be blocked until the operation completed.
The Shell demo now uses a monospace font to display its output, which makes for a more familiar presentation.
LabSSH v2.3.2 is a patch release, which means it is primarily a bugfix release with no new features.
Init.vi fails when system’s primary drive letter (e.g. C:) spans multiple physical drives.
Installer should display PID of open LabVIEW instance so users can kill it.
LabSSH v2.3.1 is a patch release, which means it is primarily a bugfix release with no new features.
LabSSH does not create LabSSH menu palette under Data Communication.
Due to an installer defect in version 2.3.0, and erroneous menu entry was created in C:\Menus. This folder is automatically removed upon uninstallation, or can be safely deleted manually.
LabSSH v2.3.0 is a minor release which contains new features but retains backwards-compatibility with all prior 2.x.x versions.
Added support for LabVIEW 2016
Added support for 64-Bit LabVIEW, starting from LabVIEW 2009. Up until now, LabSSH only supported 32-bit LabVIEW.
LabSSH Demo - SFTP Transfer.vi no longer aborts prematurely on very first transfer.
Fixed possible file corruption (extra NUL character) in SCP EZ Receive.vi.
SCP Receive.vi and SFTP Read File.vi: Avoid file corruption by truncating output array when actual bytes read are less initial array size.
Activation wizard now gives a more meaningful error message if unsupported LabVIEW version encountered
Activation wizard ‘nickname’ field is now auto-populated with the computer name by default.
LabSSH v2.2.0 is a minor release which contains new features but retains backwards-compatibility with all prior 2.x.x versions.
Support for LabVIEW 2015
Activation Wizard should only attempt to activate selected versions of LabVIEW.
Previously, the wizard would always try to activate every version of LabVIEW present on the system, even if the corresponding checkbox was unchecked. This would cause a file copy error if LabSSH was not selected for installation for that version of LabVIEW.
LabSSH v2.1.0 is a minor release which contains new features but retains backwards-compatibility with all prior 2.x.x versions.
Support for LabVIEW 2014
Fixed Application Builder documentation: Old documentation was innacurate, and missed several critical steps.
New error code 402478: Unable to receive on socket. This error (-43) was previously unhandled, which resulted in generic error 402430.
New error code 402479: Transport encryption error. This error (-44) was previously unhandled, which resulted in generic error 402430.
Most SCP VI’s did not have a short name.
Get Version.vi had no short name.
Shortened other short names where possible.
LabSSH v2.0.0 is a major release, which means some VI’s break backward-compatibility with previous v1.x.x code.
With LabSSH v2.0.0, you now have the option of choosing either a Computer Based License, or a Named User License. The Computer Based License operates just like LabSSH 1.x, where only one physical computer may run LabSSH. The new Named User License, however, allows a Named User to be designated, which will allow that person (but only that person!) to run LabSSH on up to two (2) computers. With this new licensing model, we hope to accomodate the common scenario of a user working on both a workstation and a laptop computer.
Improved Error Handling
Error handling has been overhauled in v2.0.0. We’ve meticulously documented every error you’ll receive while running your LabSSH-powered application. You may view the error code listing here.
Timeouts now accept millisecond values, which allows higher-resolution timeout values. Though this breaks existing applications, we feel the tradeoff was worthwhile.
Expanded SCP API
We’ve added 5 new VI’s as part of the SCP API, which gives you granular control of SCP file transfers. This is great for transferring large files, as the new API will allow you to segment the transfer into small blocks. Doing this will allow you to do things such as display file progress, and prevent LabVIEW from appearing unresponsive.
Simplified Application Builder Support
We’ve simplified the installation layout. If you’re building LabSSH-powered executables, you’ll find less requirements to manage manually. Specifically, “labSSH.dll” is now automatically detected, and “labSSH-1.dll” has been removed. As a result, all “DLL Path Override” inputs, which used to exist in nearly all library VI’s, have been removed.
Enhanced File Transfer Demos
The demo application’s file transfer (both SCP and SFTP) demo vi’s have been enhanced to show a transfer progress bar. Use this as a starting point for implementation into your applications.
When authenticating using challenge-response (i.e. keyboard-interactive) mode, we’ve made matching much more permissive. Rather than having to match the entire string, a partial match will now send the given response. For example, if your remote server issues a challenge “Please enter your password: “, you may use any of the following to match the prompt: “Please “, “enter your”, “password: “, and so on.
Backwards-Incompatible API Changes¶
Timeout Inputs now in Milliseconds
All timeout controls are now specified in milliseconds. This applies to any VI that takes a Timeout input. To account for this change in your LabSSH-powered applications, you’ll need to multiply your existing timeout values by 1000.
I/O Terminals moved on the connector pane.
In order to create a consistent development experience, some terminals were moved on the connector pane to be consistent with all VI’s which use the same terminal type (e.g. Timeout inputs).
DLL Path Override terminals removed. This input previously allowed you to override the filesystem path to labSSH.dll. This is no longer necessary, and was removed.
For a detailed mapping of backwards-incompatible changes to individual VI’s, please see V1 to V2 API Incompatibilities