Blue Share CIFS Client includes the Blue Real Platform Library, the Blue File Redirector and APIs, the Blue Name NetBIOS Service, CIFS Client Services, and the CIFS Client daemon.
The CIFS Client daemon is the heart of the CIFS Client service. The CIFS client is responsible for negotiating protocol parameters, authenticating session access, establishing access to remote shares, protocol handling, and maintaining file and directory contexts.
Blue Share supports two authentication models: Home and Enterprise. The Home model supports both guest and anonymous access to shares as well as server wide cleartext passwords. The Enterprise model supports NTLM v1/v2 and Active Directory/Kerberos authentication. Blue Share provides hooks for SASL and GSSAPI APIs.
The CIFS client implements implicit share mounting. This is similar to the Windows model where files can be accessed using a file UNC or URL. All protocol operations needed to gain access to the remote file are performed on behalf of the operation initiating the access. The alternative model is a mount model where remote shares are mounted and provided an access point within the file system. To accommodate a mount point relative file name, Blue Share provides four naming models:
- UNC. For example: \\user:password:domain@server\share\path\file
- URL. For example: smb://user:password:domain@server/share/path/file
- Mount Point: /mnt/share/path/file
- Drive Mapping: a:/path/file
The CIFS client supports browsing of domains, servers, and shares on all accessible networks. This enables a similar browsing experience that users have come to expect on desktop machines.
The Blue Share Client supports all the protocol required to service the rich Blue File APIs and supports overlapped non-blocking read and write I/O.
The CIFS client also supports layered services through DCE, an RPC mechanism using virtual files on IPC shares. For the client, these services include WksSvc, which allows servers to query information about CIFS clients on the network, and Browse SErvices, which allows clients to interact with browse masters and query for servers on the network.