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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The SMB dump output can now be stored in a file, rather than having to be redirected to one. When storing it in a file, the output will be appended to an existing file, otherwise a new file will be created.
The raw read/write functions now respect the upper limit for the amount of data to be written, as given by the server.
Fixed decoding of maximum buffer size; this used to come out as 0, which made smbfs switch back to the default minimum supported (1024 bytes).
Corrected use of the maximum raw write size as the size used by the client to perform raw reads with. The maximum allowed are 65535 bytes for a raw read request. Likewise, the maximum raw write size is 65535 bytes, too.
Recalculated the overhead for the SMB_COM_WRITE_RAW command, and it's 63 bytes, not 4.
Unless smb_proc_write_raw() finds that sending the packet results in a transmission error, it will try to pick up the server responses. Previously, it would not even try that, which could deadlock the client<->server message exchange.
The SMB message length bit #17 is now properly filled in with the respective bit of the payload length.
Added the remaining error codes covered by the "Common Internet File System (CIFS) Protocol" documentation.
The client capabilities were never properly initialized, which could have led to any number of interesting side-effects, such as NT status information being transmitted instead.
The client now announces itself as a Unix system if the server does so, too.
The record locking command did not initialize the oplock level at all. Fixed.
Other SMB packets were not completely initialized either, which has been corrected.
Turns out that the length filled in by smb_setup_header() was not actually off by 4 bytes but entirely correct. This caused SMB packets to be sent four bytes short, and probably causing some SMB server implementations to ignore them altogether.
A successful SMB_COM_WRITE_RAW command may cause the server to send interim progress update responses, ending with a final SMB_COM_WRITE_RAW_COMPLETE message. This is now handled correctly.
The word/dword conversion code should be more robust now, using the type casts where needed.
The maximum transmission size provided by the server is now a local variable and no longer stored in the global server parameters because it is really only needed here.
The maximum transmission size limit requested by the user is no longer ignored.
This complements the functionality in the updated SMB abstraction layer. Also added a little documentation for some of the various undocumented magic numbers and fields of the SMB commands set up in this implementation. There is more to come, eventually.
- Modified smb_valid_packet() in proc.c to check whether the packet
received is smaller than expected, not whether the length matches
exactly. This seems to fix the protocol negotiation with Samba 3.2.5
for now. Haven't checked Vista yet, though...
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@23 26594b9e-b914-4e86-b7a1-9402bd427170
- 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
- The extended directory scanning entry conversion code now swaps
the last modification and last write access date stamps. This
matches the time of the last modification, as returned by the
regular ACTION_EXAMINE_FH/ACTION_EXAMINE packets. Note that the
time resolution is a little bit coarser because the modification
time as expressed by the SMB getattr function cannot represent
60 distinct seconds per minute but only 30. The net effect is
that the resulting time stamps in a directory listing and by
examining a file can differ by one second.
- The DST option's time offset was added to rather than subtracted
from the local time. Fixed.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@17 26594b9e-b914-4e86-b7a1-9402bd427170
- Introduced a new option to account for daylight savings time
when appropriate.
- Looks like some of the time stamps used in "proc.c" are
transmitted in local time after all; brought back the
conversion functions.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@15 26594b9e-b914-4e86-b7a1-9402bd427170
- 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
- It appears that Windows XP can produce directory listings with
file/directory modification times set to 0, indicating that no
such information is available, while the associated last file
write access data is present. Previously, smbfs only reported
the modification. If this data is unavailable and the date of
the last write access is, the last write access will be
reported instead.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/amiga-smbfs/trunk@11 26594b9e-b914-4e86-b7a1-9402bd427170
- 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