# TODO This file collects follow-up work that is known but intentionally not part of the current patches. It is meant for project-level items that are too broad or too low-priority to keep as inline source TODO comments. ## Server / NCP compatibility ### Console privilege model Current status: - `NCP 23/200 Check Console Privileges` is implemented as a protocol-compatible status check. - For now, console privileges are mapped to the existing supervisor-equivalence state computed for the connection. - Callers with supervisor equivalence get success; other callers get `0xc6` (`No Console Rights`). Follow-up: - Add a real console-operator privilege model instead of treating console rights as identical to supervisor equivalence. - Decide where the console privilege map should live: - a bindery property, - a server configuration option, - or a small explicit internal list similar to queue operator handling. - Check how NetWare 3.x tools such as `PCONSOLE`, `SYSCON`, and console utilities expect console operators to be represented. - Keep `NCP 23/200` as a completion-code-only endpoint; only the privilege source should change. ### Queue spool path case handling Current status: - Queue job paths can still be rebuilt from DOS/bindery path spelling such as `SYS:SYSTEM/EPSON.QDR`. - On a case-sensitive Unix filesystem this can differ from the existing directory, for example `system/epson.qdr`. Follow-up: - Resolve queue job file paths case-insensitively in the queue connection/path resolver, or use the queue object's already-resolved Unix spool directory instead of rebuilding it from the DOS path. - Avoid creating duplicate directories that differ only by case. ### NCP 17/4C test coverage Current status: - `NCP 17/4C List Relations of an Object` is implemented server-side. - Existing DOS and Linux tools do not reliably trigger it for all useful set properties such as `GROUP_MEMBERS` and `GROUPS_I'M_IN`. Follow-up: - Add a small direct test utility to `mars-dosutils` / `NWTESTS` that sends `NCP 17/4C` directly. - Suggested test cases: - `TESTGRP1` type `0x0002`, property `GROUP_MEMBERS` - `TESTGRP2` type `0x0002`, property `GROUP_MEMBERS` - `MARIO` type `0x0001`, property `GROUPS_I'M_IN` - `NOPASSUSER` type `0x0001`, property `GROUPS_I'M_IN` - `GUEST` type `0x0001`, property `GROUPS_I'M_IN` ## Printing / Queue backend ### Q_UNIX_PRINT backend status Current status: - Queue metadata handling and the `Q_UNIX_PRINT` backend are intentionally separate. - The backend can already call `/usr/bin/lp`, `lpr`, or a custom script. Follow-up: - Improve logging around queue job submission to the Unix print command. - Capture and expose backend exit status where possible. - Consider direct CUPS integration only if MARS_NWE needs CUPS job IDs, cancellation, or status polling. Do not add a hard CUPS dependency for basic queue compatibility. ## Deferred / optional protocol work - Packet Burst support is still optional and currently not a priority for DOS tool compatibility. - NDS fragger support remains out of scope unless a concrete client requires it.