                      Samba Client Plugin for eCS (OS/2)
                      Version _VERSION_
                      Build _BUILD_
                      __________________________________

CONTENTS
________

 1. Introduction
 2. License
 3. Installation
 3.1 Netdrive
 3.2 EVFS
 4. NDPSMB.DLL usage
 4.1 Netdrive
 4.2 EVFS
 5. Debugging
 6. Changelog


1. Introduction
_______________

Samba is a SMB/CIFS protocols file and print sharing server/client suite
originally made for the UNIX world to cooperate with corresponding Windows and 
eCS (OS/2) servers or clients. eCS (OS/2) has a 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 eCS (OS/2) port of Samba client made as the plugin for

- NetDrive for eCS (OS/2) - a well known virtual file system for eCS (OS/2) or
- EVFS - the eComStation Virtual Filesystem for SMB.

eCS (OS/2) Samba client provides seamless access to SMB/CIFS file shares over 
your network using TCP/IP as the underlying transport protocol.

The eCS (OS/2) Samba client consists of one module:
   ndpsmb.dll - the NetDrive/EVFS plugin itself.
   
Releases prior to version 1.5.0 had a second module which is now deprecated:
   smbcd.exe  - the Samba client daemon, which actually processes the requests
                from ndpsmb.dll

2. License
__________

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 
eCS (OS/2) Homepage for details about downloading the source.

The NetDrive plugin is also available with full sourcecode.

So if you are using our plugin we kindly ask you to support netlabs.org.
Please refer to the Samba for eCS (OS/2) Homepage to learn how you can do
that!


Links:

Samba for eCS (OS/2) Homepage: http://samba.netlabs.org/
NetDrive Homepage: http://www.blueprintsoftwareworks.com/netdrive/
Samba Homepage: http://www.samba.org/


3. Installation
_______________

The plugin needs the klibc runtime named libc06*.dll (the innotek gcc runtime 
DLL) somewhere in your LIBPATH, if it is not there already (It comes with any
recent eComStation release).
The plugin needs the 32 bit TCP/IP stack. This stack comes with all eComStation
releases. If you have still the 16 bit stack, please search the net for the 32 bit stack.

3.1 Netdrive
____________

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 the 
following:

  - ndpsmb.dll installation :
      Run instpl.cmd from this package. It will place all files to the netdrive 
      plugin directory.
      
3.2 EVFS
________

  - ndpsmb.dll installation : 
      Put ndpsmb.dll into x:\ecs\dll (where x: is your bootdrive)


4. NDPSMB.DLL 
_____________


4.1. Usage with Netdrive
______________________

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
NetDrive.

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
                   specified.
   masterttype   - 0 if 'master' is the name of master server, 1 if 'master' is
                   the name of master workgroup.
   easupport     - 1 to support eCS (OS/2) Extended Attributes, 0 to not support it
   cache timeout - the time in seconds for which the cache is valid. If the time is
                   over the client rereads the directory again. For a directory with
                   many files it may be better to increase the timeout.
                   (rule of thumb: per 500-800 files 10 seconds). Default: 10 seconds
   cache listings- the amount of directories the cache should hold. Be aware the higher
                   the value the more memory is used. Default: 32 listings

To mount the exact server's share one need to specify both 'server' and
'share' parameters, the other parameters are optional. The root path of
server's share will be mounted to the mounting path.

If one want to access all server shares, then only the 'server', not the 'share'
parameter, should be specified,the other parameters are optional. The list of
server shares will be mounted to the mounting path.

If one want to access all servers within the workgroup, then only the 'workgroup',
not the 'server' parameter, should be specified, the other parameters 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
within the network, then only the 'master', not the 'workgroup' nor the 'server' parameter,
should be specified, the other parameters 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
workgroup[s].

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 password combination.

4.2 Usage with EVFS
___________________

eComStation comes with a GUI program named EVFSGUI which is even more feature
rich than the Netdrive GUI. Refer to the documentaion that comes with eCS.

5. Debugging
____________

To produce a logfile please add an empty file called ndpsmb.dbg into the 
root drive.

The logfile is placed to your LOGFILES env path, if available. If the 
LOGFILES environment variable is missing, the logfile is placed into the 
Netdrive directory. The logfile is called log.ndpsmb for the Netdrive part
and log.smbc for the Samba part.


6. Changelog
____________

 v1.0 beta3:
   - 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

 v1.0 beta4:
   - fixed errors on write to eCs shares
   - more fixes for wrong dates of files

 v1.0 beta5:
   - added file locking
   - added 64bit file IO (when working with NDFS 2.3+)
   - moved to 3.0.9 samba code

 v1.0 beta6:
   - 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

 v1.0 beta7:
   - moved to libc06b4.dll libc.

 v1.0 beta8:
   - moved back to libc custom build. 
   - added EA support
   - a bunch of bugs fixed

 v1.0 beta9:
   - added EA support for DosOpen which was forgotten in beta8

 v1.0 beta10:
   - caching of EA size after file find request
   - moved to libc06b5.dll libc

 v1.0 beta11:
   - moved to libc06r1.dll libc

 v1.0 beta12:
   - NdpRsrcQueryFSAllocate rewritten
   - moved to libc06.dll from GA2 release

 v1.0 beta13, the lucky one:
   - moved to libc061.dll from CSD1 release

 v1.0 beta14:
   - moved to libc custom build

 v1.0 GA:
   - changelog was not updated

 v1.5.0 alpha1:
   - smbdc.exe was implemented within ndpsmb.dll
   - a lot of other changes

 v1.5.0 beta1:
   - logging feature rewritten
   - fixed free disk space
   - added more return codes in the mount part (for evfsgui)
   
 v1.5.0 beta2:
   - update to Samba 3.0.35 client code
   
 v1.5.0 beta3:
   - update to Samba 3.0.36 client code
   - codepage fix for system running 
     non IBM-850 codepages (Ticket #100)

 v1.5.0 beta4:
   - update to Samba 3.0.37 client code
   - codepage fix for Ticket #68
   
 v1.5.0:
   - Fix memory leak in EA code
   - Ticket #111
   - Remove unused MEMLEN, LOGFILE and LOGLEVEL token
     (Compatibility warning: These tokens must also be removed from older
     *.ndc *.evp and volumes.cfg files in order to restore connections
     with the new plugin properly)
   - added logging feature for samba messages
   
 v1.5.1:
   - Fix crashes on quadcore machines
   
 v1.5.2:
   - Fix help files

 v1.5.3:
   - Fix timestamp problem

 v2.0.0 beta1:
   - added dir caching

 v2.0.0 beta2:
   - read problem of small files fixed
   - delete cache of changed files
   - SIGPIPE crash fixed

 v2.0.0 beta3:
   - changed instpl.cmd to work correct with nls
   - added the possibility to adjust cache timeout and depth via GUI
   - adjustments to helpfile and readme

 v2.0.0 beta4:
   - possible SIGPIPE crashes redone (thanks to Vitali)
   - touch did not delete the cache

 v2.1.0 alpha1:
   - moved to samba 3.3 source base
   - new merge of 2.0 code and 1.6 code

