vfs_catia — translate illegal characters in Catia filenames
vfs objects = catia
This VFS module is part of the samba(7) suite.
The Catia CAD package commonly creates filenames that
use characters that are illegal in CIFS filenames. The
vfs_catia
VFS module implements a character
mapping so that these files can be shared with CIFS clients.
This module is stackable.
The parameter "catia:mappings" specifies the mapping on a per-character basis, see below.
SERVER_HEX_CHAR specifies a 0x prefixed hexedecimal character code that, when included in a Samba server-side filename, will be mapped to CLIENT_HEX_CHAR for the CIFS client.
The same mapping occurs in the opposite direction. Multiple character mappings are separated by a comma.
Map server-side quotation-marks (") to client-side diaeresis (¨) on filenames in the [CAD] share:
[CAD]
path = /data/cad
vfs objects = catia
catia:mappings = 0x22:0xa8
Perform comprehensive mapping of common Catia filename characters:
[CAD]
path = /data/cad
vfs objects = catia
catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
Server-side filename to be translated (Note that the path delimiter "/" is not used here):
a\a:a*a?a"a<a>a|a
Resulting filename, as seen by the client:
aÿa÷a¤a¿a¨a«a»a¦a
Character mapping must work in BOTH directions (server -> client and client -> server) to get unique and existing file names!
A NOT working example:
[CAD]
path = /data/cad
vfs objects = catia
catia:mappings = 0x3a:0x5f
Here the colon ":" is mapped to the underscore "_".
Assuming a server-side filename "a:should_work", which is translated to "a_should_work" for the client.
BUT the reverse mapping from client "a_should_work" to server will result in "a:should:work" - something like "file not found" will be returned.