change-log   [plain text]

SUPERCEDED Change Log for Samba

Unless otherwise attributed, all changes were made by All bugs to


NOTE: From now on the cvs.log file will be used to give a complete log of
changes to samba. This change-log is now obsolete.

1.5.00	announced to mailing list

1.5.01 1/12/93
	- configuration through makefile only
	- fixed silly bug that made the client not accept dir's from 
	the server
	- tested and updated include files for ultrix, aix and solaris
	- several things fixed thanks to
	who provided invaluable help and advice.

1.5.02 1/12/93
	- added username option to services file so connection
	as non guest from lanmanager is possible
	- made server abort when it can't read/write on a socket
	- added logging to client

1.5.03 2/12/93
	- printing now works
	- fixed a minor bug to do with hidden and system attributes
1.5.04 2/12/93
	- added reduce_name() call to fill in security hole.
	- cleanup up debug stuff a little

1.5.05 2/12/93
	- fixed bug in reduce_name that affects services with base paths
	that have a soft link in them.

1.5.06 3/12/93
	- used the reserved server field in the search status to hold the 
	directory pointer. This allows lots of directories to be open
	at once by clients without stuffing things up.
	- preserved all the client reserved bytes in the search status
	in case they actually use them. Hopefully this will fix the annoying
	empty directory dir bug. (it does)
1.5.07 3/12/93
	- fixed silly bug that caused volume ids to appear twice
	- fixed a wrote-too-few bug in smb_send()

1.5.08 3/12/93
	- did the SMBsearch properly. It can now handle recursive searches.
	In order to keep the required dir info I encode the dirptr and
	the current dir offset (from telldir) into 5 bytes by using a table
	on the last 7 bits of the first byte. The first bit is always on
	as this byte must by != 0
	This is all put in the "server reserved" search field.

1.5.09 5/12/93
	- added a prototype nameserver. It's broken but can at least interpret
	incoming packets.
	- minor fixes to the server and client

1.5.10 5/12/93
	- fixed silly unsigned/signed char bug that made dosshell noot see all files
	- added nmbd to Makefile

1.5.11 6/12/93
	- made the volume label appear as the service name, rather than "Remote"
	- made the nmbd actually work (a little) for lanman for dos

1.5.12 7/12/93
	- fixed broadcasting in the nameserver
	- the smbd now correctly sets the pid and uid
	- nmbd now seems to work enough to satisfy the MS client.

1.5.13 7/12/93
	- fixed a silly bug that truncated filenames
	- added -B option to nameserver to specify bcast address
	- added -R option to nameserver to prevent name registering
	- fixed minor read() bug. Does this fix the "cmp" bug?

1.5.14 8/12/93
	- fixed a bug in send_login() in the client. Thanks to for pointing this out.
	- changed name_mangle() to pad to minimum of 32 bytes with spaces
	- changed the returned buffer size in reply_connect() to not
	count the 4 byte length field. This fixes the "can execute" bug
	and the "comp" bug
	- once again re-wrote the directory pointer handling code.
	now "tree" works correctly

1.5.15 9/12/93
	- fixed name mangle bug introduced in 1.5.14 which stopped
	nameserver from working

1.5.16 9/12/93
	- arrgh. another silly bug in name_mangle() causes the client to die.

1.5.17 13/12/93
	- some cosmetic cleanups to the code
	- changed make_connection not to lower case the password (thanks
	- fixed accept() bug not initialising in_addrlen (thanks to
	- fixed cd bug in client.c (thanks to
	- lots of fixes to the nameserver to read_socket and
	associated routines. It should now correctly reply to the originating
	address and use the correct broadcast. 
	(thanks to
	- SVR4 patches from
	- changed the default BUFFER_SIZE to 0xFFFF

1.5.18 15/12/93
	- minor fix to reply_printqueue() to zero data buffer array.
	- added print command to client.
	- fixed minor bug in cmd_put() in client where a handle could
	be closed without being previously opened.
	- minor cleanups to the client
	- minor solaris fixes from
	- SYSV, shadow password  and dfree() fixes from
	- fixed reply_delete() to not delete read-only files
	- fixed infinite loop in reply_delete on "del ." 
	Thanks to for pointing this out.
	- posix mode definitions and changes from

1.5.19 18/12/93
	- another very minor fix to dfree().
	- minor change to SVR4 makefile entry from
	- changed reply_open not to open directories, this fixes the 
	"copy .." bug pointed out by
	- changed dos_mode() so it doesn't return hidden and system info
	on directories.
	- changed get_dir_entry() not to descend into proc/self under linux
	control this with the DONT_DESCEND define in includes.h
	- changed smb_setlen() to add in the SMB id. (thanks 
	- fixed minor bug in reply_dir() so it won't return a ACCESS_DENIED
	when searching a directory that is unreadable
	- removed second stat() from get_dir_entry() (speed up)
	- made null searches close the dirptr (fixes big filesystem problem)
	- fixed clean_name for cd .. (from

1.5.20 28/12/93
	- added debug statement in case of SMBcreate with volid set (
	- fixed a bug in dptr_close() so it sets the next_key to a better 
	value, this fixes a annoying dir bug
	- LOTS of changes from (Jeremy Allison). This
	makes it possible to at least connect to a NT server with the client
	and also fixes up much of the socket/process code. This also includes
	stuff for compiling on a sun386
	- got the client working with the Syntax server (a commercial
	smb-based server). This required a few minor changes so the xmit 
	sizes were negotiated properly.
	- added support for OSF1, tested on a DEC3000/400 alpha.
	- fixed the ifconf support under ultrix

1.5.21 31/12/93
	- minor cosmetic change to reduce_name()
	- changes for HPUX from (Pasi Kaara)
	- minor fix to nameserver
	- revamped configuration file format. It now takes a Windows-style
          (.INI style) configuration file. See the file services for
          full details of the format. New files: loadparm.c, loadparm.h,
          params.c, params.h, testparm.c. Several changes to smb.h, local.h,
          server.c, Makefile. The services structure is no longer visible 
          to the rest of the system. (Karl Auer)
        - added ability to specify a print command on a per service basis
          and globally via the configuration file. Also allows guest account
          to be specified in the configuration file. Made appropriate changes
          to server.c so that these data items are obtained from the config
          module rather than from hardcoded strings (though the hardcoded
          strings are still the source of the defaults). (Karl Auer)
        - renamed old-style configuration file to services.old (Karl Auer)
        - changed README to reflect new configuration details. (Karl Auer)
        - removed an item from the bugs wishlist (now supplied!) (Karl Auer)
        - protected smb.h against multiple compilation. (Karl Auer)
        - protected local.h against multiple compilation. (Karl Auer)
	- made config stuff do dynamic allocation
	- added "homes" capability
	- added create_mask to each service in config

1.5.22 3/1/94
	- added "root dir" option for extra security
	- added -n option to client (useful for OS/2)
	- changed operation of -n to nameserver to be more useful
	- patches from Jeremy Allison (
	fixing bug in set_message(), fixing up wait3() for SYSV,
	making cd check the path in the client, allowing fetching to stdin
	in client, and enhancing prompt in client to include directory.
	- made the -D become_daemon() actually detach from the tty. This
	may need tuning for different flavors of unix.
	- added "dont descend" option to each service to prevent infinite 
	loops on recursive filesystems.
	- updated README to add "running as a daemon" and a simple
	smb.conf file.
	- HP/UX fixes from
	- made lock calls only if opened with write enabled, as pointed out

1.5.23 4/1/94
	- minor fix to logging of data in receive_smb(). It used to
	miss the last 4 bytes of packets.
	- added the pid,uid and mid fields to the negotiation phase of
	the client.
	- made client able to print from stdin
	- added password on command line for client
	- created a sample printcap input filter "smbprint"
	- several fixes to client to work with OS/2
	- added mput, mget, prompt and lcd to client

1.5.24 5/1/94
	- a resend of 1.5.23 as I managed to not include the new
	prompt, mput and mget code.

1.5.25 7/1/94
	- change -B on nameserver so it can override the broadcast address
	- minor changes to printing in client so OS/2 server can handle it.
	- fixed reply_access() where OK was not being initialised
	- added "max xmit" to global parameters.
	- changed create to open with O_RDWR instead of O_WRONLY
	- added printmode command to client
	- made help return extra help on a specified command in client
	- fixed return code in chkpath
	- added "recurse" and "lowercase" options to client
	- fixed some error codes from server
	- added -I option to client
	- fix for become_daemon() for HPUX from
	- added "hosts allow" and "hosts deny" to server
	- added keepalives to server
	- added "access" feature to testparam
	- NetBSD patches from

1.5.26 8/1/94
	- changed semantics of hosts access code to do more sensible defaults
	when either of "hosts allow" or "hosts deny" is blank
	- added the SO_KEEPALIVE option to configurations of sockets in the
	- made some of the SVAL fns into macros to keep fussy compilers from
	- fixed several null pointer bugs in check_access(). These bugs
	made 1.5.25 unuseable for many people.
	- fixed null pointer reference of lp_dontdescend()
	- reload services file after each new connection. 

1.5.27 11/1/94
	- fixed opening mode for reply_open() in server
	- patches from Jeremy Allison ( to support the 
	"core+" protocol. The patches also inclued some other features, such
	as a new read_with_timeout() call (used by SMBreadbraw), and auto 
	detection of the need to create a socket.
	- changed the default KEEPALIVE value to 0, as it caused
	problems with Lanmanager.
	- added tar capability to client when getting files
	- altered unix_mode() to return x bits for directories
	- fixed bug in trim_string()

1.5.28 12/1/94
	- cleaned up the debug levels a little so debug level 1 is a practical
	level for general use
	- fixed a bug in add_a_service() where a freed pointer was referenced. Thanks
	to for finding the bug.
	- fixed bug in time structure handling in server and client. Thanks to for pointing out the bug.

1.5.29 15/1/94
	- fixed a silly bug in reply_open(). Thanks to for pointing this out.
	- fixed debug levels in client to be more sensible
	- added raw read to client
	- added -B option to client
	- fixed several bugs in the client, mostly to do with the tar option
	- added -E option to client

1.5.30 16/1/94
	- added lots of prototypes so compilers don't complain
	- fixed minor bug in reply_rename() (thanks to
	- added more support for LANMAN1.0 protocol.
	- added SESSION SETUP AND X call
	- added READ AND X call
	- added TREE CONNECT AND X call
	- added support for setbuffer for HPUX (thanks to

1.5.31 29/1/94
        - added support for user level security in smbclient eg:
          smbclient "\\SERVER\SHARE" -U USERNAME%PASSWORD
        - added error message decode as per SMB File Sharing
          protocol extensions. (thanks to
        - added selection masks to smbclient that recurse down directory
          tree. eg: mget *.* with recurse and mask *.c on will retrieve all
          *.c files in the tree.
	- patches for FreeBSD from
	- changed reduce_name() to trim ./ from front of strings and / from 
	- fixed a nasty bug in trim_string().
	- numerous small changes to lots of stuff that I didn't
	document while I was doing them. Sorry :-(
	- slightly updated sockspy

       - The following was done by Karl Auer (
       - added processing in configuration file of a [printers] section. Allows
         connection to any printer specified in /etc/printcap (or the file
         specified in the global parameter 'printcap name').
       - added full processing of 'available' flag to configuration file. A
         service can now be 'turned off' by specifying 'available = no'. Of
         dubious utility.
       - added 'printcap =' parameter to [global] section in the configuration
         file. This allows the normal /etc/printcap to be bypassed when
         checking printer names for dynamic printer connections via [printers].
       - added 'printer name =' parameters to both the [global] section and
         services sections of the configuration file. This allows the printer
         name only to be set, without having to specify an entire print
       - added some synonyms: 'writable' and 'write ok' have the opposite sense
         to 'read only'. 'public' may be used instead of 'guest ok'. 'printer'
         may be used instead of 'printer name'. 'printable' is the same as 
         'print ok'. 'root' may be used instead of 'root dir' or 'root 
       - added lots more detail to the sample configuration file to take
         account of the above.
       - many minor fixes to internal documentation in the configuration
       - also - Man pages!

1.5.32 3/2/94
	- addition of smbd, smbclient and testparm man pages 
	  from Karl Auer
	- zombie process fix from
	- added capability to nmbd to serve names available 
	via gethostbyname().

1.5.33 3/2/94
	- fixed up getting of netmask so it works on more unix variants
	- added -N option to nmbd
	- changed GMT diff calculation. need to check it's right for
	lots of OSes
	- fixed a bug in read_and_X() and chain_reply() chaining now
	seems to work correctly

1.5.34 4/2/94
	- fixed bug in client that meant it couldn't get/put files from WfWg
	- fixed a bug in the server that caused lpr to return -1 under sunos
	- fixed a few errors in the hosts allow section of the
	smb.conf.5 manual page and added examples

1.5.35  6/2/1994
	- minor bugfix in reduce_name().
	- changed width of "size" in client during a dir
	- patches for NEXT (among other things) from
	- added -a switch to server, and made default action to append
	to log file
	- added deadtime options to [global] section for timing out
	dead connections to the smbd.
	- HPUX changes from
	- made use of unsigned char more consistent
	- changed the way of getting the default username and host in the
	- made LANMAN1 default to on in the client, off in server.
	Use -DLANMAN1=1 to make it on in both.
	- lots of casts and cleanups for various operating systems
	- changes to the Makefile from Karl to auto-instal the man pages
	- added a short history of the project to the distribution

1.5.36 15/2/94
	- fixed minor bug in Debug() (thanks to
	- fixed bug in server.c so -a wasn't accepted.
	- minor fixes to the client
	- added hosts file to name server (-H option)
	- added -G option for groups to nameserver
	- cleanups and additions from Jeremy Allison, taking us
	closer to LANMAN1.0. In particular the locking code was cleaned up

1.5.37 16/2/94
	- fixed bug introduced in 1.5.36 which disabled SMBcreate

1.5.38 18/2/94
	- fixed get_broadcast() for ultrix (fix from
	- added automatic group registration
	- fixed bug in registration code
	- made nmbd work better with WfWg, and probably others
	- updated the man pages to include the new nmbd options.
	- minor updates to the README
	- fixed double log_out() in send_packet().
	- fixed bug in smbclient so that "dir" didn't work correctly
	with pathworks
	- possibly fixed bug in server that led to "abort retry ignore" from
	pathworks client when doing a "dir".
	- changed behaviour of smbclient login slightly, to try a
	blank password in SMBtcon if the right password fails, and a
	session setup has succeeded. Some clients seem to use a blank
	one if a session setup has succeeded.
	- ISC patches from
	- the client now tries to do name registration using a unicast.
	Let me know if this helps anyone.
	- tried to add a "contributed" line to each OS in the Makefile.

1.5.39 18/2/94
	- fixed silly C code that only worked with some compilers
	- fixed another silly bug in nameserv.c that caused it to seg fault

1.5.40 21/2/94
	- removed the from (IP) message so people don't worry about,
	it's redundant anyway.
	- changed the client so the crypt key isn't printed
	- changed the structure of switch_message() to use a list of functions.
	This improves the debug info.
	- made SMBopen ignore supplied attribute as per X/Open spec
	- made SMBopen fail if file doesn't exist in all cases. Let me know
	if this breaks something. It is implied in the X/Open spec. This
	fixes the pkzip bug.
	- added dptr_demote() to replace dptr_close() to try and fix 
	pathworks dir bug. This has the potential disadvantage of
	leaving lots of open file descriptors.
	- changed mask_match to disallow two .s in a name

1.5.41 2/3/94
	- added "dfree command" global option to smbd to support an
	external "disk free" executable (typically a script). This gets 
	around the problem of getting disk free info reliably on lots
	of systems.
	- added ffirst and fclose to client
	- simple SYSVR4 patch from
	- added better uid/gid reporting for debugging purposes
	- several changes to the logon procedure for the client, so hopefully
	it will connect correctly to a wider range of servers.
	- server should no longer crash if it can't open the debug
	file (thanks to
	- added the THANKS file.

1.5.42 6/3/94
	- lots of changes from Jeremy Allison, implementing more of
	the LANMAN1.0 protocol, and fixing a few bugs.
	- fixed delete bug, so hopefully wildcards are correct now
	- pcap changes from Martin Kiff so non-aliased printers in
	/etc/printcap are recognised
	- wrote announce file ready for 1.6
	- re-wrote browse code in client (still doesn't work)
	- updates to man-pages from Karl Auer
	- made raw packet dumps mode 0600 and only if -dA is given
	- changed socket code to use utility functions in util.c

1.6.00 17/3/94
	- made server always return to original directory (rather than /)
	- fixed bug in params.c that caused a seg fault if no parms in a 
	- minor clean ups for clean compile under solaris
	- solaris fix for running from inetd from Karl Auer
	- fixes for dfree() under solaris
	- minor changes that might help BSDI
	- changes to the Makefile, manual-pages and sample config file from 
	Karl Auer
	- fixed dfree for Ultrix

1.6.01 19/3/94
	- fixed setatr bug that allowed directories to be unusable 

1.6.02 27/3/94
	- added timestamps to connection message in log
	- added idle timeout of 10 minutes to name server
	- made HAVE_SYSCONF==0 the default in includes.h
	- made the client not register by default
	- ISC patches from
	- GetWd() cache code from Martin Kiff
	- rewrote the locking code in terms of fcntl() calls.
	- fixed "can't delete directory" bug
	- added code to close old dirptrs for duplicate searches
	- removed exchange_uids() and the access() call and replaced them.

1.6.03 28/3/94
	- tried to clean up the time handling a little (local vs gmt time)
	- added debug level global to server config
	- added protocol level global to server config
	- added SMBecho command to server
	- included Karl Auers SMBGuide in the distribution.

1.6.04 31/3/94
	- fixed time zeroing bug in smb_close and smb_setatr
	- re-wrote the username/password handling to be more flexible
	- added "guest only" service setting to smb.conf
	- updated man pages for new username/password handling
	- fixed parse bug in reply_tconX
	- improved error return code from tcon
	- several changes to fix printing from WfWg

1.6.05 2/4/94
	- changed the name of the whole package to Samba
	- removed SMBexit call from client to stop exiting error message
	- added interpret_addr() call to replace inet_addr() so
	a hostname can be used whenever a IP is required

1.6.06 8/4/94
	- added random tid choice to reduce problem of clients not
	detecting a server disconnection.
	- made client not report spurious time from CORE or COREPLUS server.
	- minor HPUX fix from
	- turned off GETWD_CACHE until we track down a minor bug in it

1.6.07: 10/4/94
	- added helpful error messages to connection failure in client.
	- fixed problem with mput in client
	- changed server to allow guest-only sesssetup messages with any
	password. Control this with GUEST_SESSION_SETUP in local.h.
	- minor change to session setup handling in make_connection()
	- added check for right number of \s in the client.
	- made the server not exit on last close if the deadtime is != 0
	- added malloc and realloc wrappers. enable them with -DWRAP_MALLOC=1
	- if smbd is started with a debug level of 10 or greater it creates
	a log file ending in the process number

1.6.08: 18/4/94
	- updated the THANKS file
	- changes from (Marcel Mol) for AMPM
	times and error report on connect().
	- made the get_myname() routine discard any part after the first '.'
	- added a wrapper for free from Martin Kiff
	- added simpleminded code to handle trapdoor uid systems (untested)
	- added Martin Kiffs "paranoid" getwd code.
	- added default MAXPATHLEN if undefined of 1024
	- made get_broadcast() continue to get netmask if it can't get
	broadcast (suggestion from Hannu Martikk)
	- replaced fchmod() calls with chmod() to satisfy some unixes

1.6.09: 4/5/94
	- changed perror() calls to strerror() in server.c
	- fix for dfree on OSF1 from 
	Maximilian Errath (
	- fixed server time reporting for protocol >= LANMAN1
	- fixed TimeDiff() for machines without TIMEZONE or TIMELOCAL
	(thanks to Vesa S{rkel{ <>)
	- added SYSV defs to AIX and HPUX to fix "memory" problem
	(actually a signal problem).
	- added version to client banner in log file
	- Ultrix patches from Vesa S{rkel{ <>
	- added ! command to client for executing shell commands
	- fixed ERRnofids bug in server
	- fixed name_equal bug 
	(thanks to (Chris Kiick))
	- wrapped gethostbyname() with Get_Hostbyname() to prevent
	case sensitive problems on name lookups
	- limit printer tmp filename to 14 chars 
	(from Paul Thomas Mahoney <>)
	- added ability to understand 64 bit file times 
	(thanks to (David Boreham))
	- added Gwt_Pwnam() wrapper to cover server case-sensitivity
	problems (suggestion from (John O'Connor))
	- changed the setuid() calls to try and work for more systems
	without breaking the ones it currently works for
	- added version number to usage() 
	(suggestion from
	- added "security=" option for share or user level security
	- allowed multiple usernames in "user=" field
	- changed display method for recursive dorectory listings
	- switched client to use long filenames where supported
	- added speed reporting to client transfers
	- several NT fixes to server from (Jeremy Allison)
	- ISC fixes from (Paul Mahoney)
	- fix to README from (Michael A. Griffith)
	- default netmask and broadcast from  Ian A Young <>   
	- changed default of is_locked() on fcntl() error.
	- fixed bug in read_with_timeout() that could cause a runaway 
	smbd process.
	- fixed findnext bug for long filenames in client
	- changed default protocol level to LANMAN1
	- change default reported security level to SHARE.
	- changed password_ok() so that if pwdauth() fails it tries
	with standard crypt.
	- added "translate" command to the client to do CR/LF translation
	for printing, and add a form feed at the end. 
	(thanks to (Mark A. Horstman ) )
	- added "locking=yes/no" toggle for each service
	- SCO unix patches from Heinz Mauelshagen (

1.6.10: 7/5/94
	- fixed important bug in readbraw/writebraw
	- added -A option to client
	- fixed delete bug on long filenames (untested). Thanks to
	Stefan Wessels <>
	- neatened up the byte swapping code

1.6.11: 3/6/94
	- fixed bug in client in receive_trans2_response() that caused
	some strange behaviour with LANMAN2.
	- fixed some offset/alignment problems with lockingX (thanks to 
	Jeremy Allison)
	- allow locking on O_RDONLY files. Thanks to Martin N Dey <>
	- fixed del bug in client thanks to (Paul van der Zwan)
	- fixed multiple user= bug thanks to MDGrosen@spectron.COM (Mark Grosen)
	- added translate ability for all files. Thanks to (Mark A. Horstman )
	- mask out negative lock offsets. Thanks to (Barry G Merrick)
	- more attempts to get the structure alignment better for some machines
	- cleaned up the machine dependencies a little
	- ISC fixes from Paul Thomas Mahoney <>
	- enabled printing with a SMBclose and SMBwrite for NT 
	thanks to jkf@frisky.Franz.COM (Sean Foderaro)
	- SGI changes from Michael Chua <>
	- CLIX patches from
	- NEXT2 and NEXT3_0 patches from Brad Greer (
	- BSDI changes from (Tom Haapanen)
	- SCO patches from John Owens (
	- fix psz bug in pcap.c (thanks to Karl Auer)
	- added widelinks option (global and per service). Suggestion from
	Karl Auer. Defaults to True.
	- made locking able to be global or local (default is give by global)
	- added check_name() to dir listings
	- added "packet size" option to globals. default to 32767. This
	"fixes" a WfWg bug (thanks to Karl Auer)
	- fixes for getattrE and setattrE and minor fix in util.c from Jeremy Allison.
	- Karl updated the man pages o be current
	- disabled writebraw and readbraw until a possible bug can be investigated further

1.7.00: 14/7/94
	- added session_users list, to overcome problem of missing usernames in SMBTconX.
	- added term support to the client
	- added "default service"
	- fork for print so user is not root
	- added name mangling to 8.3 (rudimentary)
	- fixed bug in in_group()
	- changed to use gid in place of egid
	- fixed client connection to OS/2 (1.3 + lanman2.2) and long filenames
	- added patches from (Marc Cochran)
	  these implement scope ids and fix some udp bugs. It means
	  the -L option to nmbd now works.
	- made nmbd respond to incoming port rather than only 137
	- made wide links refuse .. components
	- fixed "dir foo." bug to stop it showing "foo.???"
	- improved name mangling (added stack)
	- added valid FNUM check to most calls
	- fixed important do_put bug in the client
	- added magic scripts to the server
	- re-enabled getwd_cache code
	- added optional agressive password checking
	- removed dptr_closepath from SMBsearch to try and stop "dos for loop"
	- DGUX patches from (ross andrus)
	- updated the README and THANKS file.
	- added node status request to -L option of nmbd
	- stripped trailing spaces in mask_match() (thanks to mike hench
	- added COREPLUS style print queue reporting and "lpq command"
	  in globals.
	- cleaned up date handling and fixed byte order dependancy on dates
	in SMBgetattrE.
	- cleaned up the password handling and added "password level" with
	the possability of checking all case combinations up to N upper
	case chars.
	- changed to use recvfrom only on udp ports (fixed read raw!)
	- added TCB password support for SCO (thanks to
	- updated README, THANKS and announce files.
	- fixed timezone reporting to be signed (thanks to
	- disabled max packet as it could cause problems with WfWg (no longer 
	needed now readraw is "fixed")
	- changed from creat() to open() in mktemp and mknew.
	- changed umask handling
	- sped up nmbd by making it cache names
	- changed idle timeout on nmbd to 2 mins
	- Netbsd changes from
	- released alpha2
	- added name timeout to nmbd
	- changed bind port retry in nmbd
	- added Limitations sections to README
	- fixed two . in is_83()
	- fixed compilations warnings in util.c (thanks to
	- made [homes] honour multiple user list 
	- fixed mask match bug introduced in alpha1
	- added "mangled stack" option for stack size
	- added mangled stack promotion
	- released alpha3
	- netbsd-1.0 fix for statfs().
	- added null_string to util.c to reduce memory usage
	- changed the way directory structures are put together
	- added smbrun for system() requests
	- changed maxmux to 0 in hope of avoiding mpx commands problem
	- fixed zero response length for session keepalives
	- removed called name from session users list
	- added F_RDLCK support to try and handle locks on readonly files
	- made directory creation honour the lowercase flag in client (thanks 
	- made checksum for mangling independant of extension if extension is 
	- added ability to rename files with different extension, preserving 
	root name
	- released alpha4
	- better command line error checking in client
	- changed all debug statements to new format
	- fixed delete error code reporting
	- released alpha5
	- added mangled name support to wildcard delete in server
	- fixed mask bug in SMBsearch
	- cleaned up prototypes
	- released alpha6
	- fixed important bug in session_setup which made WfWg freeze 
	(maxmux was 0 - this bug was introduced in alpha4)
	- released alpha7
	- two printing bug fixes thanks to (Barry G Merrick)
	- uid fix to smbrun (thanks to
	- man page updates from Karl Auer
	- FAQ file from Karl Auer
	- released alpha8
	- fixed read-only flag in dos_mode() for non writeable services
	- fixed error code reporting in open() and openX().
	- minor secureware fix from (thanks to
	- released alpha9
	- casting cleanups for memcpy().
	- cleaned up error code names to be more consistant

1.7.01: 17/7/94
	- minor man page fix from (Scott Baeder)
	- changed usage() error message in client
	- made nmbd not exit if can't register own name
	- made nmbd only register if running as a daemon
	- fixed stdout problem in smbrun by closing stdin/stdout/stderr
	- minor fix to lmhosts parsing

1.7.02: 20/7/94
	- made nmbd not call get_broadcast if both -B and -N are used (thanks 
	to Chris Woodrow <>)
	- disabled GETWD_CACHE again
	- fixed INCLUDES list in Makefile to add version.h (thanks to 
	jimw@PE-Nelson.COM (Jim Watt))
	- made checkname do a become user if it hasn't already done so.
	- added consistancy check to become_user().
	- removed mask extension expansion from SMBsearch
	- small change to chkpth
	- fix to snum select for lpq status (thanks to Rafi Sadowsky
	- changed daemon to is_daemon for NetBSD (thanks to
	- removed STAFS3 stuff for NETBSD_1_0

1.7.03: 29/7/94
	- updated docs for new distribution structure
	- made getatr return 0 size for directories (thanks to Bernd Esser
	- added valid dos filename checks from Stefan Wessels 
	- added trimming of . in hostnames to -S mode of nmbd
	- removed become_user() and OPEN_CNUM calls. Now make them 
	in switch_message instead which simplifies a lot of code.
	- added GETFNUM macro to make chain_fnum more consistant and
	- added flags to protocol structures to simplify CAN_WRITE and AS_USER
	- added getwd cache boolean option to globals
	- added fclose() to lpq status routine thanks to (David Baldwin)
	- added "only user" option, to limit connection usernames to those 
	in the user= line
	- changed to badpath from badfile in chkpath despite specs (following 
	what WfWg does). This fixes "file not found" error in copy command.
	Thanks to for pointing out the bug
	- changes for apollo from Stephen C. Steel <>
	- more changes for Apollo from (John Mills)
	- released alpha release
	- added FTRUNCATE_CAN_EXTEND=0 as default to fix problem with word6.
	Possibly not needed on many OSes? Thanks to Charlie Hussey
	- started adding max connections code
	- much improved group handling contributed by 
	Ian Heath (

1.7.04: 29/7/94
	- fixed one line bug in SMBopenX that got error code wrong.

1.7.05: 2/8/94
	- added UNIXERROR() macro to get error code from unix errno.
	- fixed lpq status for MSTCPB3
	- added @ option for user= line to lookup groups in group file
	- added become_user optimisation and process timeout (thanks to
	Jeanette Pauline Middelink (
	- added malloc optimisation in readbraw
	- released alpha
	- patches for OSF1 enhanced security from Udo Linauer <>
	- made level 2 a more useful debug level (less guff)
	- added "max connections" and "lock dir" options to allow
	limiting of the number of connections to a service at one time.
	- released alpha2
	- updated man pages
	- released alpha3
	- added read prediction code for better read performance
	- released alpha4
	- minor tuning to receive_smb()
	- changed the order of mangled stack checking
	- bug fix in read_predict().
	- released alpha5
	- minor search optimisation
	- fixed keep alive bug in writebraw and in readbraw in the client
	- released alpha6
	- disabled writeraw by default pending a bug fix
	- added profiling code (off by default)
	- minor delete tuning

1.7.06: 4/8/94
	- OSF1 crypt fix thanks to Udo Linauer <>
	- ifdef'd EDQUOT in case you don't have it (thanks to Paul Blackman <>)
	- tidied up UNIXERROR stuff to work on more systems.
	- made Makefile more sophisticated and added "make revert"

1.7.07: 4/8/94
	- fixed one line fatal bug in receive_smb. Thanks to

1.7.08: 2/9/94
	- initgroups call for SCO from
	- code cleanups from (Simon Casady)
	- use full pathname in print command construction
	- ISC includes fix from Martin Tomes <>
	- added GID_TYPE define to cope with ultrix. Thanks to
	- added umask call to main in server
	- fixed several minor problems with the max connections
	code. Thanks to (Arno Lehmann).
	- fixed filetime in writeclose. Thanks to Andreas Bahrdt
	- df fix for large disks from Andreas Bahrdt
	- getpwanam support from
	- clean name change from Bernd Esser
	- released alpha1
	- more locking changes to fix Excel problem
	- released alpha3
	- another minor locking change
	- smarter masking in the locking code. Excel now apparently works.
	- minor FAQ updates
	- changed max connections refusal error to access denied.
	- added queue command to client to show the print queue
	- changed some print queue reporting stuff

1.8.0: 14/10/94
        - added international chars to valid_dos_char(). Thanks 
	- volume label fix
	- released alpha1
	- important off by 4 fix in the server
	- readbraw size adaption in the client
	- released alpha2	
	- wait3 cast for NeXt fixed. Thanks to
	- man page fix for max xmit. Thanks to mmoore@wexford (Mike Moore)
	- is_8_3() fixes from Jochen Roderburg <Roderburg@rrz.Uni-Koeln.DE>
	- list_match() fix from
	- statfs3 fix for BSDI from
	- changed file open/close/read in server in preparation for mmap()
	based IO.
	- added mmap() support for reading files in the server. Optional
	at compile time. Thanks to suggestion from Roger Binns <>
	- mmap bug fixes
	- added __SAMBA__ name in nmbd
	- major changes for support of lanman2 and long filenames from
	Jeremy Allison (
	- lseek optimisation. Thanks to Linus Torvalds.
	- released alpha4
	- date patches for lanman2 from Jeremy Allison
	- added protocol aliases to handle WfWg (untested)
	- allow for zero params or data in reply_trans2
	- small lanman2 patches from jeremy
	- more prototype additions for clean compilation
	- postscript patches from
	- more lanman2 patches from Jeremy
	- added null ioctl support 
	- kanji patches from
	- released alpha6
	- disallowed null password access (thanks to Birger Kraegelin
	- Makefile fix for ultrix from (Andrew Stirling)
	- added per-service mangled names
	- totally re-vamped loadparm.c	
	- added "mangling char" parameter
	- released alpha7
	- added "default case = lower|upper" service option
	- change mangling char to a service parameter
	- ultrix enhanced security patch from
	- more changes to loadparm.c
	- printer name always set in [printers]
	- string_free() fix thanks to
	- changed group handling to be faster and work for large numbers 
	  of groups
	- added dynamic gid_t type determination
	- released alpha8
	- fixed become_user() problem for services with invalid
	- added "invalid users" list on per service basis
	- fixed pointer problems in alpha8 (thanks to
	- fixed some date setting problems
	- trans2 fixes from jeremy to stop infinite directory listings of 
	long filenames
	- "standard input" lpq patch from (Adrian Hungate)
	- changed password checking to check session list and validated ids 
	before user list
	- split off password functions into password.c
	- added hosts equiv and rhosts code (thanks to Tim Murnaghan <>)
	- released alpha11
	- added "newer" command to the client
	- attempt at aix trapdoor uid workaround
	- released alpha12
	- minor trans2 bugfix
	- added ufc crypt (fast crypt) support. Thanks to suggestion from
	forrest d whitcher <>
	- socket() fix for getting bcast and netmask thanks to
	- added beginnings of IPC and named pipe support in the server
	- changed file structure a bit, creating reply.c
	- finished print queue support for lanman1
	- changed default protocol to LANMAN2
	- released alpha13
	- logged IPC connects at a higher debug level
	- added netgroup support to hosts equiv search
	- disallowed root access though hosts.equiv (thanks to
	- kanji and password handling fixes from
	- several bug fixes for lanman and other things from (Bernd Esser)
	- updated man pages, README and announce files.
	- released 1.8.00alpha1
	- reply_close() time change fix from Andreas Bahrdt <>
	- added valid users list to compliment invalid users list.
	- aix fixes from (Tom Crawley)
	- changed testparm output format
	- support for getting time from the server (nearly untested)
	- fixed device type error for wild device ???? 
	- fixed groups problem when in 0 groups
	- more IPC fixups
	- added support for "net view \\server" command to list
	available services (like browsing)
	- released 1.8.00alpha2
	- changed port choice for nmbd -L
	- added -L option to client to view share list on a host
	- bug fixes for NetShareEnum code
	- added "server string" option
	- changed default print file name to include remote machine name.
	- added hooks for browsing in nmbd
	- added browsing to nmbd
	- freebsd fixed from Steve Sims SimsS@Infi.Net
	- got rid of tell()
	- added subnet browsing with the S option in lmhosts
	- made smbd prime nmbd with a 1 byte dgram
	- added REUSADDR to open_socket_in() thanks to

1.8.01: 18/10/94

	- auto add group "LANGROUP" if no group specified in nmbd
	- made nmbd more responsive at startup
	- lots of cleanups and consistancy checks
	- added -C option to nmbd to set "machine comment".
	- fixed postscript option
	- force print_file in print_open()
	- restructured the browsing a little
	- casesignames fix for lanman-dos
	- auto-load home directory from session setup
	- changed to StrnCpy() for safety
	- fixed "out of file descriptors" bug in the client (a WfWg bug?)

1.8.02: 22/10/94
	- fixed uppercase username problem
	- added "hide dot files" option
	- changed auto debug log in nmbd
	- added LMHOSTS to Makefile
	- added M flag in lmhosts to specify own netbios name
	- added "load printers" option to auto-load all printers
	- substitution of %p in lpq command
	- substitution of %h and %v in server string and -C option of
	- string substitions substitute all occurances of a pattern
	- added casesignames global option
	- fix for man pages thanks to David Gardiner <>
	- changed debug options a bit
	- added default for lpq command and lpr command
	- changed default shell path to /bin/sh
	- forced lpq under api to run as root - should speed things up
	- added "group" option to force group of a connection
	- added "read list" and "write list" options
	- added max mux option - seems to fix NT browsing?
	- added "mangled map" option thanks to
	- separated mangling functions into mangle.c
	- allowed all dos chars in mangled names
	- apollo changes from Helmut Buchsbaum <>
	- password changing code from Bob Nance <>
	it doesn't quite work yet, but it's a start (disabled by default)

1.8.03: 25/10/94
	- made auto loaded services browsable as per default service
	so you can hide homes but keep home directories.
	- changed check_name() to handle "direct to network" printing
	- auto 3 minute deadtime if all connections are closed. This 
	prevents restart when polling the print queue.
	- fix for newer command in client from
	- changed connection recording method
	- added the program smbstatus
	- changed timeout mechanism
	- "null passwords" option from Pim Zandbergen <>
	- made new files with casesignames=False set their case to the default
	- fixed problem of uppercasing first letter of printers in printcap
	- debug level fixes in trans2 from jimw@PE-Nelson.COM (Jim Watt)
	- made null printer default to lp
1.8.04: 27/10/94
	- added OS2.txt from
	- another "auto services" fix. A silly strtok() bug :-(
	- fixed the status locking and max connections (broken in 1.8.03)
	- released alpha1
	- added gets_slash so lines can be continued in smb.conf and
	- browse list bugfix
	- default to "load printers=yes"
	- rewrote pcap.c
	- intergraph bugfix from
	- changed properties flags in nmbd (to fix NT print browsing)
	- allowed very long lines in printcap parsing.

1.8.05: 28/10/94
	- lanman2 fix from Jeremy

1.9.00: 22/1/95
	- only add home if not already there.
	- added ulogoffX support
	- PTR_DIFF() cleanups
	- fixed a bug that caused STATUS..LCK to grow very large
	- changed mangling to handle names ending in . a little better
	- added "strip dot" option
	- SGI and setgroups() fix from
	- fixed password preservation in password_ok() (again?)
	- unink fix from (Joel S. Emer)
	- changed username part of spool filename to max 10 chars (from 6)
	- magic script fix from (Beverly Brown)
	- reply_special() fix from Peter Brouwer <>
	- stopped nmbd from listening on 138. It didn't seem to help much.
	- clix fixes from
	- fixed select behaviour under Linux
	- man page fix from Robin Cutshaw <>
	- ISC block size fix from (Ralf Beck)
	- ISC fixes from
	- attrib bit fix in smbclient (pointed out by
	- japanese extensions from (Takashi
	Fujita) and
	- SCO patches from
	- changed the system commands to redirect stderr
	- changed default printername to service name for all print ops
	- added ability to delete print queue entries
	- added warning if you try to print without -P in smbclient
	- INTERACTIVE patches from
	- patch to handle spaces in group names from 
	- lockingX fix from stefank@esi.COM.AU (Stefan Kjellberg)
	- some fairly radical changes to filename handling. We can now
	handle mixed case filenames properly
	- released alpha2
	- added sysv printing support and improved bsd support
	- changed the user that does print queues and lprm jobs
	- return code support in the client from (Doyle Nickless)
	- added "strict locking" option. Defaults to no.

	- added -I switch to nmbd
	- fixed DEV bug thanks to
	- use pw_encrypt() for shadow passords in Linux (from (Dmitry Gorodchanin))
	- disabled read prediction by default
	- added varient handling code to ipc.c for printQ and printDel.
	- released alpha5
	- AUX patches from
	- struct timeval fix from
	- patches to merge ISC and INTERACTIVE from
	- changed to "printing ="
	- fixed problem with long print queues.
	- fixed node status request in nmbd to go to non bcast
	- made default path in services /tmp if not specified
	- added %u in passwd program
	- fixed up the password changing code for Linux
	- no guest sess setup when user level security
	- changed timeouts to kill dirptrs so cdroms can be unmounted
	- added auto-reload of smb.conf if changed
	- added SIGHUP to reload the config files
	- added -M option to nmbd to search for a master browser
	- added support for continue bit in trans2findnext	
	- changed to dynamic strings in some more structures
	- changed default deadtime to 30 minutes
	- cleaned up the memory swapping code a bit
	- updated the man pages somewhat
	- added %m and %u in the "path=" of services
	- released alpha6
	- simple testing and fixups for solaris, sunos, aix, ultrix and
	osf/1 (this is all I have access to).
	- fixed chdir bug 
	- added hashing to cnum selection
	- released alpha7
	- fixed printing bug
	- reduced chance of "hung" smbd with dead client
	- fixed do_match() bug (recently introduced)
	- released alpha8
	- nameserver fix from (W.J.M. van Geest)
	- rewrote readbraw to try and overlap reads with writes
	- client optimisations
	- rewrote getwd cache and enabled it by default
	- added partial smb packet reads (hopefully faster writes)
	- added log file and log level options (with subs)
	- added "read size" option
	- tried setting some more socket options
	- can use subs in "config file=" and will auto-reload
	- added "include" options, with some subs
	- finally got print manager working with NT
	- auto-respond in nmbd to non-broadcast (auto WINS server, no -A
	- released alpha10
	- auto-delet unused services when reloading
	- fixed auto-deletion
	- fixed long names in printing
	- fixed double loading of services file
	- added printer file name support
	- reformatted man pages for better www conversion
	- renamed to 1.9.00.
	- added support for RNetServerGetInfo and NetWkstaGetInfo API's
	- updated the docs a bit
	- released alpha1
	- added -M -
	- changed nmbd announce interval to 10 mins in outgoing packets
	- hopefully fixed idle timeout reconnects
	- strupper all command lines in nmbd
	- added %a substitution for "remote architecture"
	- added "Samba" protocol (same as lanman2)
	- added "security = SERVER"
	- released alpha2
	- lowercase password fix
	- fixed connect path length bug (thanks to JOHN YTSENG 
	- added subs on "password server".
	- fixed printing filename bug from smbclient
	- disk quotas and hpux printing support from
	- Makefile patches from
	- AFS patches from Mike Allard (
	- fixed grp name = server name problem
	- man page updates from Charlie Brady (
	- fixed file search bug by adding "finished" flag 
	- added "max log size". Suggestion from Mark Hastings <>
	- released alpha3
	- changed the read/write routines to handle partial read/writes
	- released alpha4
	- changed "guest account" to per-service
	- changed so "guest ok" allows access to the guest account, 
	not the "user=" line
	- changed default readsize to 2048
	- try bind to 137 in nmbd if possible
	- added server lookup to -L option in smbclient (gets list of servers)
	- added -M switch to smbclient for sending winpopup messages
	- released alpha5
	- FAQ updates from Paul Blackman

1.9.01: 23/1/95
	- changed comment in print Q info to service rather than server comment
	- fixed smbclient -L to NT when in user level security mode
	- hopefully finally fixed NT print manager problems
	- added informative messages during smbclient -M 
	- added node status replies to nmbd
	- changed the lock offset fixup calculation to be more friendly
	to dumb lockd daemons.
	- added sigbus and sigsegv handlers to catch any silly errors and
	print a message
	- added message receipt to smbd and "message command =" option
1.9.02: 25/1/95
        - added argv/argc mangling for people who start the server the
	wrong way.
	- some man page updates
	- added "revalidate" option
	- added hosts allow/deny access check to messaging access
	- added timeouts in the client
	- added check for existance of smbrun binary
	- man page updates from
	- freebsd patches from
	- added mask sanity check in SMBsearch
	- added more useful substitutions (%S, %P, %I and %T)
	- added "exec =" option to execute commands on each connection

1.9.03: 13/3/95
        - added "socket options" option
	- close base fd's (0,1 and 2)
	- use dup(0) for inetd operation
	- better detection of is_daemon
	- hopefully finally fixed silly put bug that gave the wrong
	date on files.
	- fixed segv in readbraw bug
	- added improved checing for invalid (or null) print file name
	- several patches from (Andreas Degert)
	- fixed slow logout bug in smbclient
	- fixed automounter problems
	- added subs on lock dir
	- BSDI patch from
	- added separate nmb and smb logfile entries in the Makefile
	- fixed return code error in open calls
	- added simple status display of printer in lpq parsing
	- rewrote the directory handling to avoid seekdir (added dir.c)
	- added uid=65535 check (thanks to
	- enhanced transfer_file() to add header (used in readbraw)
	- reply_special bugfix from
	- RiscIX patches from Jim Barry <> and 
	Charles Gay-Jones <> 
	- CLIX patches from
	- fixed aix lpq parser from
	- added substitutions to "include="
	- M88K_S3 patches from (Tony D. Birnseth)
	- fixed mangled stack problem
	- added code to handle broken readdir() setups on solaris
	- initgroups() fix from
	- dgux dfree fix from
	- dnix support from Peter Olsson <>
	- getgrgid() patch from (Tom Gall)
	- Makefile patch from (David O'Brien)
	- password changing fixes from
	- minor man page updates
	- tried to enhance the read prediction code a little bit

1.9.04: 16/3/95
        - a bit better handling of global include lists
	- fixed GSTRING bug in loadparm.c (affected "socket options =")
	- fixed broken lpq parsing code (recent bug). 
	Thanks to

1.9.05: 20/3/95
        - improved mget in client to take multiple arguments and default
	to *.*
	- socket option fixes for both nmbd and smbd
	- changed the byteorder handling scheme to be more portable (and
	- lint cleanups from (Robert Kast)
	- added crude segv, sigbus and sighup recovery to nmbd
	- rewrote lanman2_match to be closer to NT and WfWg behaviour
	- Cray support from (Martin Ouwehand)
	- "admin users" patch from Tim Leamy <>
	- released alpha1
	- added samba.7 man page
	- no chdir when doing non AS_USER protocols
	- become_guest() returns true in trapdoor uid system
	- added more sophisticated segv/sigbus reporting (Linux only)
	- released alpha2
	- minor code cleanups (output of -Wall)
	- smbprint fix from James Dryfoos <>
	- improved testparm a little
	- updated INSTALL.txt a little

1.9.06: 21/3/95
        - added %S substitution to users, valid users and invalid
	users. This is useful for [homes].
	- split off printing routines into printing.c and more dir
	commands into dir.c
	- postexec patch from jpm@gin.Mens.DE (Jan-Piet Mens)
	- smbstatus updates from jpm@gin.Mens.DE (Jan-Piet Mens)
	- reload sighup after use	
	- fixed name ptr offset bug
	- added %f in print commands 
	- fixed byte ordering in nmbd which caused browsing to fail in

1.9.07: 22/3/95
	- important directory listing fix
	- allowed path= in [homes] section
	- printer status patches from

1.9.08: 24/3/95
        - fixed . and .. in root dir for lanman2
	- better default comment in [homes]
	- added time stamping to directory entries
	- check directory access at connection time	
	- rlimit code from (Thomas M. Loebach)
	- fixed home dir default comment
	- totally rewrote dptr handling to overcome a persistant bug
	- added [globals] as well as [global]

1.9.09: 30/3/95
        - fixed static string bug in nmbd
	- better null password handling
	- split CFLAGS in Makefile
	- fixed typo in smbclient messaging
	- made home dir not inherit path from [global]
	- standard input printing patch from
	- added O_CREAT to all print opens (bug in Win95)
	- use /proc for process_exists under Linux and solaris
	- fixed another segv problem in readbraw
	- fixed volume label problem
	- lots of changes to try and support the NT1 protocol
	- released alpha1
	- fixed session setup bug with NT in NT1 protocol
	- released alpha2
	- fixed "get" bug in smbclient that affected NT3.5
	- added SO_KEEPALIVE as a default socket option in smbd
	- changed some error codes to match those that NT 3.5 produces
	- updated trans2 with some new calls for Win95 and WinNT (better
	long file support)
	- released alpha3
	- fixed "nmbd -D -b" timeouts
	- added IS_LONG_NAME flag to getattr in NT1
	- added the NT qfileinfo trans2 commands
	- merged qpathinfo with qfileinfo
	- changed idling technique to try and be more friendly to
	- merged setfileinfo with setpathinfo and updated them with the NT fns
	- improved read prediction a lot
	- added read prediction to readbraw
	- improved fault reporting (last packet dump)

1.9.10: 30/3/95
        - fixed read prediction+readbraw bug for read/write files

1.9.11: 9/4/95
        - fixed trans2 qpathinfo bug
	- fixed bug with % in service name when doing print queue requests
	- default readsize now 16K
	- minor read prediction changes
	- fixed status initialisation in print queue reporting
	- fixed const compile problem for hpux
	- minor SMBread fix from Volker Lendecke <>
	- removed space after -P in print commands (for fussy systems)
	- disabled level2 of setfilepathinfo
	- changed to a single read dir model, saving all dir names in
	the Dir structure
	- disabled NT protocols in the client due to reported problems
	- fixed QUERY_FS_VOLUME_INFO which caused Win95 to hang on drive
	- minor lseek bug fix
	- fixed up keepalives
	- new timezone handling code (hopefully better!) 
	- BSDI interface patch from
	- gettimeofday changes from Roger Binns <>
	- added smbrun option
	- added "root preexec" and "root postexec" options

1.9.12: 12/4/95
        - hopefully fixed some recently introduced NT problems
	- fixed a unlink error code problem
	- minor testparm fix
	- fixed silly error messages about comments in config files
	- added "valid chars" option for other languages

1.9.13: 28/4/95
        - patches from David O'Brien ( improving the
	netgroup suport, and adding the "map archive" option, as well as
	other minor cleanups.
	- tried to add info level 3 and 4 support for OS/2
	- default deadtime set to 0 as in docs
	- cleaned up the trans2 code a little
	- cleaned up the Makefile a little
	- added charset.c and charset.h 
	- expanded "valid chars" option to handle case mapping
	- lots of changes to try and get timezones right
	- released alpha1
	- win95 fixups
	- released alpha2
	- added %H substitution (gives home directory)
	- nameserv.c cleanups and minor bug fixes
	- redid the browse hook logic 
	- fixed daylight saving time offset for logfile messages
	- added name cacheing to nmbd
	- added send counts to node status in nmbd
	- added STRICT_TIMEZONES compile time option (very computationally
	- removed the partial read code
	- cleaned up the permission checking a lot
	- added share modes (DENY_READ, DENY_WRITE, DENY_ALL, DENY_NONE,
	- added "share modes" option
	- cleaned up the file open calls
	- released alpha4
	- fixed important one line bug in open_file()
	- trans2 client fix from
	- netgroup patche from David O'Brien (
	- case sensitive fix from (Joerg Lenneis)
	- got long filenames working from Win95 dos prompt
	- added "workgroup=" option
	- added "username map" option including multiple maps, group maps etc
	- fixed password server for NT1 protocol and made it more robust
	- changed unix_mode() to add IWUSR to read-only directories. This
	is much closer to what clients expect.
	- added preservation of unused permission bits when a chmod() is
	called from a client.
	- made static those fns that could be
	- fixed typo in access.c (thanks to  Andrew J Cole
	- added %d substitution for process id 
	(thanks to (Joerg Lenneis))
	- changed share error code to ERRbadshare
	- added locked files list to smbstatus if share modes is enabled
	- changed DENY_DOS to allow read by other tasks
	- added shared_pending checks to server
	- preserverd all possible permission bits during a chmod, and
	fixed a trans2 chmod bug
	- open /dev/null to use up first 3 fds, in an attempt to stop rogue
	library routines from causing havoc
	- fixed NT username problem when in server security
	- added "force user" and "force group" options
	- cleaned up some of the IPC calls a bit
	- added writeraw to the client and cleaned up write raw in the server
	- osf1 big-crypt bugfix from Udo Linauer <>
	- hopefully better disk-full checking
	- next uid bugfix from
	- changed share modes so lock directory doesn't need to be world 
	- enabled write-raw by default
	- added server_info() in client
	- added level checks in some ipc calls
	- added defines for the important timeouts in local.h
	- added print queue deletion to smbclient (untested)
	- removed the sysconf() calls
	- optimised writebraw a bit
	- fixed some file deletion problems
	- added total_data check for extended attribs in trans2 (for OS/2)
	- fixed broadcast reply bug in nmbd
	- added careful core dumping code
	- added faster password level searches (suggestion 
	by (Dan Lydick))

1.9.14: 22/9/95
        - fixed up level 3 and 4 trans2 requests for OS/2
	- minor optimisations in a few places
	- cleaned up the closing of low fds a bit
	- added SO_REUSEADDR to socket as a daemon
	- override aDIR bit for directories in dos_chmod()
	- SGI5 fixes from (Yuri Diomin)
	- bsize sanity check and removed sunos force to 1k
	- force the create mode to be at least 0700
	- SCO and freebsd include changes from Peter Olsson
	- check with FQDN in access.c (thanks to Arne Ansper <>)
	- default broadcast for dnix from Peter Olsson <>
	- solaris patches from Ronald Guilmette <>
	- added EXDEV handling
	- small AFS Makefile patch from
	- hopefully fixed the Win95 dates to work in other than my
	- attempted alignment fixups (to speed up memcpy)
	- added some DCE/DFS support (thanks to Jim Doyle <>)
	- added fix so that root doesn't have special privilages to open
	readonly files for writing (but admin users do). This fixes the MS
	office install problem.
	- fixed trans2 response bug in client
	- got dual names working for NT
	- enabled lock_and_read in NT protocol
	- added %L macro for "local machine"
	- changed dfree reporting to use "sectors per unit"
	- fixed "not enough memory" bug in MS print manger by limiting
	share name length in share enum.
	- "short preserve case" option from Rabin Ezra (
	- added archive option to client
	- changed openX in client to be able to open hidden and system files
	- added "sync always" option
	- rewrote writebmpx and readbmpx
	- added auto string_sub_basic to all loadparm strings
	- lots of nmbd fixups (add registration, refresh etc)
	- released alpha1
	- added smbtar patches from Ricky Poulten (
	- added a lpq cache and the "lpq cache time" option
	- released alpha 2
	- sun includes fix from Kimmo Suominen <>
	- change nmbd -L lookup type to workstation from server
	- added min print space option
	- added user and group names to smbstatus (thanks to
	- fixed %f in print command bug (thanks to
	- added wildcard support to SMBmv
	- misc patches from David Elm (
	- changed default of "share modes" to yes
	- changed default of "status" to yes
	- aix qconfig parsing from
	- more long_date fixups
	- added wildcards to nmbd
	- extensive changes to ipc.c and miscellaneous other changes 
	from (Andreas Degert). Should especially
	help OS/2 users
	- added name release to nmbd
	- relesed alpha4
	- fixed "SOLARIS" to SUNOS5 in Makefile
	- several minor fixups to get it to compile on aix, osf1, ultrix,
	solaris and sunos
	- released alpha5	
	- minor bug fixes and cleanups in ipc.c
	- fixed "only user" bug
	- changed lpq to report guest queue entries as sesssetup_user to
	allow for deletion by windows
	- released alpha6
	- added __SAMBA__ as type 0 in nmbd (was type 20)
	- fixed null print job bug
	- added 8 char warnings to testparm and smbclient
	- changed to 8 char limit for names in pcap.c
	- added linked list of config files to detect all date changes
	that require a reload
	- simplified pcap guessing heuristics
	- added space trimming to the name mapping
	- updated Get_Pwnam to add allow_change field for username mapping
	- fixed MemMove bug (thanks to (Massimo
	- released alpha7
	- rewrote MemMove to be a little more efficient
	- ipc va_arg bug fix from (Dave Gesswein)
	- added check for illegal chars in long filenames
	- fixed name cache init bug in nmbd
	- Convex patches from Victor Balashov <>
	- timestring() bugfix from
	- changed %H to give path of forced user if one is set
	- added quoting to smbclient to allow spaces in filenames
	- convex and other patches from Ulrich Hahn
	- released alpha8
	- fixed rename directory bug
	- nmbd wins fix from Maximilian Errath <>
	- client and AFS changes + password.c reorganisation + "more" and
	"pwd" commands in client from Todd j. Derr (
	- fixed several nmbd bugs
	- released alpha9
	- fixed another "cd" bug in smbclient
	- password encryption from Jeremy Allison
	- added "passwd chat" option and chat interpretation code
	- added "smb passwd file" option
	- released alpha10
	- cleaned up chgpasswd.c a little
	- portability changes to the encryption handling code
	- added password encryption to smbclient
	- fixed a share level security encryption bug
	- added "ENCRYPTION.txt" document
	- released alpha11
	- added code to detect a password server loop
	- fixed typo in chkpath in client.c that broken cd (again)
	- AFS password fixup from (Jeffrey G. Bushey)
	- iso/8859-1 charcnv patches from
	- strtok/user_in_list fix from
	- NETGROUP patches from
	- trim_string patch from
	- fixed problem with files with no extension getting mixed up
	- ipc bugfix for print job deletion from Rainer Leberle <>
	- released alpha12
	- pwlen fix in NETGROUP from Andrew J Cole <>
	- lots of uid and encryption changes from Jeremy Allison. WinDD
	should now work.
	- released alpha13
	- fixed max_xmit bug in client
	- select fix in server (fixed critical drive errors under ISC)
	- released alpha14
	- wildcard fix from Jeremy
	- changes to make IPC code more robust
	- small select loop change to reduce cleaning of share files
	- vtp, altos and mktime patches from Christian A. Lademann
	- EEXIST bugfix in server.c
	- changed mangled map to apply in all cases
	- released alpha15
	- fixed fcb open permissions (should mean apps know when a file is
	read only)
	- released alpha16
	- client help formatting fix and docs fix from Peter Jones
	- added a directory cache
	- use /proc whenever possible for pid detection
	- TCSANOW fix in getsmbpasswd from
	- fixed default printing mode for sysv systems
	- make client always expand mask
	- more minor IPC fixups
	- pyramid makefile entry from
	- client fixups for passlen, maxvcs and session redirect from
	Charles Hoch <>
	- finally fixed important IPC bug (varargs bug with int16)
	- quota patches from
	- print queue cache changes (per service) and print queue priority
	additions from
	- new japanese patches (incomplete) from (Takashi Fujita)
	- moved a lot more functions into system.c via wrappers
	- changed a lot of the connection refused error codes to be more
	informative (or at least different)
	- released alpha17
	- changed error return code from cannor chdir() in make_connection
	- fixed realloc() bug in printing.c
	- fixed invalid username bug in sesssetupX
	- released alpha18
	- made default service change name to asked for service (idea
	from Ian McEwan <>)
	- fixed "guest only" bug
	- sambatar patches from Ricky
	- printing.c patches from
	- rewrote become_user()
	- sunos5 patch from
	- more japanese extensions patches from 
	- released alpha20
	- added force_user to conn struct

1.9.15: 14/11/95
        - removed bcast override from workgroup announce in nmbd
	- aix patch, added NO_SYSMOUNTH, from 
	lionel leston <>	
	- quick fix in lp_string() to try and stop some core dumps
	- added uid cache in connections structure 
	to make user level security faster
	- changed dos_mode() to show read-only on read-only shares only if
	user w bit not set
	- added check to stop exit_server() looping
	- core dump fix in string_sub()
	- fix client bug for long dirs in NT1 mode. 
	Thanks to Erwin Authried (
	- switched to a safer (but probably slower) readbraw implementation
	- released p1
	- readbraw fix from
	- fixed groups bug when user is in 1 group
	- fixed NT1 dir bug
	- changed default protocol in client to NT1
	- changed trans2 to not return both names in long listing if long
	name is 8.3
	- made stat of "" return RONLY if not writeable drive
	- wrapped strcpy() to stop nulls propogating (hack)
	- made rename and unlink look at share locks on file
	- clitar memory leak fix from
	- added -p option to smbstatus to list smbd processes
	- added rename to the client
	- released p2
	- fixed SMBmv for case where the destination exists
	- man page patch from (Michal Jaegermann)
	- once again redid the time handling, but finally explained what
	is going on, this is written up in TIME.txt. The "kludge-GMT" used
	by NT is a bastard and led to a lot of the confusion
	- kanji patch from (Takashi Fujita)
	- is08859-1 patches from
	- starting rewriting nmbd, new nmbd is nmbd2, old one still around
	for time being
	- released p3
	- rewrote more of nmbd2 to use new structures
	- CLIX patches from
	- DirCacheFlush() bugfix from Michael Joosten
	<>. This bug explains a lot of the crashes.
	- fixed a bug in ChDir() that caused reversion to / in some
	- ipc fix from Magnus Hyllander <>
	- released p4
	- smbpasswd fix from Jeremy
	- compilation fixes from Magnus Hyllander <>
	- added NetServerEnum to ipc.c (needed for master browser stuff)
	- Makefile fix from Gunther Mayer <>
	- cleanups for clean compile on several OSes
	- added browse mastering code
	- started integration with smb.conf for nmbd2
	- released p5
	- fixed death_time (should be t+ttl*3)
	- fixed non-removal of dead servers
	- added smbstatus -u patch from (Oskar Hannesson)
	- NETGROUP fix from
	- select and NO_SETGROUPS patches from (Lenny
	- added LINKS_READ_ONLY define in dos_mode() for LM/X
	- "dir a.c" bug fixed thanks to 
	(Roderich Schupp)
	- job cancel fix in client from
	- changed nmbd2 to nmbd 
	- fixed "dir a*" under trans2 lookups
	- added StrnCaseCmp()
	- updated docs a bit for new browsing stuff
	- updated INSTALL.txt
	- hopefully fixed server level security with WfWg

1.9.15 (patches):
        - major/minor fix for solaris from Jeroen Schipper 
	- fixed critical bug in directory listings
	- released p1
	- fixed one of the causes of "out of memory" while browsing
	- fixed manpage install script (Paul Blackman)
	- added DNS failures to name cache
	- fixed writebmpx bug (affects OS/2)
	- misc OS/2 fixes, mostly for EA handling
	- added SMBcopy
	- added "max ttl" option
	- arch detection patch from Bas Laarhoven <>
	- released p2
	- another OS/2 fix - the level 4 getpathinfo for EAs
	- added "alternate permissions" option
	- changed client to parse destination names into name + domain
	- fixed problem with PrimaryGroup and lmhosts loading
	- added domain master ability to nmbd
	- added "domain master" option
	- added "domain controller" option and code
	- pwd fix to client from Erik Devriendt (
	- fixed problem in smbmv that led to ar not working in mks
	- added transs2
	- released p3
	- updated email addresses
	- fix for innetgr from Olaf Seibert (
	- client translate fix from
	- netbsd bcast fix from from Olaf Seibert (
	- syslog code from Alex Nash <>
	- strip dot fix from Arne Ansper <>
	- added addtosmbpass + man page from (Michal Jaegermann)
	- pcap fix for AIX from Jon Christiansen <>
	- fixed servertype bug in remote announcements
	- fixed up illegal name checks (should also be faster)
	- kanji patches from (Takashi Fujita)
	- fixed bug handling non-encrypted passwords
	- released p4
	- fixed makefile for addtosmbpass
	- DCE/DFS fixes from John Brezak (
	- client patch for partial command matching from Andrew Wiseman 
	- made is_8_3() handle full paths
	- rewrote open_file_shared() with help from Charles Hoch 
	- changed syslog to handle interactive programs
	- fixed syslog problem with full path in argv[0]
	- illegal name fixup for kanji from
	- fixed server level security to allow fallback to encryption
	- changed reply_read() and reply_lockread() to ignore clients 
	smb_bufsize in order to	handle broken lanman clients
	- fixed NT wildcard problem with old style programs
	- man page patches from "John M. Sellens" 
	- partially documented the "character set" option
	- changed default for MAXDIR to 64
	- changed default DPTR idle time to 120
	- released p5
	- QNX patches from (Eldo Loguzzo)	
	- made nmbd use the "max log size" option and changed log handling
	code a bit
	- sunos patches, remote protocol (%R) addition and arch detection
	changes to stop compiler warning from Timothy Hunt <>
	- fixed become_user() bug that led to incorrect permissions in
	some situations.
	- released p6	
	- is_8_3() fix from Charles Hoch <>
	- nmblib bugfix from (George Kull)
	- aix pcap fix from Jon Christiansen <>
	- added explicit sig_pipe() in server.c
	- added domain logins option (not fully implemented)
	- added HAVE_GMTOFF code
	- got rid of PM_MAXLINE	
	- minor client fix from goggi@eflir (Garšar Georg Nielsen)
	- added SIGCLD_IGNORE for HPUX (from Tor Lillqvist 
	- OSF/1 lpq patch from scooter@GENE.COM (Scooter Morris)
	- NeXT patches from (Paul Marcos)
	- dstdiff patch to stop infinite loop from Erwin Authried (
	- password server option can now take a list of password servers
	- patches to let samba run on OS/2 from Jason Rumney <>
	- added domain logon and logon script suport
	- SCO openserver 5 patches from Scott Michel <>
	- Makefile changes from Marty Leisner <>
	- chgpasswd changes from Roman Dumych <>
	for SVR4
	- GUEST_SESSSETUP change from
	- released p7
	- moved SO_REUSEADDR before bind() (thanks to Thomas Bellman 
	- added more flexible GUEST_SESSSETUP to local.h and restored
	pre-p7 behaviour as default
	- released p8

	- Makefile fix from Marty Leisner <>
	- added %g and %G substitutions
	- changed IDLE_CLOSED_TIMEOUT to 60 
	- fixed the "admin user" status in domain logons
	- hpux 10 "trusted security" patches from David-Michael Lincke
	- added nmb lookups to client from Adrian Hill <>
	- svr4 pause/resume printing patch from Brendan O'Dea (
	- fixed master announcement thanks to Luke Leighton <>
	- changed srcdir usage in Makefile to be friendly to more systems
	- NT4 alignment patches from Jeremy Allison (
	- updated share mode code for new spec
	- minor client bugfix (for smbclient '\\\')
	- fix for level 260 when magling disabled. From Martin Tomes
	- SMBtranss2 fix for OS/2 from Jeremy Allison
	- profiles fixup from Timm Wetzel <>
	- man page updates from
	- nmbsync fix from Andy Whitcroft <>
	- Lynx patches from Manfred Woelfel <>
	- new smbtar stuff from Ricky
	- changed to share mode DENY_NONE for tar
	- fixed -D option of smbclient when in tar mode
	- added aARCH to open modes
	- added code to cope with select/read errors
	- fixed blank browse entries after smb.conf reread
	- integrated new browse stuff from Luke into ipc.c
	- added workgroup list to smbclient -L
	- improved archive attribute handling in close_file() and
	- smbtar fixes from
	- Linux quota patch from
	- try to work around NT passlen2 problem in session setup
	- released alpha1

NOTE: From now on the cvs.log file will be used to give a complete log of
changes to samba. This change-log is now obsolete.

64 bit longs and IP addresses may give problems with unsigned longs?
set archive bit whenever file is modified??
fix man page dates

reply only to own workgroup in server enum
patch to compile with g++ and possibly solaris c++
nmbd needs to keep browse list uptodate by talking to the master if it loses
an election as others may still think its a valid backup and use it to get
leftover lock files can end up belonging to non-smbd processes after a reboot.
hosts allow in nmbd

hosts allow cache

add password command in smbclient

drag long filename to samba under os/2 gives short name

document max ttl option

dup/close 0 for getopt?

implement SMBmove  ??

add option to print more info about locked files (full path, share name

very slow listing CD, perhaps because of order of stat and readdir or add 
masking to opendir?

protocol drop back in client to avoid openX etc.

handle exported fat drives to a long filename capable client

add check for existance of lpq commands etc (use stat?)

get rid of the silly +4 and -4 by removing NBT stuff

write-only shares

document cnvchar stuff

allow smbd to serve user and group lists to win95

document homes behaviour with WinDD

add "hide file = *.o" "hide dir = .Foo*" "show file = xx*" type options.

ALLOW_PASSWORD_CHANGE only compiles/works on some systems

weird foooooooo/open.exe bug on NT

%a detection can't detect Win95 versus WinNT

reverse mangled maps, so (*.html *.htm) works for new files.

install problems with w95. could be some sort of race?

more efficient Files[] structure to handle thousands of open files
lpd stuff:
 	Tony Aiuto (

make max disk size local