OS/2 SAMBA client
4. SMBCD.EXE usage
5. NDPSMB.DLL usage
SAMBA is a SMB/CIFS protocols file and print sharing server/client set originaly
made for UNIX world to cooperate with corresponding Windows and OS/2 servers or
clients. OS/2 has native implementation of SMB/CIFS server/client set - IBM LAN
Manager and IBM Peer. These products haven't been updated for a long time and
have some compatibility problems with modern Windows SMB/CIFS implementations.
This package is the OS/2 port of SAMBA 3.0.27a client made as the plugin to
NetDrive - a well known virtual file system for OS/2. OS/2 SAMBA client provides
seamless access to SMB/CIFS file shares over your network using TCP/IP as the
underlying transport protocol.
The OS/2 SAMBA client consists of two modules:
ndpsmb.dll - the NetDrive plugin itself.
smbcd.exe - the SAMBA client daemon, which actually processes the requests
SAMBA is freely available under the GNU General Public License. You can get
the full sourcecode from our SVN repository, please refer to the SAMBA for OS/2
and eCS Homepage for details about downloading the source.
The NetDrive plugin is also available with full sourcecode.
If you are using our plugin we kindly ask you to support netlabs.org.
Please refer to the SAMBA for OS/2 and eCS Homepage to learn how you can do
SAMBA for OS/2 and eCS Homepage: http://svn.netlabs.org/samba
NetDrive Homepage: http://www.blueprintsoftwareworks.com/netdrive/
SAMBA Homepage: http://www.samba.org/
You must have NetDrive 2.2.1 or newer installed prior to installation of this
package. If you want to use 64bit file API, you should install 2.3 or newer
version of NetDrive. The installation is semi-automatic and consists of two
- libc installation :
Put libc063.dll available from ftp://ftp.netlabs.org/pub/gcc/libc-0.6.3-csd3.zip (the kLibc gcc runtime dll) somewhere in your LIBPATH, if it is not here already.
- ndpsmb.dll and smbcd.exe installation :
Run instpl.cmd from this package. The installer will place smbcd.exe in
the Netdrive home directory. When you will connect to CIFS share using the
ndpsmb plugin, it will start the smbcd.exe automatically from this
directory. However, you can start it manually, if you want.
4. SMBCD.EXE Usage
SMBCD.EXE has the following parameters:
-d <debuglevel> (or --debug <debuglevel>) - debug level of output from 0 to 9.
The more debug level provides more debugging output from SMBCD.EXE which may
be used to solve the problems.
-l <logfile> (or --logfile <logfile>) - the filename to write the debug info
from smbcd.exe. Default is to print all debug info to STDOUT stream.
-q (or --quiet) - tells smbcd.exe to be absolutely quiet.
5. NDPSMB.DLL Usage
NetDrive SAMBA plugin is used according to general NetDrive usage rules. Read
the NetDrive documentation for more information. The SMB/CIFS resources could
be mounted either using command line nd.exe utility or WPS ndpm.exe utility of
The NetDrive SAMBA plugin parameters are:
workgroup - the name of workgroup to connect to.
server - the name of server to connect to.
share - the name of server resource (share) to connect to.
user - the name of user to login under.
password - the password of selected user.
master - the name of 'master' server or workgroup, used to get the list
of workgroups when the concrete workgroup and server not
masterttype - 0 if 'master' is the name of master server, 1 if 'master' is
the name of master workgroup.
memlen - the size of shared memory buffer allocated for every connection
to SBM/CIFS resources in size of 64k blocks. The higher values
could provide better access speed, but consume more memory.
logfile - file to log records from smbcd.exe. Used only in smbcd.exe
is run by ndpsmb.dll plugin, not manually
loglevel - level of logging (0-9) for smbcd.exe. Used only in smbcd.exe
is run by ndpsmb.dll plugin, not manually
easupport - 1 to support OS/2 Extended Attributes, 0 to not support it
To mount the a exact server's share one need to specify both 'server' and
'share' parametres, the other parametres are optional. The root path of
server's share will be mounted to the mounting path.
If one want to access all servers shares, the only the 'server', not the 'share'
parameter, should be specified,the other parametres are optional. The list of
server's shares will be mounted to the mounting path.
If one want to access all servers within the workgroup, the only the 'workgroup',
not the 'server' parameter, should be specified, the other parametres are
optional. The list of servers within the specified workgroup will be mounted to
the mounting path.
If one want to access all available workgroups within one master browser
in network, the only the 'master', not the 'workgroup' or 'server' parameter,
should be specified, the other parametres are optional. The list of workgroups
will be mounted to the mounting path. The 'master' workgroup can be any known
workgroup in the net. The 'master' server should be the master browser for
By default the 'guest' user with blank password is used to access selected
resources. If you get access denied (5) errors, try to specify another user and
- changelog created
- fixed a bug with several network interfaces on one system
- fixed a bug with broken cmd.exe builtin commands
- fixed a bug with wrong dates of new and modified files
- fixed a bunch of other bugs which are too small to remember ;)
- smbcd.exe compiled against old tcp/ip stack interface
- fixed errors on write to eCs shares
- more fixes for wrong dates of files
- added file locking
- added 64bit file IO (when working with NDFS 2.3+)
- moved to 3.0.9 samba code
- fixed set attribute bug introduced in beta 5
- implemented setnewfilesize function. It may work not on all CIFS servers.
- added automatic smbcd.exe starting if not started when connecting to CIFS share
- added 'logfile' and 'loglevel' options to ndpsmb
- moved to libc06b4.dll libc.
- moved back to libc custom build.
- added EA support
- a bunch of bugs fixed
- added EA support for DosOpen which was forgotten in beta8
- caching of EA size after file find request
- moved to libc06b5.dll libc
- moved to libc06r1.dll libc
- NdpRsrcQueryFSAllocate rewritten
- moved to libc06.dll from GA2 release
beta13, the lucky one:
- moved to libc061.dll from CSD1 release
- moved to libc custom build
- moved to 3.0.25rc3 samba code
- moved to GCC for compiler for ndpsmb.dll
- updated libc custom build
- moved to 3.0.25a samba code
- moved to libc063.dll from CSD3 release
- timezone fixes from Yuri
- Updated to 3.0.25b source code
- DBCS fixes (Fixes ticket #20)
- Minor changes to error return codes (Fixes ticket #21)
- removed dependency on ldap.dll
- don't log to smblog unless environment variable NDPSMB_DEBUG is set. Note this statement must be set before ndpsmb.dll is loaded.
- attempt to fix ticket #16 (file create/access times wrong)
- another DBCS change (Thanks KO Myung-Hun!)
- Fix some EA problems
- Fix BUFFER OVERFLOW problem with WinXP Server (Thanks Vitali!)
- Update to Samba 3.0.25c level code
- mask password field with ** in ndpsmb (Thanks Vitali)
- Fix serious problem with cli structure (Thanks Vitali)
- Ticket 32 fixed - Resources do not automatically reconnect if smbcd closes (Thanks Vitali & Yuri)
- Ticket 33 fixed - smbcd crash when SMB_DISCONNECT is issued (Thanks Yuri)
- Update source to 3.0.27a
- Support kerberos authentication for Windows 2003 AD servers - requires working kinit to login
ndpsmb-3.0.28-2008-01-04 (not publically released)
- Modify plugin/smbcd to always try kerberos authentication if the kerberos libraries have been used - fallback is to use the user/password supplied
- Kerberos enabled version is only available on request - will be included in future version of eCS
- Do not print password details in logs, nor store them in plaintext in the ini files (Fixes ticket 50)
- Restart smbcd.exe if it crashes - (Fixes ticket 52)