1. 05 Feb, 1999 1 commit
    • Stewart Brodie's avatar
      End of week checkin. No bug fixes. Some performance improvements. · 40989120
      Stewart Brodie authored
        Added a basic name cacheing facility.  For safety this is flushed
          every time the module returns to FileSwitch.  This does at least
          help reduce the name of directory searches required during a
          name translation.  NameCache.c comes with a test program built-in
          for stressing the cache manager.
        Free space display doesn't work yet.
        Anti-idleout measures not implemented yet.
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_10'
  2. 03 Feb, 1999 1 commit
    • Stewart Brodie's avatar
      Fixed most dodgy pathname problems. · 343dc077
      Stewart Brodie authored
        All *LM... commands are now filing system commands.
        *Connect and *Disconnect renamed to *LMConnect and *LMDisconnect.
        When translating RISC OS to DOS filenames, a loop could develop if
          any path component contained a dodgy character.  This is now fixed
          with the exception of problems when both < and > characters appear
          in pathnames since that confuses FileSwitch.  New mappings will be
          need to be agreed for these characters (and remappings for $ and %
          which overload < and > respectively)
        All *LM... commands are now filing system commands, which means that
          you need to prefix them with LanMan: unless LanManFS is the current
          filesystem (following spec review).
        *Connect and *Disconnect renamed to *LMConnect and *LMDisconnect
          (following spec review).
        Trace builds allow "*LanMan:LMNameMode 4" to enable display of system
          and hidden files on the remote filesystem.
        Tested briefly against Windows 98 and Windows NT 4 SP3.
        If a directory name contains a dodgy character, repeated searches will
          be made on the remote filesystem.  This is inefficient and a name
          cache would alleviate this.  There is no name cacheing in the current
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_9'
  3. 22 Jan, 1999 1 commit
    • Stewart Brodie's avatar
      Now works against Windows NT 4.0 servers. · f18708fa
      Stewart Brodie authored
        NT 4.0 Lan Manager appears not to like single character wildcards being
          used in some circumstances.  So I've thrown away all the code which
          handles this and replaced it with code which simply performs a complete
          directory search and doing the matching myself.  This also reduces the
          number of SMB transactions required to do a name translation to 1
          instead of 5 (except in the case of a directory containing an awful
          lot of entries)
        Contentious character handling fixed.  Previously if a doubly-mapped
          character was used, it would match any character instead of just
          itself and its partner.  eg. q+a would match qua instead of just
          q+a and q&a.
        Checked desktop usage against STYX (NT 4 test machine) and against a
          Windows 98 server to confirm that support for that hasn't been affected
          by these changes.
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_8'
  4. 19 Jan, 1999 1 commit
    • Stewart Brodie's avatar
      Check-in of all files comprising this development build of LanManFS · 6cb00b82
      Stewart Brodie authored
        Spaces in NetBIOS names are now allowed.
        Now supports NetBIOS hostnames which contain spaces.  Use hardspaces
          in the Omni frontend or at the command-line (unless you can get
          away with a normal space without confusing the CLI parser)
        Tested by attempting to connect to machines with spaces in their
          names.  Got the expected response from the target machine, so
          this aspect is working.
        It appears that several files did not get checked in due to datestamp
          problems when LanManFS's location in CVS was changed.  This is now
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_7'
  5. 15 Jan, 1999 1 commit
    • Stewart Brodie's avatar
      Fixed logon behaviour against NT4 servers. · e332cf0f
      Stewart Brodie authored
        Added automatic bug detection code.
        NT4 servers use differently formatted buffer to response to the logon
          requests and this was confusing the code which only knew about the
          oldest format of this buffer.  The code now knows about all three
          different possible response formats and processes them all properly.
        Windows 95/98 servers contain a bug which cause them to reverse the
          order of the date and time fields in QPathInformation transactions.
          My earlier workaround for this was to always reverse the time/date
          pairs - which causes it to fail when talking to Windows NT servers.
          On the first QPathInformation request on a given share, the request
          is first done on the root directory, and then the (non-broken) dir
          search transaction is executed and the results compared to determine
          whether the server is broken or not.  This means that it should
          interwork with NT, 95, 98 and also with Samba (which has a build
          option for emulating this bug or not!)
        Transact2 processing code is now aware of the multiple response packet
          options and can cope with the server sending secondary responses.
        Directory search entry per call limiter re-introduced to prevent these
          from secondary responses occurring anyway as they are still a pain to
          process efficiently.
        Tested against Windows 98 and Windows NT 4.
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_6'
  6. 11 Jan, 1999 1 commit
    • Stewart Brodie's avatar
      First version which should contain everything required for full long filename... · 93866275
      Stewart Brodie authored
      First version which should contain everything required for full long filename support of SMB shares.
        Renaming works; setting filetypes results in a rename occurring;
        setting load/exec/attributes works - causing a rename where
        appropriate; creation of files to overwrite existing objects of
        different types causes old file to be deleted first.
        Tested briefly and everything seems happy both at the command-line
          and from the RISC OS Filer.  More thorough development testing can
          now commence properly.
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_5'
  7. 08 Jan, 1999 1 commit
    • Stewart Brodie's avatar
      A few more battles have been won. War finally starting to go my way. · d7d9868e
      Stewart Brodie authored
        LanManFS now uses ,xxx type notation on long filename shares.
        Character mappings improved (necessary because Windows allows so
          many extra daft characters to appear in filenames) and one-to-many
          mappings for awkward charcacters in the RISC OS->DOS world have
          been added.
        Directory searching improved so that the wildcard matching can be
          done properly.  Only Microsoft could provide you an API call to
          discover information about a filename specified with wildcards and
          NOT tell you which filename it matched. :-/
        Things remaining unimplemented so far:
          Setting filetypes.
          Creating files with specific types
        All those outstanding things relate to the work done by Attr_SetInfo
          which should be the final major piece of hacking required.
        Tested by connecting to a long filename share from both a RISC OS
          machine and a Windows NT machine.  All behaviour of the RISC OS
          machine has been verified against what the NT machine is seeing
          happening.  No surprises.  One-to-many character mappings are
          being matched correctly.
        Also tested using the Filer at the RISC OS end to navigate, run,
          and edit things on the remote share.
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_4'
  8. 14 Dec, 1998 1 commit
    • Stewart Brodie's avatar
      Another intermediate checkin now that *FileInfo works. I believe this means... · 28a6a425
      Stewart Brodie authored
      Another intermediate checkin now that *FileInfo works.  I believe this means that nearly all the core functionality is in place for long filename support.
        According to Microsoft's documentation, several of the file lookup type
          transactions return the file information in a common format buffer.
          However, what the docs fail to mention, is that in *some* of those
          commands, the time & date fields are reversed.  FindFirst2/FindNext2
          return "date, time, ...".  QPathInformation returns "time, date, ..."
        There remains a problem with occasional "server error" results from
          some requests.  The reason for these is unknown ... the documentation is
          unhelpful, describing this as "non-specific error code".  Simply repeating
          the command often results in success, sometimes it has to be repeated a
          few times.
        Also fixed filename mapping which caused any 'x' characters at the remote
          server end to be mapped to 'c' at the RISC OS end(!)  This didn't affect
          it before because servers wouldn't return the old module any filenames
          which contained lower case letters (LanManFS used to make the characters
          lower-case itself if the appropriate name style mode was set).
        Tested - still seems to work.  Filename completion from LineEditor works
          nicely.  I can open and close files, and read data from them (*Dump
          used to test this).  *Cat, *Ex and *FileInfo all work.  *Dir works.
        Filename character translations to and from RISC OS format need to be
          verified.  The translation table DOS->RISC OS has been ripped out of
          the NFS module so should be pretty accurate.  The reverse mapping has
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_3'
  9. 11 Dec, 1998 1 commit
    • Stewart Brodie's avatar
      First cut at long filenames in LanManFS. *Cat and *Ex work. · b7d80d6c
      Stewart Brodie authored
        Pretty much nothing else does.
        Now uses long filenames if available, and switches to the advanced
          SMB protocol and Transact2 commands to do work with long filenames.
        Work in progress.  End of week's work checkin point only.  Do not use.
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_2'
  10. 04 Dec, 1998 1 commit
    • Stewart Brodie's avatar
      Implemented h/w multicast filtering. · 45acaef2
      Stewart Brodie authored
        Uses our DCI4 header file.
        Now uses DCI4 MulticastRequest SWIs to selectively receive NetBEUI specific
          multicast IEEE frames.
        LLC_AttachDriver now takes an additional multicast MAC address parameter
          which is automatically claimed when the frames are claimed.
        Uses sys/dcistructs.h instead of its private ancient DCI4.h.  Some of the
          constants are different (old header shifted some numbers into correct
          positions for various calls - notably FRMLVL_* definitions).  Code modified
          to use the proper macros to construct these constants.
        Build and tested briefly.  EHInfo reports MAR for IEEE frames has been set
          as expected, and *LanMan:LMLogon seems to work.
      Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_1'
  11. 03 Dec, 1998 2 commits