Commit Graph
23 Commits
Author SHA1 Message Date
Olaf Barthel 39f1cc8a10 Added a somewhat less elegant workaround for our use of strncasecmp(), so that smbfs will compile for OS4 again. 2020-01-13 13:31:26 +01:00
obarthel 3220d73438 Updated to version 2.21
Added more diagnostic output and debug functionality, e.g. regarding how many directory caches are currently being used.

Long name directory scanning is a bit more paranoid when retrying a scan operation which might have been triggered by the server connection getting dropped.

Added the new READONLY option (why stop at 47 options when you can have 48?) which makes the file system read-only by default and does not require you to use the "Lock" shell command to achieve the same effect. Note that the shell "Lock" command cannot be used to turn the read-only mode off again.

Added support for the smb:// URI scheme, which means that instead of using "smbfs username=barney password=secret domain=workgroup //nas:445/share" you can now use "smbfs smb://workgroup;barney:secret@nas:445/share" instead. It is a bit shorter than the alternative and has an advantage in allowing you to reuse smb:// URLs which you know work well on other systems.
2019-03-09 11:04:33 +01:00
obarthel d058085b8a Updated to version 2.13
The ACTION_CREATE_DIR, ACTION_DELETE_OBJECT, ACTION_FINDOUTPUT, ACTION_RENAME_OBJECT, ACTION_SET_DATE, ACTION_SET_FILE_SIZE, ACTION_SET_PROTECT and ACTION_WRITE operations now set use more appropriate error codes instead of always translating an unspecific "access denied" error into "ERROR_READ_PROTECTED". For example, for ACTION_DELETE_OBJECT the new translation of "access denied" will be "ERROR_DELETE_PROTECTED".

Added the ErrorOutput option, which can be either "stderr" (default) or "stdout". Its purpose is to allow error messages written by smbfs to be redirected to a file, which will not work for AmigaDOS shell versions 36-40 if smbfs uses "stderr". Use ErrorOutput=stdout to be able to redirect all smbfs output, including any error messages, to a file.

Updated the copyright text.

Output to console or log files is now line-buffered.
2019-02-09 11:58:20 +01:00
obarthel 401f1291e3 Updated to version 2.12
Found a couple more cases in which debug output did not use the correct parameter information. This happened, for example, in the SMB write operation (which did not correctly report the 64 bit seek offset) and the ACTION_SET_COMMENT implementation which did not print the comment string correctly.

Added a proper string length limit check for the text buffers used by the DateToStr() function.

Enabled profiling support for SAS/C to learn more about the most frequently-used functions and their respective running times. Added inline qualifiers to these functions, or copied the respective function to where it was called, allowing it to be inlined.

The main file system processing loop no longer calls WaitSelect() every time it needs to wait for a new packet to arrive, or for a NetBIOS "keep alive" message to come along. It now defaults to calling Wait(), which has a much lower overhead than WaitSelect(). However, periodic calls to WaitSelect() and the associated NetBIOS "keep alive" handling are scheduled regularly every 10 seconds. That way the "keep alive" messages are dealt with without spending too much time with WaitSelect().
2019-01-06 10:45:39 +01:00
obarthel ad9b817ccb Updated to version 2.3
Added const qualifiers to the parameters used by the functions in "crypt.c". This in turn revealed that the smb_encrypt() function did not in fact modify the password string passed to it, which allowed the smb_proc_reconnect() function in "proc.c" to be simplified.

Augmented the file handle, file lock and SMB file access operations with splay trees to improve performance for validation and lookup. Instead of having to walk the entire list of file, lock or SMB file entries, comparing the list entries by name or address, the entire process should have to check 1-5 entries only.

This splay tree functionality is a compile time option which has to be enabled in the "splay.h" header file.

If there is a port number given as part of the share name which is out of range, smbfs now reports this as a specific error rather than just stating that the service is not valid.

Replaced duplicate code in "smb_abstraction.c" which built path names from a parent directory name and a file/directory name with a single common solution.

Revised the build makefiles to create the standard smbfs variant rather than the one with full debugging support enabled. The AmigaOS4 variant specifically avoids using cross-compilation options which would have to be enabled first, if needed.
2018-12-15 14:09:18 +01:00
obarthel e5f42326e5 Updated to version 2.3
Added the ADDVOLUME option, which defaults to "yes". If no volume name is
provided, smbfs will use the service name as the template, e.g. if you
connect to //server-name/pictures then the default volume name will
be "pictures". The idea is that if the file server allows this, you
should not need to start the smbfs program with any parameter other
than the service/share name and it should work out of the box.

Preparations for showing error messages when running as a Workbench
program would corrupt memory once the message was ready for display,
but this only happened in the AmigaOS4 build. As far as I can tell
this never worked correctly on AmigaOS4. Thanks go to Matthew Kille
who reported the problem!

Simplified the icon parameter processing used when running smbfs
as a Workbench program. The reworked code is now basically limited
to processing and setting up the same configuration data which the
shell command use employs. Both paths share the same configuration
data checking and handling.

Turns out that the ACTION_CURRENT_VOLUME function does need to return
the volume node, not the device node. Note to self: a 'struct DeviceList'
refers to a volume (DLT_VOLUME), whereas a 'struct DeviceNode' refers
to a device (DLT_DEVICE). See? This could have been easily been avoided :-/

Added more code documentation, especially for the various constants and
data structures defined and used in "main.c".

Reading from the file name translation file now performs better error
detection and reporting. If read errors should crop up, the error message
will now say so. If the file is shorter than required the error message
will reflect this.

Reworked the smb_proc_reconnect() function so that it does not end up
truncating the password before it is encrypted. This means that up to
63 characters of the password can be used to produce the encrypted
form, resolving problems with longer server passwords not quite
matching what you entered. However, since this long encrypted password
is still accompanied by the legacy encrypted form which truncates the
password to 14 characters (which are converted to all-upper-case
letters) there is no actual gain in terms of security...
2018-12-08 12:11:09 +01:00
obarthel 3a06bbdacf Updated to version 1.181
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-09-15 11:56:09 +02:00
obarthel ead922a752 Updated to version 1.173
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-08-05 10:04:06 +02:00
Olaf Barthel 98f6d56ede Updated to version 1.165
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-07-19 14:36:24 +02:00
obarthel 005958e221 Updated to version 1.148
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-06-08 15:18:46 +02:00
obarthel 41e8bc46bd Updated to version 1.143
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-05-30 18:59:23 +02:00
obarthel ea486c36c9 Updated to version 1.139
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-05-26 14:37:48 +02:00
obarthel 8daa23142f Updated to version 1.129
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-05-13 12:42:55 +02:00
obarthel 61735b08c2 Updated to version 1.222
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-05-05 15:03:16 +02:00
obarthel cd5669e306 Updated to version 1.120
Please keep in mind that this is still a development version and might surprise you (not necessarily in a good way).

Do not let me discourage you to build and test this version, although there will be some risks involved such as data corruption or loss of data.
2018-05-01 15:14:45 +02:00
obarthel 6b384df83d Updated the copyright text 2018-04-11 12:19:24 +02:00
Olaf Barthel 54ccf7266a smbfs can be identified by checking the volume node disk type field
The signature "SMB\0" is now stored in DosList->dol_misc.dol_volume.dol_DiskType, which can be obtained through Info() or by walking through the data structures associated with a FileLock. This was suggested by Chris Handley and Chris Young. Thank you very much!
2016-05-11 14:54:50 +02:00
Olaf Barthel eeef16d367 Version bump 2016-04-03 11:40:39 +02:00
Olaf Barthel 79ea7303a9 Copyright update 2016-04-02 12:28:02 +02:00
Olaf Barthel 2f0d253eef smbfs 1.72 (14.4.2009)
- In proc.c, smb_setup_header() initialized the SMB header length
  field with a number which was too large by four bytes. Consequently,
  what was later committed to the wire would have four trailing data
  bytes which could contain random values. This often didn't do much
  harm, but it seems that Samba 3.2.4 and Windows Vista don't like the
  looks of the trailing junk bytes.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@20 26594b9e-b914-4e86-b7a1-9402bd427170
2009-04-14 11:33:05 +00:00
Olaf Barthel 78e86b738f smbfs 1.69 (13.6.2005)
- The time stamps used in "proc.c", as returned and submitted to
  the SMB file system on the other end of the wire are apparently
  all in Universally Coordinated Time already (or at least, this
  seems to be the case with Samba and Windows XP). Hence no conversion
  between local time and UTC is necessary, which would otherwise
  distort all date stamps converted. I modified the file system to
  leave all time stamps essentially unadjusted for local time in
  "proc.c". The local time zone adjustments are now performed only
  where the time in question is known to be Amiga-specific, such as
  the current system time or the date stamp to set for a file.

  The time conversion appears to be working correctly now, but it
  does ignore the effects of daylight savings time, which you might
  want to adjust for manually through the TIMEZONEOFFSET option
  (careful though: this overrides your current locale-defined time
  zone settings as far as smbfs is concerned).

  Unsolved problem: at least Windows XP seems to return different
  time stamps for directory listings and for indidivual files. As
  far as I can tell, the sets of time stamps returned for either
  doesn't match anywhere.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@13 26594b9e-b914-4e86-b7a1-9402bd427170
2005-06-13 08:04:29 +00:00
Olaf Barthel d29f359e49 smbfs 1.67 (27.5.2005)
- Replaced the long NT date conversion code with something hopefully
  much more robust. The results so far are both encouraging and
  irritating. Dates that previously came out as "unknown" are now
  processed, but there are differences between the dates shown in the
  directory listing and by listing the files by name. Go figure...

- Transplanted some more code from Samba to handle directory entry
  data conversion.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@5 26594b9e-b914-4e86-b7a1-9402bd427170
2005-05-27 09:48:26 +00:00
Olaf Barthel ed8def5209 - Initial import into sourceforge.net CVS.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@3 26594b9e-b914-4e86-b7a1-9402bd427170
2005-05-24 13:22:14 +00:00