Warren
|
09dfcf1343
|
Implement Phase 14.3: SFTP packet accumulation (Critical fix)
**Problem Fixed**:
- SFTP packet incomplete errors solved
- Large file transfers now work (>=8KB)
- SSH splits large packets into multiple CHANNEL_DATA
**Implementation**:
- sftp_input_buffer: Vec<u8> accumulation field
- Accumulate CHANNEL_DATA until complete SFTP packet
- Parse length field (4 bytes) to determine packet size
- Process when buffer >= expected_total
- Clear buffer or keep remaining data
**Testing Results** ⭐⭐⭐⭐⭐:
- SFTP 1MB upload: SUCCESS ✅ (MD5: 38fd6536467443dfdc91f89c0fd573d8)
- SCP 1MB transfer: SUCCESS ✅ (MD5: 38fd6536467443dfdc91f89c0fd573d8)
- rsync 1MB transfer: SUCCESS ✅ (53.84MB/s)
- rsync 2MB transfer: FAILED ❌ (rsync protocol issue, separate from accumulation)
**Code Changes**:
- handle_channel_data(): 40 lines modified
- Accumulation logic with buffer management
- Multiple packet handling (remaining data preserved)
**Key Achievement**:
- SFTP/SCP large file support complete
- Only rsync protocol needs Phase 8 implementation
**Progress**: SSH 96% complete, SFTP/SCP subsystems fixed
|
2026-06-16 12:55:45 +08:00 |
|