1. 16 May, 2020 1 commit
    • Colin Granville's avatar
      Fixed deletion of directory trees · 343b54e4
      Colin Granville authored
      Detail:
        Rewrite of directory enumeration so that when directory trees are deleted when they are completely deleted.
        Modified fsentry_func in CoreFN.c so that the ReadDirectory reason codes call the new Func_ReadDir1 which uses SMBFind_EnumDir implemented in SMB.c and SMBfind.h
      Admin:
        Tested with Windows and Samba on Armbian.
      
      Version 2.64. Tagged as 'OmniLanManFS-2_64'
      343b54e4
  2. 19 Jan, 2014 1 commit
    • Robert Sprowson's avatar
      Make name cache flush unconditional · 22f3ec34
      Robert Sprowson authored
      CoreFn.c:
      The size returned by OS_File 5 might not match the size shown in the Filer viewer (or via *EX) because the last cached version was being returned. This would manifest itself as an error from !Edit if the file on the server had grown since last queried, when loading the file the amount of memory reserved was for the smaller (stale cache copy size).
      The name cache is now always flushed on exit from the FileSwitch functions, this doesn't alter performance because the size was already being queried across the network, it was just that the result was overridden by the cached copy.
      LanMan.c:
      Be more robust and only capture the default driver name when it starts up.
      This could be a problem if LanManFS starts after the ethernet driver, and the value of Inet$EtherType is unset. When the driver dies LanManFS would have taken that name as the default - leading to "Bad parameter" when trying to connect to a share.
      
      Tested on IOMD with WinXP SP3.
      
      Version 2.44. Tagged as 'LanManFS-2_44'
      22f3ec34
  3. 03 Oct, 2013 1 commit
    • Robert Sprowson's avatar
      Internationalised · e3559214
      Robert Sprowson authored
      Unused LMFiler put in the attic.
      As LanMan has historically put its resources into ThirdPart/OmniClient this component has no ROM resources phase - it still registers the resources at run time.
      
      Version 2.40. Tagged as 'LanManFS-2_40'
      e3559214
  4. 30 Sep, 2013 1 commit
    • Robert Sprowson's avatar
      Makefile recreated from fragments · 95372462
      Robert Sprowson authored
      Fixed up a couple of trivial warnings with the stricter checking.
      Removed OmniS_FastMultiply64 and rewrote the function in C, this allows the compiler to spot and use UMULL on architectures supporting that instruction.
      Tested in a RAM build against a WinXP SP3 server with a drive > 4GB.
      
      Version 2.39. Tagged as 'LanManFS-2_39'
      95372462
  5. 11 Nov, 2012 1 commit
    • Robert Sprowson's avatar
      Fix and speed up EXT#handle=number doing nothing when number is beyond 2GB · 18a0315a
      Robert Sprowson authored
      Internally LanManFS was representing file offsets and data lengths as signed numbers, while in general this doesn't matter (they are passed through opaquely as just numbers and not manipulated) in a couple of places they were being used as while () loop exit conditions.
      Function WriteZeroes (used when extending a file via OS_Args) therefore never performed the call to SMB_Write when beyond 2G because the loop condition was never met.
      Additionally, it was literally transferring buffers of zeros across the network which is unnecessary as the server is documented as doing a zero fill itself, this represents at least a x40 speed up (on a slow 1MB/s drive write speed at the server end) or more.
      Changed offset & lengths from int to uint.
      Added the earlier CIFS spec (the later copy is missing section 5 for some reason) to docs.
      
      Version 2.38. Tagged as 'LanManFS-2_38'
      18a0315a
  6. 01 Aug, 2009 1 commit
    • Robert Sprowson's avatar
      Fix for renames where only the case has changed. · 0dabebbd
      Robert Sprowson authored
      Detail:
       Added an extra check after the Xlate path resolution code so that
       the case of the path given to resolve is honoured. This now means that
       the strcmp() done in SMB_Rename fails and the rename is actually sent to
       the server. Before "*rename test Test" would have the path resolved and
       since 'test' already existed both names would be the same, in this example
       something like "*rename A:\test A:\test" would result.
      Admin:
       Made the non LONGNAMES version compile again (not tested).
       Removed local definitions of FSControl reason codes, uses Interface header
       now.
       Made the case of #includes match CVS to allow future compilation on a case
       sensitive system.
       Deleted unused "Version" header.
      
      Version 2.34. Tagged as 'LanManFS-2_34'
      0dabebbd
  7. 19 Jul, 2009 1 commit
    • Robert Sprowson's avatar
      Workaround for NTFS returning resume keys of zero. · d1ca5496
      Robert Sprowson authored
      Detail:
        When the underlying FS is NTFS, eg. WinXP Pro, the requested
        resume keys for a directory search are always zero - this is passed
        back via OSGBPB and on the next call it triggers a new search. So
        we get stuck in an infinite loop.
        Now checks for a resume key stuck at zero, and makes a fake one static
        to the search context then sets the continuation bit in the SMB_FIND_NEXT
        call because the server returning the duff key remembers the position.
        Dir_CallbackFn could return with "taken" undefined. Move a few lines
        higher.
        Missing "#else" added to CHECK_ARMBOOT_EXISTS so if this is disabled
        no further attempt is made to find !ArmBoot.
        Couple of typos corrected.
        Spelling of "disk" changed to "disc" in an error message.
      Admin:
        Tested with XP Pro SP3 with NTFS, directories which previously hung
        the filer now open correctly. Checked with XP Home SP3 with FAT32 to
        verify behaviour unchanged from 2.32.
        Note, with large directories the initial path translation triggers a
        dir search too which takes ages compared with the actual number of
        entries returned. This could be cached to make counting far faster.
      
      Version 2.33. Tagged as 'LanManFS-2_33'
      d1ca5496
  8. 15 Apr, 2009 1 commit
    • Ben Avison's avatar
      Multiple fixes. · 186192a3
      Ben Avison authored
      Detail:
        Too many to list here: see doc/RPSChanges.
      Admin:
        Received from Rob Sprowson approx 2009-02-08. Builds, but not tested by ROOL.
      
      Version 2.32. Tagged as 'LanManFS-2_32'
      186192a3
  9. 07 Jan, 2004 1 commit
    • Ben Avison's avatar
      Update from John: · 18f575db
      Ben Avison authored
      > Further mods to make sure that directory naming/renaming cannot attach
      > the ,xxx filetyping.
      
      Version 2.28. Tagged as 'LanManFS-2_28'
      18f575db
  10. 19 Dec, 2003 1 commit
  11. 16 Jan, 2003 1 commit
    • Robert Sprowson's avatar
      Directory rename fixed - the mask being passed by the rename routine didn't... · 99169885
      Robert Sprowson authored
      Directory rename fixed - the mask being passed by the rename routine didn't have the ATTR_DIR bit set.Discovered this after reading lots of the spec which is also now included here in /doc.
      
      Copying files out of LanManFS filer "forgot" their filetype even though
      they appeared right in the filer,fixed.
      A stray debugging printf removed,along with one compiler warning.
      New sprites (yuck) to match !Omni.
      Reordered the shutdown in two places,first Omni_Shutdown bins the mounts
      lists which SMB_Shutdown uses.Second in NetBEUI mode the announcement that
      a protocol has terminated goes *after* the shutdown - otherwise you sit
      around for about 20s wondering where the link has gone.
      
      Version 2.25. Tagged as 'LanManFS-2_25'
      99169885
  12. 01 Mar, 1999 1 commit
    • Stewart Brodie's avatar
      New *LMLS command. · 9ec1ae87
      Stewart Brodie authored
        Fix for ./.. files in short filename shares.
        Long multiply now provided in assembler.
      Detail:
        *LMLS is a new filesystem-specific command which performs the same
          task as "smbclient -L" does under UNIX - ie. listing all the shares
          available on the specified host.
        When enumerating the shares on a remote server, LanManFS now remembers
          all the printers, IPC, device and disc shares (for *LMLS to output).
        The 32x32->64 multiply routine is now provided in assembler instead of
          the previous huge amount of obscure C taken from NSPRLib.  This is
          more understandable (and almost certainly far smaller and quicker
          and doesn't need a hack to stop the compiler mis-optimising it!)
        Old short filename shares still had problems with the . and .. file
          filtering.  Programmer fault there - should've let the compiler do
          the optimisations :-)
        Server info string fixed to byte-reverse the port numbers when printing
          the string into the info buffer.  Now claims to be talking to port 139
          as it should.
      Admin:
        Tested in general desktop use for several days, plus experimental versions
          tested in other boot ROMs.
      
      Version 2.03. Tagged as 'LanManFS-2_03'
      9ec1ae87
  13. 18 Feb, 1999 1 commit
    • Stewart Brodie's avatar
      Bad check for . and .. fixed. · ea06b765
      Stewart Brodie authored
      Detail:
        Any filename starting with . was being hidden.
      Admin:
        Tested.  Confirmed . and .. are not there but files such as .rhosts
          are visible.
      
      Version 2.01. Tagged as 'LanManFS-2_01'
      ea06b765
  14. 16 Feb, 1999 1 commit
    • Stewart Brodie's avatar
      Support for long filename. · d49e6981
      Stewart Brodie authored
        Support for spaces in machine names.
        Merge of sbrodie_LanManFS_dev branch to trunk.
      Detail:
        LanManFS 2.00 supports the "NT LM 0.12" protocol, enabling it to
          use long filenames on mounted shares.
      Admin:
        Supporting documentation:
          1215,256/FS: LanManFS Software Functional Specification.
        Same as LanManFS-1_87_1_1_1_1_2_13.
      
      Version 2.00. Tagged as 'LanManFS-2_00'
      d49e6981
  15. 03 Dec, 1998 1 commit