Files
RedBear-OS/netstack
vasilito 468ac36e97 netstack: round 18 part 2 — fix remaining 7 build errors
Closes the rest of the build-break cascade after round 18 part 1:

1. router/mod.rs:550 — IpProtocol -> u8 conversion.
   smoltcp 0.13.1 tightened the return type of
   IpProtocol::from() from u8 to IpProtocol (an enum). The PacketContext
   field is u8. Add .into() so the type matches the destination.

2. scheme/mod.rs:185 + :199 — File::from_raw_fd expects i32.
   libredox::Fd::into_raw() returns usize (defined in libredox
   lib.rs:409). The destination File::from_raw_fd takes c_int.
   Add 'as i32' at both call sites (network FD + time FD).

3. scheme/netcfg/mod.rs:173 — for-loop iteration mismatch.
   DeviceList::iter() returns Iterator<Item = &(dyn LinkDevice + 'static)>
   not Iterator<Item = (&str, &dyn LinkDevice)> as the loop assumed
   (the old tuple shape was for a HashMap-style DeviceList that
   was later refactored to Vec<Box<dyn LinkDevice>>).
   Rewrite the loop to use dev.name() per iteration.

4. scheme/tcp.rs — 3 errors:
   a) cannot find type CallerCtx. Add 'use redox_scheme::CallerCtx;'
      (matches the udp.rs pattern at line 2).
   b) cannot find type SocketCall. Add 'use libredox::protocol::SocketCall;'
      (matches the socket.rs pattern at line 13).
   c) send_slice returns Result<usize, SendError> not isize.
      The original code treated negative as error. With the Result
      variant, Err(_) means the socket may have closed or the
      buffer was full. Map Err to Ok(0) (matches the original
      'written.max(0) as usize' semantics: report 0 bytes sent
      on failure rather than erroring). Use a closure to keep
      the MSG_NOSIGNAL signal-mask dance readable.

5. scheme_pool.rs:198 — E0521 borrowed data escapes.
   Tighten submit signature to 'name: &'static str'. All callers
   (run_corec12_main_loop, tests) already pass string literals
   which are 'static, so no caller updates are required.

Build should now compile netstack. Remaining items after this
commit: only warnings (37 total) — unused imports/variables
tracked for a future cleanup commit.
2026-07-28 06:54:58 +09:00
..