Change Log for netbios for unix sofware. Unless otherwise attributed, all changes were made by Andrew Tridgell 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 pierson@ketje.enet.dec.com 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 nmbserver to Makefile 1.5.11 6/12/93 - made the volume label appear as the service name, rather than "Remote" - made the nmbserver actually work (a little) for lanman for dos 1.5.12 7/12/93 - fixed broadcasting in the nameserver - the smbserver now correctly sets the pid and uid - nmbserver 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 tim.hudson@gslmail.mincom.oz.au 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 to bryan@alex.com) - fixed accept() bug not initialising in_addrlen (thanks to bogstad@cs.jhu.edu) - fixed cd bug in client.c (thanks to joergs@toppoint.de) - 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 troyer@saifr00.ateng.az.honeywell.com) - SVR4 patches from mark@scot1.ucsalf.ac.uk - 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 lonnie@itg.ti.com - SYSV, shadow password and dfree() fixes from mark@scot1.ucsalf.ac.uk - fixed reply_delete() to not delete read-only files - fixed infinite loop in reply_delete on "del ." Thanks to mark@scot1.ucsalf.ac.uk for pointing this out. - posix mode definitions and changes from mark@scot1.ucsalf.ac.uk 1.5.19 18/12/93 - another very minor fix to dfree(). - minor change to SVR4 makefile entry from rossw@march.co.uk - changed reply_open not to open directories, this fixes the "copy .." bug pointed out by mark@scot1.ucsalf.ac.uk - 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 to troyer@saifr00.ateng.az.honeywell.com) - 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 magnus@axiom.se) 1.5.20 28/12/93 - added debug statement in case of SMBcreate with volid set (leefi@microsoft.com) - 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@netcom.com (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 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 ppk@atk.tpo.fi (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 (jeremy@netcom.com) 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 ppk@atk.tpo.fi - made lock calls only if opened with write enabled, as pointed out by gadams@ddrive.demon.co.uk 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 ppk@atk.tpo.fi - added "hosts allow" and "hosts deny" to server - added keepalives to server - added "access" feature to testparam - NetBSD patches from sreiz@aie.nl 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 server - made some of the SVAL fns into macros to keep fussy compilers from complaining - 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 (jeremy@netcom.com) 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 bryan@alex.com for finding the bug. - fixed bug in time structure handling in server and client. Thanks to bryan@alex.com for pointing out the bug. 1.5.29 15/1/94 - fixed a silly bug in reply_open(). Thanks to jeremy@netcom.com 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 ppk@atk.tpo.fi) - 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 ppk@atk.tpo.fi) 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 merik@blackadder.dsh.oz.au) - 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 kuku@acds.physik.rwth-aachen.de - changed reduce_name() to trim ./ from front of strings and / from back - 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 (Karl.Auer@anu.edu.au) - 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 [globals] 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 [globals] section and services sections of the configuration file. This allows the printer name only to be set, without having to specify an entire print command. - 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 directory'. - added lots more detail to the sample configuration file to take account of the above. - many minor fixes to internal documentation in the configuration sources. - also - Man pages! 1.5.32 3/2/94 - addition of smbserver, smbclient and testparm man pages from Karl Auer - zombie process fix from lendecke@namu01.gwdg.de - added capability to nmbserver 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 nmbserver - 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 lendecke@namu01.gwdg.de - added -a switch to server, and made default action to append to log file - added deadtime options to globals section for timing out dead connections to the smbserver. - HPUX changes from Pasi.Kaara@atk.tpo.fi - made use of unsigned char more consistent - changed the way of getting the default username and host in the client - 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 Pasi.Kaara@atk.tpo.fi) - 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 considerably. 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 iversen@dsfys1.fi.uib.no) - added automatic group registration - fixed bug in registration code - made nmbserver work better with WfWg, and probably others - updated the man pages to include the new nmbserver 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 imb@asstdc.scgt.oz.au - the client now tries to do name registration using a unicast. Let me know if this helps anyone. 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 0.0.0.0, 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