Finish the ncpcall.asm/ncpcall.h to ncp.asm/ncp.h rename.
Update the Open Watcom build, object names, include directives, header guard,
README references and file-level dependency comments to use the shorter ncp
naming. The split remains the same: ncp.asm/ncp.h provide the low-level INT 21h
and Client32 requester entry points, ncpcall.c contains requester transport
helpers, and ncpapi.c contains the ncpXX_YY_* protocol API wrappers.
No behavior change.
Split the Open Watcom assembly glue into separate IPX and NCP requester
modules.
Keep the IPX socket and far-memory helper entry points in ipx.asm and move the
INT 21h Net_Call plus Client32 requester entry points into ncpcall.asm. Split
the former kern.h declarations accordingly into ipx.h and ncpcall.h, and update
net.h and the Open Watcom build to use the new headers and object files.
This matches the current source layout where ncpcall.c owns the low-level NCP
transport helpers and ncpapi.c owns the ncpXX_YY_* protocol API wrappers.
No behavior change.
Finish the c32ncp.c/c32ncp.h to ncpapi.c/ncpapi.h rename.
Update the build files, include directives, dependency tracking, header guard,
README references and file-level comments to use the new ncpapi naming. This
matches the current split where ncpapi contains the ncpXX_YY_* protocol API
wrappers and ncpcall contains the lower-level requester/transport helpers.
No behavior change.
Update the DOS utilities and test suite with the current Novell comparison
state.
Validated/updated tool behavior:
- improve CREATOR output by showing Novell-style attribute and rights masks
- extend FLAGDIR handling with old NCP22 directory attribute read/write
fallback paths
- expand NDIR Novell-style formatting, filtering, /SUB handling, date output,
DI/RI attribute display and richer metadata collection
- adjust REVOKE output/grammar, recursive /SUBDIRECTORIES behavior and trustee
update/delete paths to better match Novell tools
- adjust SLIST header/output behavior for logged-in and logged-out cases
- update README status to reflect the currently green/tested tools
Test-suite changes:
- add/refresh Novell comparison tests for CREATOR, NDIR, REVOKE and SLIST
- update NCOPY tests and collection scripts for the current investigation state
- refresh per-tool README files and top-level test documentation
- keep MAP documented as still separately open
NCOPY:
- add the current NCOPY implementation and experimental NCP74/server-side-copy
scaffolding
- build ncopy.c so it stays compile-tested
- keep NCOPY disabled in the NET multicall dispatch for now because the
server-side-copy/open-handle path is still unsafe and needs further analysis
Build:
- include ncopy.c in the DOS utility build
- drop the temporary MARS_DOSUTILS_VERSION define wiring from CMake
Move FLAG, GRANT and REMOVE closer to the request paths used by the
Novell tools and extend the DOS comparison tests.
FLAG now reads attributes through the old NCP22 directory scan path and
writes them through NCP22/25 Set Directory/File Information. This keeps
extended attributes such as Delete Inhibit and Rename Inhibit intact and
matches the Novell behavior observed in the server logs.
GRANT now prefers NCP22/27 SetTrustee with an NCP87 fallback. Supervisor
rights are expanded like Novell does, so granting S sends and reports the
full SRWCEMFA mask. The visible output, path formatting and error text
are adjusted to match the Novell baseline.
REMOVE now prefers NCP22/2B DelTrustee with an NCP87 fallback. The
DelTrustee request layout is corrected, /SUBDIRS handling is aligned
with Novell, and the output/error text is matched to the baseline.
The FLAG, FLAGDIR, GRANT and REMOVE tests now compare NPUBLIC baselines
against the PUBLIC implementations and add delayed NOPASSUSER readback
checks using DLYSTRT and the maintainer LOGIN password option.
Add maintainer-only support used by the automated DOS compatibility
tests.
This introduces the MAINTAINER_BUILD option for the DOS tools. In
maintainer builds, LOGIN accepts the hidden /PWD: and /PASSWORD:
arguments for automated test relogin, and the DLYSTRT helper is built to
delay-start DOS batch files after the invoking batch has returned to the
prompt.
Add the WHOAMI utility and wire it into the NET command dispatch. Also
adjust SLIST and RIGHTS output to match Novell behavior more closely,
including server-not-found handling, path formatting, Supervisor rights,
missing-path errors and usage text.
Extend the test scripts to compare NPUBLIC Novell baselines against the
PUBLIC implementations. LOGIN/LOGOUT can now run automatically via
DLYSTRT and the maintainer LOGIN password option. RIGHTS gains an
additional NOPASSUSER effective-rights matrix that covers single rights,
mixed rights, Supervisor rights, ALL/N and file trustee cases.
Normal builds remain free of maintainer-only helpers and hidden password
handling.
Add the CREATOR utility and wire it into the DOS tools build and NET
command dispatch.
Extend the client-side NCP helpers with the calls needed by the new and
updated tools, including DOS namespace information and effective-rights
queries. Also update MAP handling for automatic drive mappings used by
the login script.
This commit contains the tool/source support only. The DOS baseline test
suite is kept separate and will be added in a follow-up commit.
Add an initial Novell-style NDIR implementation for the DOS utilities.
The new tool supports basic DOS namespace directory listings using
_dos_findfirst/_dos_findnext, including wildcard paths, current-directory
listing, files-only and directories-only modes, recursive /SUB listings,
continuous output and Novell-style help text.
NDIR separates file and directory output into Novell-like sections,
prints long NetWare-style attribute brackets, and reports both file bytes
and allocated bytes in blocks using a simple per-file 4 KiB block
approximation for the initial implementation.
Add initial /RIGHTS support. The rights format displays rights columns
for files and directories, obtains effective rights through Client32
NCP87, and falls back to the older directory-handle effective-rights path
when needed. For now the inherited-rights column uses the effective
rights value until a separate inherited-rights mask is available.
Add initial /DATES support with a Novell-style date column layout showing
Last Updated, Last Archived, Accessed and Created/Copied fields. The
initial implementation uses the DOS findfirst update timestamp for the
available date values and placeholder archive/access values until full
NetWare namespace date fields are exposed.
Add /SHORT and /BRIEF as compact output modes for recursive listings and
manual testing. These modes keep the useful values while suppressing the
large Novell-style section headers and empty recursive sections.
Wire NDIR into the multicall dispatcher, CMake build and install list,
and document the supported command forms in the README.
Owner display, true inherited-right masks, full namespace date fields,
sorting and restrictions remain future work.
Implement REVOKE and REMOVE for the Client32 DOS utilities.
REVOKE now supports Novell-style syntax:
REVOKE rightslist* [FOR path] FROM [USER|GROUP] name [options]
and removes rights from explicit trustee assignments. It scans the
trustee list first, updates the trustee rights mask, and deletes the
trustee entry when no rights remain.
REMOVE now supports Novell-style syntax:
REMOVE [USER | GROUP] name [FROM path] [option]
and deletes explicit trustee assignments for users or groups.
Both tools support USER/GROUP lookup, /FILES, /SUBDIRS,
/SUBDIRECTORIES, wildcard file targets, recursive directory handling,
Novell-style help text and summary output. Missing trustee entries are
reported with Novell-style "No trustee for the specified ..." messages.
Add shared trustee helpers and Client32 NCP87 trustee scan/delete
support. Also adjust GRANT ALL so it matches Novell behavior by not
granting Supervisor implicitly; Supervisor must be granted explicitly.
- add GRANT as a new multi-call DOS utility
- implement Client32 NCP87 trustee-add helper
- resolve USER and GROUP bindery objects before granting rights
- support Novell-style rights lists, including ALL and N
- support directory trustee grants
- support file trustee grants via /FILES
- implement recursive grants via /SUBDIRECTORIES
- accept /SUBDIRS as a compatibility alias
- format GRANT success output close to Novell GRANT
- add GRANT comparison scripts for normal and recursive test cases
- add RIGHTS as a new multi-call DOS utility
- implement Client32 NCP87 effective-rights query helper
- map NCP effective-rights bits to Novell RIGHTS display order
- keep legacy directory-handle based rights lookup as fallback
- match Novell RIGHTS output for directories and files more closely
- remove hardcoded MARS/SYS and SYS display fallbacks from RIGHTS/FLAGDIR
- derive display prefixes from the active network drive where available
- adjust FLAGDIR output formatting to match Novell field alignment
- keep FLAG and SLIST unchanged after checking for hardcoded prefixes
Keep the previous DOS utility binary as netold.exe and use it as the
default source for legacy command names. Install the new net.exe only for
tools that are not available in the legacy binary, currently SLIST, FLAG
and FLAGDIR.
Add CMake selection logic so maintainers can opt into installing the new
binary for all command names with MARS_NWE_INSTALL_NEW_DOSUTILS, while the
default install remains conservative for older NETX/DOSX-style setups.
Update the staged net.exe to the current Client32-enabled build and add
netold.exe as the preserved legacy binary.
Add a NetWare-style FLAGDIR implementation for directory attributes and
register it in the multi-call DOS utility dispatcher. The new command
supports the 386-style directory flags Normal, System, Hidden,
DeleteInhibit, Purge and RenameInhibit, and formats output close to the
Novell FLAGDIR tool for simple mapped paths.
Update the DOS utilities install/build metadata so flagdir.exe is emitted
alongside the other public tools. Adjust the Open Watcom CMake build to
compile C sources into the build directory instead of leaving object files
in the source tree.
Move the historical Borland/TASM build files into doc/ to keep the active
source directory focused on the modern Watcom/CMake build.
Implement a working DOS Client32 NCP87 path using the NIOS resolver,
CONNOpenByReference and COMPATNcpRequestReply.
Add an initial FLAGDIR implementation for NetWare 386-style directory
attributes. Support Normal, System, Hidden, Delete Inhibit, Purge and
Rename Inhibit, using the same Client32 NCP87 modify/read helpers. Match
the Novell FLAGDIR display style more closely for simple mapped paths.
Also add/keep minimal TESTS coverage for the verified Client32 NCP87
attribute path.