diff --git a/data/scp_2mb_final_fix.bin b/data/scp_2mb_final_fix.bin new file mode 100644 index 0000000..5007ef2 Binary files /dev/null and b/data/scp_2mb_final_fix.bin differ diff --git a/markbase-core/src/ssh_server/channel.rs b/markbase-core/src/ssh_server/channel.rs index 7122b0f..2b96a7e 100644 --- a/markbase-core/src/ssh_server/channel.rs +++ b/markbase-core/src/ssh_server/channel.rs @@ -124,6 +124,7 @@ impl ChannelManager { rsync_handler: None, exec_process: None, // Phase 14: 交互式exec sftp_input_buffer: Vec::new(), // ⭐⭐⭐⭐⭐ Phase 14.2修复:SFTP packet累积 + scp_input_buffer: Vec::new(), // ⭐⭐⭐⭐⭐ Phase 14.4修复:SCP packet累积 direct_tcpip: None, forwarded_tcpip: None, }; @@ -180,6 +181,7 @@ impl ChannelManager { rsync_handler: None, exec_process: None, // Phase 14: 交互式exec sftp_input_buffer: Vec::new(), // ⭐⭐⭐⭐⭐ Phase 14.2修复 + scp_input_buffer: Vec::new(), // ⭐⭐⭐⭐⭐ Phase 14.4修复 direct_tcpip: Some(direct_tcpip), forwarded_tcpip: None, }; @@ -224,6 +226,7 @@ impl ChannelManager { rsync_handler: None, exec_process: None, // Phase 14: 交互式exec sftp_input_buffer: Vec::new(), // ⭐⭐⭐⭐⭐ Phase 14.2修复 + scp_input_buffer: Vec::new(), // ⭐⭐⭐⭐⭐ Phase 14.4修复 direct_tcpip: None, forwarded_tcpip: Some(forwarded_tcpip), }; @@ -1321,6 +1324,8 @@ struct Channel { exec_process: Option, // Phase 14: 交互式exec进程 // ⭐⭐⭐⭐⭐ Critical修复:SFTP packet累积buffer sftp_input_buffer: Vec, // Phase 14.2修复:累积不完整的SFTP packets + // ⭐⭐⭐⭐⭐ Phase 14.4:SCP packet累积buffer + scp_input_buffer: Vec, // Phase 14.4修复:累积不完整的SCP packets // Phase 13.3: 端口转发相关字段 direct_tcpip: Option, // direct-tcpip channel(Remote forwarding) forwarded_tcpip: Option, // forwarded-tcpip channel(Local forwarding)