Public Access
SFTP: stop waiting for ever on a host whose login prints text, and draw the file panes' icons whole
SSH.NET 2026.0.0 runs the SFTP handshake synchronously inside ConnectAsync, with an infinite operation timeout and without reading the cancellation token. A host whose login script prints anything (an echo in .bashrc) puts text where the first SFTP packet belongs; SSH.NET reads its first four bytes as a length of about a gigabyte and waits for the rest, so the file browser said "Connecting…" for ever. The SFTP client now uses the connect timeout as its operation timeout for the handshake and resets it to infinite once connected, so transfers on slow links are unchanged. A timeout after authentication becomes a TimeoutException naming the likely cause. The SSH test server gains a second port whose sessions print a banner before sftp-server, and SftpSessionTests proves the open fails within a 3 s connect timeout with that message. Without the fix the test runs into its 30 s guard. Button.paneicon is a fixed 26x26 but kept Fluent's 8,5,8,6 padding, which left a 10px-wide content box, so every 15-16px Material icon on the SFTP panes was drawn with its sides cut off. Its padding is now 0. Rename on the host pane used U+E9AD, an italic T (text formatting); it now uses U+E9A2, the rename glyph the phone's files screen already uses. The host pane's "Up one directory" drew the design's arrow_downward; both panes now use arrow_upward. SSH tests 123/123, layout tests 203/203, app tests 744/749 with the 5 Linux TPM skips.
This commit is contained in:
1 parent
3c8c0980c2
commit
d71f057bde
5 files changed
+101
-11
No files matched your search
@@ -209,10 +209,9 @@
|
||||
design's, unlike HOST/BUCKET across the arrow column, which keeps its own words for a reason
|
||||
recorded where it is drawn.
|
||||
|
||||
UP is arrow_upward here and arrow_downward on the host/bucket pane below, matching the design's own
|
||||
two glyphs exactly rather than picking one "up a directory" icon for both — both buttons do the same
|
||||
thing (go to the parent directory), and the pair reading differently is the design's own choice
|
||||
faithfully carried over rather than a functional difference invented to justify it.
|
||||
UP is arrow_upward on both panes. The design drew arrow_downward on the host/bucket pane, and that
|
||||
was carried over until it was reported as a wrong icon — which it is: both buttons go to the parent
|
||||
directory, and a down arrow under the tooltip "Up one directory" says the opposite of what it does.
|
||||
-->
|
||||
<!--
|
||||
◆ THE PATH SITS IN THE STAR COLUMN, ALONE, AND THAT PLACEMENT IS LOAD-BEARING.
|
||||
@@ -398,8 +397,8 @@
|
||||
directory tree and a flat namespace with inferred folders — and that reason still holds, so only
|
||||
the style moves to the design's 10px tracked label, not the wording.
|
||||
|
||||
UP is arrow_downward here, matching arrow_upward on the local pane above per the design's own two
|
||||
distinct glyphs; see that pane's own remark on why the pair differs without the actions differing.
|
||||
UP is arrow_upward, the same as the local pane's; see that pane's own remark for why it is no longer
|
||||
the design's arrow_downward.
|
||||
-->
|
||||
<!--
|
||||
◆ THE PATH IS TYPED HERE, and that is what the star column is now holding.
|
||||
@@ -446,7 +445,7 @@
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="4" Margin="8,0,0,0">
|
||||
<Button Classes="paneicon" Command="{Binding RemoteUpCommand}"
|
||||
IsEnabled="{Binding IsConnected}" ToolTip.Tip="Up one directory">
|
||||
<TextBlock FontFamily="{StaticResource IconFont}" FontSize="16" Text="" />
|
||||
<TextBlock FontFamily="{StaticResource IconFont}" FontSize="16" Text="" />
|
||||
</Button>
|
||||
<Button Classes="paneicon" Command="{Binding RefreshRemoteCommand}"
|
||||
IsEnabled="{Binding IsConnected}" ToolTip.Tip="Refresh">
|
||||
@@ -546,7 +545,7 @@
|
||||
</Button>
|
||||
<Button Classes="paneicon" Command="{Binding RenameRemoteCommand}"
|
||||
IsEnabled="{Binding CanRenameRemote}" ToolTip.Tip="Rename on the host">
|
||||
<TextBlock FontFamily="{StaticResource IconFont}" FontSize="15" Text="" />
|
||||
<TextBlock FontFamily="{StaticResource IconFont}" FontSize="15" Text="" />
|
||||
</Button>
|
||||
<Button Classes="paneicon" Command="{Binding MoveRemoteCommand}"
|
||||
IsEnabled="{Binding CanMoveRemote}" ToolTip.Tip="Move to another directory">
|
||||
|
||||
Reference in new issue
Block a user