All checks were successful
Source release / source-package (push) Successful in 46s
Update TODO.md after the recently enabled synchronization and extended volume information endpoints. The file/logical-record/physical-record synchronization entries no longer need to list NCP 0x04, 0x0c, and 0x1f as disabled or dummy endpoints. Keep the remaining work focused on requester/NWTESTS coverage plus timeout and error-code verification for set-oriented locking calls. Also track follow-up work for fields that are currently returned as zero by Get Extended Volume Information because MARS-NWE does not yet model them. The endpoint now returns the documented NWVolExtendedInfo reply, but NetWare- specific counters such as suballocation, deleted-file/limbo, compression, migration, EA, Directory Services, and timestamp fields should only be filled once reliable backing filesystem or MARS-NWE metadata is available. This is documentation-only and does not change NCP behavior.
6.6 KiB
6.6 KiB
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 Privilegesis 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/200as 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 Objectis implemented server-side.- Existing DOS and Linux tools do not reliably trigger it for all useful set properties such as
GROUP_MEMBERSandGROUPS_I'M_IN.
Follow-up:
- Add a small direct test utility to
mars-dosutils/NWTESTSthat sendsNCP 17/4Cdirectly. - Suggested test cases:
TESTGRP1type0x0002, propertyGROUP_MEMBERSTESTGRP2type0x0002, propertyGROUP_MEMBERSMARIOtype0x0001, propertyGROUPS_I'M_INNOPASSUSERtype0x0001, propertyGROUPS_I'M_INGUESTtype0x0001, propertyGROUPS_I'M_IN
NCP endpoint SDK documentation / stub audit
Current status:
- Several legacy NCP endpoints in
src/nwconn.care implemented only as disabled stubs, explicit0xfbunsupported replies, or success/no-op dummies. - The known candidates now have inline SDK-context comments so future work can start from the documented wire semantics instead of from guesswork.
Follow-up:
- Implement or deliberately reject the following endpoints after client evidence
or direct protocol tests:
NCP 0x16/0x18 Restore Directory Handle: verify the exact SDK request/reply layout, then implement the documented function 22 / subfunction 24 directory-handle semantics.
- Keep SDK details close to the corresponding endpoint in
nwconn.c, and keep broader prioritization/status here inTODO.md.
NCP endpoint audit tracking
Current status:
src/nwconn.ccontains a mix of implemented, forwarded, partial, dummy, and intentionally unsupported NCP endpoints.- Endpoint comments should be aligned with the Novell SDK Web documentation,
SDK headers, the Rust
nwserverimplementation,lwared, and the existing mars_nwe admin/Pascal code where those sources cover the same call.
Follow-up:
- Keep inline
TODO:comments only where endpoint behavior is incomplete, approximate, intentionally dummy/no-op, or still needs SDK layout verification. - Mirror every real incomplete endpoint in this file so follow-up work remains visible outside the source code.
- Do not treat every
return(-1)innwconn.cas incomplete: many of those paths intentionally forward bindery/global-server work tonwbind.
NCP synchronization endpoint audit
Current status:
- The old NCP synchronization endpoint family in
src/nwconn.cis now annotated with Novell SDK endpoint names. - The existing source already marked this area as not well tested, so the comments intentionally keep that compatibility warning visible.
NCP 0x03,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x1a, and0x1ehave local implementations.
Follow-up:
- Verify the implemented file/logical-record/physical-record calls against the Novell SDK request/reply layouts and a real DOS requester or direct test caller.
- Continue direct requester or NWTESTS coverage for the file, logical-record, and physical-record synchronization calls that are now wired.
- Verify timeout and error-code behavior for set-oriented locking calls against a real requester, especially where MARS-NWE currently relies on the existing underlying share implementation.
Extended volume information field mapping
Current status:
NCP 0x16/0x33 Get Extended Volume Informationreturns the documentedNWVolExtendedInforeply and fills the core fields that can be derived from generic Unix filesystem statistics.- NetWare-specific fields that MARS-NWE does not currently model are returned as zero for now instead of guessed values.
Follow-up:
- Fill additional
NWVolExtendedInfofields when reliable data is available from the backing filesystem or from MARS-NWE metadata. - Candidate fields include suballocation, deleted-file/limbo accounting, compression counters, migration counters, EA counters, Directory Services object id, and last-modified timestamp data.
- Treat compression-related fields as real follow-up work rather than permanent zeroes; populate them only when the backing filesystem exposes trustworthy compressed-file or compressed-block accounting.
Printing / Queue backend
Q_UNIX_PRINT backend status
Current status:
- Queue metadata handling and the
Q_UNIX_PRINTbackend 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
- Basic Packet Burst file transfer support is implemented and verified with a diagnostics-enabled DOS client test.
- Packet Burst support is built by default, but runtime use remains controlled
by
nwserv.conf. - Packet Burst/NDS fragmentation support remains out of scope unless a concrete client requires it.