Changes in NetMount client version 1.7.1 -> 1.8.0
Features
-
Send updated file timestamp to server on close
Upon closing a file, the NetMount client checks whether the file's
timestamp has changed since it was opened - for example, if DOS
updated the file timestamp. If the NetMount server supports extended
features, the client sends the updated timestamp to the server.The server can then apply this timestamp, depending on its
configuration, to set the file's last-write time. -
Add support for DISK_INFO_LARGE request (up to 256 TiB)
Original DISK_INFO request is limited to 2 GiB - 32 KiB due to
16-bit total_clusters and available_clusters fields.DISK_INFO_LARGE is a newly added request in DOS network redirectors,
supported by newer DOS implementations (e.g., FreeDOS Kernel 2044 /
version 2.44, 2026). It uses 32-bit total_clusters and available_clusters,
allowing reporting of disks up to 256 TiB - 64 KiB. Original DISK_INFO
behavior remains unchanged.If the NetMount server does not support DISK_INFO_LARGE, the client
falls back to using the original DISK_INFO request.
Other
-
Add has_drive_extended_features to shared_data
Adds a bit in the shared_data structure indicating whether a
particular NetMount server supports extended features.The client ABI version has been increased to 2, with a minimum
compatible version remaining 1.The has_drive_extended_features bit field was deliberately placed
at the end of the shared_data structure to preserve the layout
of existing fields and maintain backward ABI compatibility. -
Initialize has_drive_extended_features from server responses
When a NetMount client connects to a remote share, it initially sets
the corresponding bit in has_drive_extended_features to 0. This is
the safe default, indicating that extended features are not assumed
to be supported until the client has confirmed them.As communication with the server proceeds, the server indicates in
its responses whether extended features are supported. The client
updates the has_drive_extended_features bit accordingly to reflect
the actual server capabilities.
Changes in NetMount server version 1.7.0 -> 1.8.0
Features
-
Support setting file last-write timestamp on close
Allow client to provide requested timestamp when closing a file.
Timestamp is applied only ifclient_timestampis enabled.A new shared directory option was introduced:
client_timestamp=<ENABLED>use client timestamp if present:0=OFF,1=ON(default:ON)Introduce new
DRIVE_PROTO_EXT_FEATURES_FLAGin the NetMount protocol
header. Clients set this flag to indicate that a specificCLOSE_FILE
request is extended and contains the timestamp. The server sets this
flag in theCLOSE_FILEreply whenclient_timestampis enabled. -
Improve disk info precision with smaller sector sizes
The server previously reported total and free space using fixed 32 KiB sectors.
Now it chooses the smallest sector size that is 512 bytes times a power of two
(512, 1024, 2048, etc.), capped at 32 KiB. This change allows more accurate disk
space reporting on small drives. -
Add support for DISK_INFO_LARGE request (up to 256 TiB)
Original
DISK_INFOrequest is limited to 2 GiB - 32 KiB due to
16-bit total_clusters and available_clusters fields.DISK_INFO_LARGEis a newly added request in DOS network redirectors,
supported by newer DOS implementations (e.g., FreeDOS Kernel 2044 /
version 2.44, 2026). It uses 32-bit total_clusters and available_clusters,
allowing reporting of disks up to 256 TiB - 64 KiB. OriginalDISK_INFO
behavior remains unchanged -
Add support for NETMOUNT_FEATURE_QUERY
Server now supports the
NETMOUNT_FEATURE_QUERYrequest, allowing
clients to query if a specific NetMount feature is supported.
This enables future extension of server services while preserving
existing behavior. -
Set DRIVE_PROTO_FLAG_EXTENDED_FORMAT in responses
Setting this flag in responses indicates that the server supports
NETMOUNT_FEATURE_QUERY, as well as the extendedCLOSE_FILEand
DISK_INFO_LARGEoperations.This informs clients that they can make use of the server’s
extended features.Note:
If file client timestamps are ignored (client timestamps are disabled
in the server configuration), theCLOSE_FILEreply will clear this
flag. In all other responses, the flag remain`s set
Other
-
Flush stdout after printing status table
-
Flush stderr after each log message and dump packet
-
Optimize volume label handling
Requests for volume labels are handled directly without generating
a directory list. However, if the client called find_next, the server
would still iterate over the old directory list unnecessarily, even
though it would not return any more results.Now, the unnecessary iteration is not performed.
-
Define and use DRIVE_PROTO_FLAG_CHECKSUM_USED, DRIVE_PROTO_FLAG_RO_SHARE
Defining and using these constants in the code is better than relying on magic numbers.
-
help: add missing attrs for repeated drives
-
Adjust priorities of log messages
Update the priority of several log messages. The NetMount server
supports configurable logging verbosity, and these changes make
the output more useful at different log levels. -
Improve log/exception messages and use
__func__Minor adjustments to log and exception messages, replacing
manual function name strings with the standard__func__variable.
Changes in NMManage version 1.0.0 -> 1.1.0
Features
-
Add support for ABI 2 and bump version to 1.1.0
NMManage version 1.1.0 extends the "
DRIVE <drive> INFO" command to
show whether a drive supports extended features. There are three
possible states:- "Server HAS_EXTENDED_FEATURES: YES"
- "Server HAS_EXTENDED_FEATURES: NO"
- "Client does not support extended features"
Additionally, the "
DRIVE <drive> GET HAS_EXTENDED_FEATURES" command
was added. This command reports two possible states:- "
YES" - supported by both client and server - "
NO" - not supported by client or server
Binaries
The release includes the complete NetMount source code (server, DOS client, NInstall and NMManage DOS utilities), as well as:
- 2 builds of the DOS client: for 8086 and 80286 CPUs
- 2 statically linked builds of the server for Windows: for i686 and x86_64 (cross-compiled using MinGW on Linux)
- 4 statically linked builds of the server for Linux: i686, x86_64, ARM aarch64 big endian, ARM aarch64 little endian
- the "netmount-u2a.map" file with the transliteration table
- 1 build of the DOS utility NMManage for the 8086 CPU
For transliteration of Unicode characters in filenames to ASCII, the NetMount server requires the file netmount-u2a.map, containing the transliteration table, to be placed next to the server binary.
The full path to the transliteration file can be changed using the argument "--translit-map-path=<PATH>".
To disable transliteration, set an empty path using "--translit-map-path=". If transliteration is disabled,
non-ASCII characters will be replaced with underscores (_).
Name conversion can be completely disabled for a specific share using "name_conversion=OFF".
Other utilities have not changed in this release. If needed, use builds from the older releases.