Commit Graph

1434 Commits

Author SHA1 Message Date
vasilito d96fbd91e0 bridge: 5 unit tests for FDB learn/age/lookup 2026-07-08 21:20:47 +03:00
vasilito 3406898f89 kernel: bump (I/O accounting wired in) 2026-07-08 21:18:01 +03:00
vasilito ba0d9847cd nat: 6 unit tests for IP rewrite + table 2026-07-08 21:17:02 +03:00
vasilito 0b6723f22a relibc: bump (freeaddrinfo memory leak fix) 2026-07-08 21:15:32 +03:00
vasilito 970e47d30c fix(tlc): repair redox scheme VFS backend compilation
- Add redox_syscall path dependency for the Redox-only scheme backend.
- Fix RedoxStat import to use redox_syscall::data::Stat.
- Match Entry API: Entry { name, stat } and is_dir() method.
- Match Stat API: nlinks/inode fields, Permissions::from_mode.
2026-07-08 20:11:43 +03:00
vasilito 9c0611e169 bump relibc to disable libc-crate layout checks and fix cond import 2026-07-08 20:03:37 +03:00
vasilito 7014badc8e relibc: bump (pthread_cond_init monotonic clock) 2026-07-08 19:59:03 +03:00
vasilito 53a0d7c967 conntrack: critical ICMP offset bug fix + per-protocol rate limits + 4 tests 2026-07-08 19:59:03 +03:00
vasilito ba3c52738d bump relibc to fix mutex prioceiling layout 2026-07-08 19:59:02 +03:00
vasilito b4e49c761a Redox scheme:// VFS backend (target_os gate for cross-compile)
Added src/vfs/redox_scheme.rs — VFS backend that maps scheme:name/path
to Redox kernel scheme operations via redox_syscall. Implements:
- read_dir: opens scheme dir, reads newline-separated entry list, stats
  each child for metadata
- stat/exists/is_dir/is_file: via open(O_STAT) + fstat
- open_read: via open(O_RDONLY) + read, buffers file content

Gated behind #[cfg(target_os = redox)] — entire module compiles out
on Linux. Registered in vfs/mod.rs for_path() dispatch under "scheme".
Includes path parsing tests for scheme:file:/home/user paths.

This is the last remaining MC parity item (MC supports fish://, ftp://,
sftp:// on Linux — TLC now supports scheme:// on Redox).
2026-07-08 19:52:12 +03:00
vasilito 5980b019df summary: include filter chain counters 2026-07-08 19:51:09 +03:00
vasilito 1cd74cb621 filter: unit tests + chain_summary (regression coverage) 2026-07-08 19:47:59 +03:00
vasilito 0b1edeee79 relibc: bump (pthread mutex prioceiling) 2026-07-08 19:46:48 +03:00
vasilito 265169105d bump relibc to fix mutex prioceiling field 2026-07-08 19:44:31 +03:00
vasilito 30f696e0fa External panelize: command history with Up/Down arrow navigation
Added command history to ExternalPanelizeDialog:
- history: Vec<String> stores previously-run commands (deduped)
- history_idx: Option<usize> tracks position during navigation
- Up arrow: navigate to older entries (backward through history)
- Down arrow: navigate to newer entries (forward), exit to live input
- Typing any character exits history mode
- Successful command runs push to history (dedup consecutive)
- Render hint shows '↑↓ history' indicator

Self-contained — no changes to Input widget required.
1433 tests pass, zero warnings.
2026-07-08 19:43:43 +03:00
vasilito 1b1e137961 netfilter: counters/reset path — preserves rules (iptables -Z) 2026-07-08 19:41:19 +03:00
vasilito fd57d69ee6 bump relibc to fix IPPROTO match patterns 2026-07-08 19:39:31 +03:00
vasilito a85247c728 filter: critical fix — verdicts now actually applied (were ignored) 2026-07-08 19:37:08 +03:00
vasilito c54c4a2744 Phase 10b: Archive compress via system tools (MC parity)
Added Cmd::Compress — collects marked/cursor files, derives archive
name from directory name, shells out to 'tar -czf' via start_exec(),
and shows output in the exec dialog.

Wired through:
- keymap/mod.rs: Cmd::Compress variant + default Alt-Shift-C binding
- filemanager/dialog_ops.rs: compress_selected() method
- filemanager/dispatch.rs: Cmd::Compress dispatch arm
- filemanager/menubar.rs: File menu 'Compress' entry

Updated PLAN.md and README.md. Phase 8 archives now complete.
1433 tests pass, zero warnings.
2026-07-08 19:32:32 +03:00
vasilito 35d6977bf1 conntrack: ICMP echo rate limiting (20/sec per source) 2026-07-08 19:25:21 +03:00
vasilito c298ad99d2 relibc: bump (getsockopt IP/IPv6 levels) 2026-07-08 19:24:45 +03:00
vasilito d895a50947 netdiag: display error/drop counters from /stats 2026-07-08 19:20:49 +03:00
vasilito 44ef5f76c2 fix in-house crate deps: redox-driver-sys and linux-kpi to 0.3 2026-07-08 19:19:41 +03:00
vasilito c4a742952e kernel: bump (/proc/[pid]/io + I/O accounting fields) 2026-07-08 19:18:48 +03:00
vasilito 405df0722b netcfg: summary node — at-a-glance network state 2026-07-08 19:17:00 +03:00
vasilito b8cb31200a promiscuous: per-interface toggle via netcfg 2026-07-08 19:04:06 +03:00
vasilito 0ce5f0d11e kernel: bump (/proc/[pid]/limits + rlimit field) 2026-07-08 18:57:14 +03:00
vasilito 31f2436993 kernel: bump (/proc/[pid]/statm) 2026-07-08 18:54:33 +03:00
vasilito 000cf4a861 kernel: bump (/proc/[pid]/maps implementation) 2026-07-08 18:51:10 +03:00
vasilito a9c1f3bdad arp: static add/del via netcfg (ip neigh add/del) 2026-07-08 18:49:53 +03:00
vasilito 1c8cb18d8a Phase 10a: SFTP open_read streaming — replace full-file buffer with chunked reads
Replaced session.read(path) (buffers entire file in memory, OOM risk
for large files) with session.open(path) + SftpReader — a streaming
Read bridge that wraps an open SFTP file handle and reads in bounded
chunks via AsyncReadExt::read + block_on.

SftpReader uses Mutex<File> for thread safety and tokio::runtime::Handle
to bridge async→sync. Each Read::read() call issues a single SFTP read
request for a bounded chunk — large files are never buffered in memory.

Updated module doc to document the streaming read surface.
1433 tests pass (default), 1442 with --features sftp, zero warnings.
2026-07-08 18:46:56 +03:00
vasilito 19283f70e3 bump relibc to 5638058b (setgroups + ENOSYS fixes) 2026-07-08 18:45:26 +03:00
vasilito daa1417083 route/gateway: read default gateway via netcfg 2026-07-08 18:45:07 +03:00
vasilito 9ebf6dec4c stats: rx_errors + tx_errors tracking in real failure paths 2026-07-08 18:43:11 +03:00
vasilito 5fdd52c58f relibc: bump (setgroups via proc Groups handle) 2026-07-08 18:40:07 +03:00
vasilito 22dce8330e stats: track rx_dropped on ARP/NDP failures 2026-07-08 18:39:42 +03:00
vasilito a48a16f80b stats: RFC 1213 MIB-II error/drop counters 2026-07-08 18:35:33 +03:00
vasilito 0046efb009 sync in-house crate versions to 0.3.0 and bump kernel/relibc/syscall submodules 2026-07-08 18:34:22 +03:00
vasilito 103a6389a1 Phase 10: SFTP VFS full read-write surface — mkdir, remove, rename
SFTP backend now implements the complete Vfs trait with zero
Unsupported stubs. Three new operations:

- mkdir: creates directories via session.create_dir(). Supports
  parents=true by walking path components and creating each missing
  parent directory step-by-step via SFTP protocol calls.

- remove: deletes files and directories via session.remove_file() /
  session.remove_dir(). Supports recursive=true by listing children
  with read_dir() and removing them depth-first before the directory.

- rename: renames/moves via session.rename(oldpath, newpath).

Fixed 2 pre-existing warnings:
- Removed unused std::path::PathBuf import
- Added doc comment on SshHandlerError::KeyMismatch.host field

Updated module doc to reflect full read-write surface.
Updated README.md Phase 7 VFS status: 🚧 partial →  complete.
1433 tests passing, zero warnings with --features sftp.
2026-07-08 18:32:01 +03:00
vasilito 5c3734f884 relibc: bump (gtty ENOTTY + inet_aton hex/octal) 2026-07-08 18:30:53 +03:00
vasilito b821483694 qdisc: configure via netcfg (none/token_bucket/priority_queue) 2026-07-08 18:27:05 +03:00
vasilito 0b39aeae4c relibc: bump (vswprintf implementation) 2026-07-08 18:25:37 +03:00
vasilito f285394028 netcfg: ifaces/<name>/enabled rw (ip link set up/down) 2026-07-08 18:24:22 +03:00
vasilito 09f90babe5 netcfg: UDP listing + route count 2026-07-08 18:19:53 +03:00
vasilito 1c279278af sockets: per-TCP listing with state + endpoints 2026-07-08 18:16:17 +03:00
vasilito 688c1ef7e2 relibc: bump (wcsxfrm implementation) 2026-07-08 18:15:22 +03:00
vasilito aecf0f1911 relibc: bump (wcsftime implementation) 2026-07-08 18:14:07 +03:00
vasilito 0b9831f93d W79: MC parity — editor gutter removed, margin+char info, viewer Enter/F3
MC has no line number gutter in editor. Removed:
- Gutter rendering in editor/render.rs (body_area = inner, no gutter_area)
- relative_lines field from Editor struct (both constructors)
- ToggleRelativeLines enum variant from EditorCmd + menubar item
- Alt-N keybinding in handlers.rs + help overlay entry
- Updated 3 column-offset tests (gutter_chars was 3 chars wide)

Editor additions (MC parity):
- Right-margin indicator: vertical '│' at word_wrap_line_length (default 72)
- Character info in status bar: '0x41 065 A' format

Viewer additions (MC parity):
- Enter key bound to cursor-down
- F3 key bound to quit
- Viewer ruler removed (never existed in MC)

1433 tests passing, zero warnings.
2026-07-08 18:03:59 +03:00
vasilito 89d7a27081 relibc: bump (msync ENOSYS fix) 2026-07-08 17:59:12 +03:00
vasilito 3aa3d0f9b9 mtu: per-interface MTU configuration via netcfg 2026-07-08 17:57:30 +03:00