1. 28 Aug, 2021 1 commit
    • Robert Sprowson's avatar
      Preserve full load/exec for untyped files · ddfde4f4
      Robert Sprowson authored
      Rather than turning any untyped file into ",lxa" suffix (and in the reverse direction giving the base address of the Kernel back), support ",llllllll-xxxxxxxx" style suffixes like RPCEmu does in order to preserve the full load and execution addresses.
      
      Xlate.c: Extra code to parse the suffix, and simplification of existing suffix checkers.
      CoreFn.c/Xlate.h: Need to pass on the exec address too for when creating new files via Xlt_AddROType.
      Makefile/LanMan_MH: Case of CMHG file changed to match sources.
      
      Version 2.68. Tagged as 'OmniLanManFS-2_68'
      ddfde4f4
  2. 27 Apr, 2020 1 commit
    • Colin Granville's avatar
      Length of usernames and passwords increased · 3c1bc966
      Colin Granville authored
      Detail:
        Usernames on Windows can be email addresses which are longer than the 16 byte
        NAME_LIMIT so usernames and passwords are given their own name limit and
        this is increased to 64 bytes.
      Admin:
        Tested with Windows 10.
      
      Version 2.63. Tagged as 'OmniLanManFS-2_63'
      3c1bc966
  3. 04 Aug, 2018 1 commit
    • ROOL's avatar
      Fix for double name translation, header ordering · 873c2106
      ROOL authored
      Detail:
        Xlate.c: Directory names containing characters requiring translation (eg. "AcornC/C++", "A B/C") would be translated twice, leading to a 'Directory not found' error when trying to open a file within. Submission from Colin Granville.
        TCPIP.h: Order the headers so that 'netdb.h' comes after its dependents. Submission for TCP/IP bounty.
      Admin:
        Test case test/Contentious run, passed OK.
      
      Version 2.62. Tagged as 'LanManFS-2_62'
      873c2106
  4. 03 Jan, 2018 1 commit
    • Robert Sprowson's avatar
      Name resolution, wildcarded FSEntry_File 5 & 9, and buffer overrun fixes · 517c6bdb
      Robert Sprowson authored
      Make SMB_RxWords a bit bigger per static anaylsis
        https://www.riscosopen.org/forum/forums/4/topics/9503
      when LONGNAMES is undefined, since NT LM 0.12 dialect is allowed at the same time as short names.
      
      A change to name translation in LanManFS-2_60 broke all forms of nested contentious name resolution, ie. where a leafname containing a contentious character was itself in a directory containing one.
      The cited problem names ('1 2/3' and '1 /s') can both be resolved at one level only, no 2nd pass is required. The resolution function walks along the elements of the path one at a time to reach the leaf (ie. no element is processed twice). A test case has been created to allow some regression testing when making future changes in this area.
      
      When building tboxlibint
        Copy h.* <Lib$Dir>.tboxlibint.h.*
      when the directory is empty FileSwitch checks the destination ending in ...\h\* which the short names translation would error with ENOWILDCARD, but the long names translation attempts to resolve it by finding the trailing '\' and appending a '*' (ie. not doing anything), this returns no results and is passed back unfaulted. The special check in fsentry_file() for ENOWILDCARD for the two ReadCatalogueInformation thus doesn't trigger, and an attempt to FileGetAttribs() is made on the still wildcarded path. This is rejected by the server when in SMB_GetAttribsX2() does a TRANSACT2_QUERYPATHINFORMATION, which expects a non wildcarded object (on Windows servers at least), propagating an error back up to the user.
      This stopped a ROM build from completing the exports phase via LanManFS on a Windows share.
      
      Const-ify a few things.
      
      Changed files
        Xlate.c: Revert change from revision 1.21, return ENOWILDCARD when appropriate.
        SMC.c: Increase MAX_WCT buffer size to 17.
        UK/CmdHelp: Add some missing chevrons round the command syntax for required parameters.
        test/Contentious: Test case for nested contentious character resolution code.
      
      Version 2.61. Tagged as 'LanManFS-2_61'
      517c6bdb
  5. 23 Jan, 2017 1 commit
    • John Ballance's avatar
      Resolved issue where RISC OS name '1 2/3' gets wrongly translated. · 7587ab10
      John Ballance authored
      Detail:
      The translate routine that converts contentious characters in  a RiscOS
      file name to equivalent DOS ones was being invoked a second time. Normally
      this wouldn't be critical, but a / in riscos was converted to the . in DOS,
      correctly , then converted back again. This error mode with more than one
      contentious character in (particularly) a directory name had recently
      come to light.
      Admin:
      Tested by building a RiscOS rom image on a pc based LanManFS mount without
      errors.
      
      Version 2.60. Tagged as 'LanManFS-2_60'
      7587ab10
  6. 18 Aug, 2016 1 commit
    • Robert Sprowson's avatar
      Fix out-by-1 error reporting monitor name · 9904c568
      Robert Sprowson authored
      For *OPT1,2 the FS is supposed to report the leafname. LanManFS uses strrchr() to find the dot but hadn't incremented past it when returning the pointer.
      
      Version 2.57. Tagged as 'LanManFS-2_57'
      9904c568
  7. 14 Jul, 2014 1 commit
    • Robert Sprowson's avatar
      Sync up the error messages · 52ed32eb
      Robert Sprowson authored
      Due to an inability to count to 10 accurately, all the error tokens were wrong, leading to some inappropriate error messages.
      Fixes problem "Message token E13 not found" when the SMB server gives a DOS error back.
      
      Version 2.46. Tagged as 'LanManFS-2_46'
      52ed32eb
  8. 31 May, 2014 1 commit
    • Robert Sprowson's avatar
      Ammendments to short name translation table · 478370c8
      Robert Sprowson authored
      The table was ambiguously translating () to () and also [] to (). Now, we error names containing ,[] in the same manner as DOSFS.
      The substitutions for ^% have also been changed to match DOSFS so copying from one to the other doesn't give two representations if viewed on a PC.
      Marked both tables as const to save 512B of RMA.
      This change is slightly academic since most of the time the long filename resolution is in use.
      
      Tested against WinXP SP3 with a build with long filename support turned off.
      
      Version 2.45. Tagged as 'LanManFS-2_45'
      478370c8
  9. 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
  10. 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
  11. 21 Sep, 2012 1 commit
    • Robert Sprowson's avatar
      Fix reporting of unstamped file info · db8c11e7
      Robert Sprowson authored
      When a file ended in ',xxx' (unfinished DEADDEAD) or ',lxa' (load/execution addresses) LanManFS was correctly identifying these internally but at the last moment OR'd the result unconditionally with 0xFFF00000 when calculating the date stamp/access attributes.
      Now, an unstamped file will propagate the load & exec addresses properly.
      Tested with WinXP SP3 and a variety of hand constructed examples, plus copying a large file with the filer showed the incomplete file icon until done.
      
      Version 2.37. Tagged as 'LanManFS-2_37'
      db8c11e7
  12. 14 Apr, 2012 1 commit
  13. 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
  14. 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
  15. 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
  16. 09 Jan, 2004 1 commit
    • Ben Avison's avatar
      Changes from John. · ac44a2cf
      Ben Avison authored
      Detail:
        > Default filetype now text
        >
        > Default type given to any file that has neither a dos extent, nor a
        > ',xxx' riscos extent at the server
        >
        > Ensure that files given the default type never have a ',xxx' riscos
        > extent appended.
        >
        > Add environment variable 'LMDefaultType' which checked for a default
        > type on module initialisation .. thus setting this to (e.g.) dos, then
        > rmreinitting LanManFS will change the default type to (e.g.) dos.
      Admin:
        Not tested here yet.
      
      Version 2.29. Tagged as 'LanManFS-2_29'
      ac44a2cf
  17. 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
  18. 19 Dec, 2003 1 commit
  19. 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
  20. 16 Dec, 2002 1 commit
    • Robert Sprowson's avatar
      Removed some dubious filetyping logic. · fb9dd3be
      Robert Sprowson authored
      On saving a file if the type was text no filetype information was
      saved and instead it relied on the default for unknown filetypes being
      text.
      The default unknown filetype is now &FE4,plus the above logic would
      have conflicted with the MimeMap code if for example a file of type
      text was saved but which had an extension which was in the mimemap of
      type something other than text.
      
      Version 2.24. Tagged as 'LanManFS-2_24'
      fb9dd3be
  21. 14 Dec, 2002 1 commit
    • Robert Sprowson's avatar
      LanmanFS help syntax corrected and tidied · 49aac30b
      Robert Sprowson authored
      Change lmls command to ListFS in line with NFS
      Supress LF when ListFS is issued but there are no servers present.
      Cast a few things to shut some compiler warnings up.
      Addition of MimeMap lookups where the file has no ",ttt" style type
      appended.Previously any such files were all reported as text files so
      viewing a machine would typically show whole directories full of
      identical filetypes.
      
      Version 2.23. Tagged as 'LanManFS-2_23'
      49aac30b
  22. 21 Jan, 2000 1 commit
    • Stewart Brodie's avatar
      More tolerance has been added of files found on the remote server which have unexpected extensions. · 36543191
      Stewart Brodie authored
      Detail:
        LanManFS does not like it if you create (independently, using a PC or
          otherwise) files with names like "myfile,fff" which you intend to
          be displayed as files with type &FFF (ie. Text) on a RISC OS machine.
          If you tried to access the file for reading it, such as loading it
          into an editor, that worked due to the name matching resolution.
          However, any attempt to update the file caused LanManFS to attempt
          to write the file without the extension and not notice that a file
          with a ,fff extension already existed (Text files are special cased
          in the current implementation of name translation - see LanManFS
          Functional Specification for details and rationale).  Attempts to
          save typically succeed (giving you two files: myfile and myfile,fff)
          but generate "Operation not permitted" or such like.  This stemmed
          from the attempt being made by LanManFS to rename a file to the same
          name.  SMB_Rename now traps that and tells its caller that the rename
          succeeded.  The Xlate.c code now indicates correctly that the filename
          extension has been altered when a ,fff extension has to be chopped off.
      Admin:
        Tested briefly on desktop build against art-work's SAMBA server.
        Bug reported by TopCat engineers.
      
      Version 2.10. Tagged as 'LanManFS-2_10'
      36543191
  23. 19 Apr, 1999 1 commit
    • Stewart Brodie's avatar
      Socket leak fixed. · 2aa6c255
      Stewart Brodie authored
        Name mapping table modified to prefer mapping hard space to space.
      Detail:
        Fixes hard space->space mismapping.
        Doesn't leak sockets during startup if driver isn't ready.
      Admin:
        Check-in of previously uncommitted bug fixes to get final version number
      
      
      Version 2.06. Tagged as 'LanManFS-2_06'
      2aa6c255
  24. 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
  25. 03 Dec, 1998 1 commit