smbfs 1.19 (27.11.2000) - Fixed ACTION_FINDOUTPUT implementation; the memory to hold the name of the file to be created was released before the file was created. This could cause garbage to be written to the output file. - Fixed ACTION_COPY_DIR implementation; the name of the lock to be duplicated did not get duplicated. - Fixed ACTION_EXAMINE_OBJECT and ACTION_EXAMINE_NEXT implementations; protection bits are now reported 'properly' with respect to read/write access. smbfs 1.20 (27.11.2000) - ACTION_EXAMINE_NEXT now filters out SMB names that include '/' or ':' characters. smbfs 1.21 (28.11.2000) - Modified ACTION_RENAME_DISK to remove the volume node before changing it. It also sends the appropriate diskremove/diskinserted input events now. - Reorganized and rewrote the code to reduce dependencies on the compiler runtime library. - Unified error reporting code. - SMBFS can now be launched from Workbench using the same parameters you would use when starting it from Shell. Error reporting has been adapted to show an error requester and to pool error messages rather than printing them to the console. smbfs 1.22 (30.11.2000) - Fixed the test that looks for file/lock access mode collisions. - No longer changes the case of the password; there is now an option to make the change. - Fixed ACTION_SAME_LOCK which was comparing the same lock with itself. - Added support for ACTION_EXAMINE_ALL, ACTION_EXAMINE_ALL_END and ACTION_WRITE_PROTECT packet types. - No longer allows for files and locks to refer to "." and "..". The use of the backslash character '\' is also disallowed in Amiga file/directory names. smbfs 1.23 (30.11.2000) - In the ExNext()/ExAll() handling functions local error variables were shadowing each other. Fixed. - The error reporting requester now also lists the name of the service to connect to. This should help in telling different invocations of the program apart. - The size of the directory cache is now a configurable option. - Added a new option which forces all name comparisons to be done in a case-sensitive fashion. - Reading/writing data to/from a file in chunks larger than 65535 bytes could fail and cause the file system to hang. smbfs 1.24 (1.12.2000) - Added an option to allow hidden files to be omitted from directory listings. - Improved upon the error reporting in the code that directly calls the TCP/IP API functions. - Reorganized the AmigaDOS packet handling switch..case list. - Added support for ACTION_MORE_CACHE packet type. The cache in this context refers to the directory scanning cache. - Improved upon the host lookup error reporting code. - Added support for file name translation such as via the CrossDOS translation table files. smbfs 1.25 (2.12.2000) - SMBFS now displays some configuration information as soon as it has successfully connected to the file server and is ready for action. This output can be suppressed with the new "QUIET" command line parameter. - When removing a directory, the error code returned is examined more closely to see whether the directory was not yet empty. - When setting the protection bits of a file or directory, the file system now treats either 'protected from deletion' and 'protected from writing' as indications to mark a file as write protected. Previously, a file had to be both protected from deletion and from writing to be treated as write protected. - Cleaned up the program's data structures and eliminated all static data that would hold state information. The entire client side is now completely reentrant. smbfs 1.26 (3.12.2000) - File and directory names are no longer duplicated in the SMB abstraction layer. The strings supplied by the Amiga file system layer are referenced instead. - Changed the way the ACTION_MORE_CACHE implementation returns its result code to be compatible with current practices. smbfs 1.27 (4.12.2000) - The changes I made to the file read command in order to allow it to read more than 65535 bytes at a time did not allow read attempts at the end of the file to come out properly. Fixed. - Integrated password encryption code lifted from Samba. Hope it works as it should, because if it doesn't, I wouldn't know how to fix it... smbfs 1.28 (4.12.2000) - Oh dear, more fixes to the password encryption code and the connection setup to follow it. This time I managed to test the code briefly with Samba and password encryption enabled. Amazingly, it seems to work this time! smbfs 1.29 (6.12.2000) - Writes larger than 65535 bytes could stall and slow down the file system. Fixed. [Thore Böckelmann] - The ACTION_MORE_CACHE implementation never returned the total number of cache entries allocated. Fixed. [Thore Böckelmann] - Plain text passwords didn't seem to work any more after I made the changes to allow for encrypted passwords to be used. Fixed. smbfs 1.30 (6.12.2000) - Changed the structure of the share names by which the file system refers to the data on the server; they all start with a backslash now. This seems to help NT and doesn't break the rest. - For file shares exported using 'share level security', no passwords will be transmitted. smbfs 1.31 (7.12.2000) - The ACTION_EXAMINE and ACTION_EXAMINE_FH implementations now verify that the name to return will fit into the FileInfoBlock's limited buffer space. - Deleting files and directories from a directory currently being scanned via ACTION_EXAMINE_NEXT or ACTION_EXAMINE_ALL will now cause the directory scanner to restart. This is ugly, I know, but at least it won't cause the scanning process to hickup or lose entries directory entries during its course of duty. The flip side is that the scanner will probably return some entries twice. There must be a better way to implement this, but for now, this is it. - Tried to make device and volume node removal safer. - SMBFS now always adds a device node to go along with the volume node. It's safer that way because for every file system you either have a single device node in the system (and no volume node) or a volume node *and* a device node. If the device node is missing, there's typically something wrong and some application software cannot handle this case properly. SMBFS will attempt to add a new, unique device node every time it is launched. - When specifying the name of the file system device to add, SMBFS now complains if that name already exists. smbfs 1.32 (8.12.2000) - File and directory modification dates were always off by six hours and one second. I don't know how that happens, it doesn't seem to be a bug in the date conversion routines. I worked around the problem by adding and subtracting an adjustment value. smbfs 1.33 (10.12.2000) - The ACTION_PARENT_DIR implementation did not return a ZERO lock for the root directory. Fixed. [Rudolph Riedel] - Replaced the doubly-linked Exec lists with skip lists which are better suited for the repeated lookup operations that are so common in the file system. This time the list code seems to work properly. - Added -- largely untested -- time and date decoding routines for directory entries returned by NT. smbfs 1.34 (10.12.2000) - Had to take out the skip list code again since it did not seem to work reliably. - Further tweaking to the NT date and time decoding code. smbfs 1.35 (10.12.2000) - Small modification to the ACTION_EXAMINE_NEXT/ACTION_EXAMINE_ALL code which tries to work around a strange effect caused by Amiga Samba returning the contents of an empty drawer. smbfs 1.36 (11.12.2000) - More fixes to the NT date and time conversion code and the strange six hour fixup that seems to be necessary for the 'regular' time conversion to work. smbfs 1.37 (11.12.2000) - Replaced the entire 'regular' date and time conversion code. The strange six hour fixup is no longer necessary. smbfs 1.38 (11.12.2000) - Ditched the packet size kludges in "sock.c" and "proc.c" I had put in there. It seems that only the 'smba_write()'/'smba_read()' code could trigger it, and that code was fixed quite a while ago. - Migrated some code changes from the Samba source over to the directory scanner. - Maximum transmission size per packet is now the same as the number the server allowed us to use rather than a fixed number imposed by VM page sizes. - Tried to clean up more of the code. - Discovered that the 'smb_valid_packet()' routine never could have worked and fixed it so that it now finally does what it should do. - Better error propagation for some routines in "proc.c". - More streamlined error testing code. smbfs 1.39 (11.12.2000) - Almost fixed several bugs in 'smb_proc_readdir_long()'. - 'smb_proc_readdir_long()' does not work correctly. It only seems to work, but will fail if the scanner is to restart before the entire directory is read. Restored the old behaviour :( smbfs 1.40 (13.12.2000) - Took out some more unused and unnecessary code. - Rewrote the time and date conversion routines. - Modified the directory reading code so that it no longer relies upon the last directory entry index which doesn't seem to be correct most of the time. - Directory scanning errors are now flagged as such. smbfs 1.41 (16.12.2000) - In the SMB abstraction layer, the directory cache is now invalidated only if the respective action that could have invalidated it succeeds. - Now clears the directory cache only if the respective action would have affected the directory being cached. - In debug mode [Ctrl]+F will display a list of open files and allocated locks. - Added very silly support for ACTION_SET_COMMENT packet. - Found an interesting bug fix for 'smb_proc_readdir_long()' in the Linux 2.4.0 kernel which seemed worth integrating into the file system. smbfs 1.42 (19.12.2000) - Integrated Chris Hertel's broadcast name query code. This means that the name of the host whose file shares you want to access need no longer be in the hosts database. However, you still cannot refer to a host solely by its IP address. smbfs 1.43 (21.12.2000) - The integrated broadcase name query code would conflict with the DNS lookup. Fixed. [Thore Böckelmann] - The NetBIOS name query code now retries four times to get a response out of the network. - Put the mysterious 6 hour time offset fix back in. smbfs 1.44 (29.12.2000) - Rewrote the host lookup error reporting code to use the appropriate API function. - Discovered that all the functionality required by SMBFS was supported by the original free AmiTCP 3.0 release. Changed the "bsdsocket.library" open parameters. - The ACTION_EXAMINE_OBJECT implementation consistently got the name of the root directory wrong. Fixed. smbfs 1.45 (7.1.2001) - Discovered why file and directory creation dates were wrong by about six hours. Fixed. - The order of the parameters passed to the 'ExAll()' filter hook was wrong. Fixed [Thorsteinn Sveinsson and Matt Sealey]. smbfs 1.46 (1.2.2001) - Removed the workarounds for the mysterious 'off by six hours' bug. The time delta value added was consistently wrong. smbfs 1.47 (18.2.2001) - The name of the domain/workgroup, the name of the user and the password to be used can now be preset using environment variables. - Changed the command line argument template to work better with the newly introduced environment variable settings. smbfs 1.48 (3.3.2001) - Modified the command template so that the final parameter can no longer cause all other parameters to be swallowed. Also updated the documentation. smbfs 1.49 (3.3.2001) - Handling of ACTION_FINDUPDATE needed improving. It should have created a file that didn't already exist. It now does [David Gerber]. smbfs 1.50 (4.3.2001) - ACTION_FINDUPDATE is now associated with a shared lock. It used to be an exclusive lock [David Gerber]. - The test to follow ACTION_FINDUPDATE that determines whether the file to open already exists now also tries to 'stat()' the file in question to find out whether it exists. smbfs 1.51 (13.3.2001) - Whoops. The new code to pull data from environment variables didn't actually check whether the work group name could be set up properly and thus didn't complain about it either. It now notifies you if no work group name was provided and none could be found.