1. 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'
  2. 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'
  3. 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'
  4. 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'
  5. 14 Apr, 2012 1 commit
  6. 14 Dec, 2011 1 commit
  7. 15 Oct, 2011 1 commit
    • Robert Sprowson's avatar
      Fix for *INFO dates not matching *EX dates · a0fb97c2
      Robert Sprowson authored
      These two displays take different code paths, and *INFO goes via a check to workaround a bug in Win98 servers. Unfortunately, the check no longer works because Microsoft don't return the '.' and '..' entries in SMB Trans2 FIND_FIRST, and the logic previously always set the "need to frig the dates" flag. Now, the flag is only set if something comes back and after doing a test swap the results are also correct.
      Turned on the 'auto close Trans2 FIND_FIRST' flag in the request block to save having to do a second transaction to close it.
      Swapped the LDMFD/STMFD for Push and Pull in the assembler.
      Tested against WinXP SP3, dates are no longer bonkers.
      Version 2.35. Tagged as 'LanManFS-2_35'
  8. 01 Aug, 2009 1 commit
    • Robert Sprowson's avatar
      Fix for renames where only the case has changed. · 0dabebbd
      Robert Sprowson authored
       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.
       Made the non LONGNAMES version compile again (not tested).
       Removed local definitions of FSControl reason codes, uses Interface header
       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'
  9. 19 Jul, 2009 1 commit
    • Robert Sprowson's avatar
      Workaround for NTFS returning resume keys of zero. · d1ca5496
      Robert Sprowson authored
        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
        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.
        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'
  10. 15 Apr, 2009 2 commits
    • Ben Avison's avatar
      Multiple fixes. · 186192a3
      Ben Avison authored
        Too many to list here: see doc/RPSChanges.
        Received from Rob Sprowson approx 2009-02-08. Builds, but not tested by ROOL.
      Version 2.32. Tagged as 'LanManFS-2_32'
    • Ben Avison's avatar
      Compatibility change for Microsoft security fix MS09-001. · 3ba506cd
      Ben Avison authored
        Security fix MS09-001 (detailed in Microsoft Knowledge base article KB958687)
        fixes some vulnerabilities in the SMB protocol which LanManFS uses. This
        highlighted an error in SMB_WriteRaw which reported zero data bytes but then
        supplied an offset to the non existant bytes: this is now faulted by Windows.
        As there are no data bytes, the offset should also be zero.
        Fix received from Rob Sprowson 2009-01-19.
      Version 2.31. Tagged as 'LanManFS-2_31'
  11. 16 Feb, 2004 1 commit
  12. 09 Jan, 2004 1 commit
    • Ben Avison's avatar
      Changes from John. · ac44a2cf
      Ben Avison authored
        > 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.
        Not tested here yet.
      Version 2.29. Tagged as 'LanManFS-2_29'
  13. 07 Jan, 2004 3 commits
  14. 19 Dec, 2003 1 commit
  15. 11 Mar, 2003 1 commit
    • Kevin Bracey's avatar
      Tightened up checking of when sockets get opened and closed in an attempt to... · 527b760b
      Kevin Bracey authored
      Tightened up checking of when sockets get opened and closed in an attempt to work out why Freeway gets upset when LanManFS is configured in IP mode.
      Changed app date that OmniClient shows to be dd-mmm-yy
      Added ability to include slimmer ROMSPRITES and deleted the resources
      phase from the makefile: the sprites were being included once in
      ResourceFS and again embedded in the module.
      If the FS is unset it says so in *status rather than a blank line.
      Version 2.26. Tagged as 'LanManFS-2_26'
  16. 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'
  17. 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
      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'
  18. 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'
  19. 08 Jun, 2001 1 commit
  20. 01 Jun, 2001 1 commit
  21. 02 Apr, 2001 1 commit
    • Stewart Brodie's avatar
      Added explicit dependencies on the automatically generated header. · 6b48a8f3
      Stewart Brodie authored
        Due to re-ordering of object files, the CMHG header wasn't being
          generated by the time it was first required for inclusion.  Static
          dependencies have been added to fix this.  This is going to affect
          a lot of components which rely on amu's odd order to processing
          object files (back to front compared to other makes).
        Fixes Bugzilla bug #4064
        Tested manually.
      Version 2.20. Tagged as 'LanManFS-2_20'
  22. 13 Mar, 2001 1 commit
    • Stewart Brodie's avatar
      Moved Sprites file into sensible place. · ce3a8aea
      Stewart Brodie authored
        Removed BBE specific rules due to above change obsoleting it.
        Requires Library 0.70 or later (RiscOS/Library; Library-0_70)
      Version 2.19. Tagged as 'LanManFS-2_19'
  23. 15 Jan, 2001 1 commit
    • Stewart Brodie's avatar
      Experimental change to handle Internet modules in flash. · ddf40c33
      Stewart Brodie authored
        This module was ignoring the possibility of the Internet module being
          re-initialised underneath it - something which can happen if there
          is an Internet module in flash as well as main ROM.  This is an
          experimental fix for this problem.
        Not tested.
      Version 2.18. Tagged as 'LanManFS-2_18'
  24. 09 Jan, 2001 1 commit
    • Stewart Brodie's avatar
      Fixed bug in parsing of the protocol negotiation. · 4b49606e
      Stewart Brodie authored
        The wrong bit was being checked to see if we were using the extended
          security model (CAP_EXTENDED_SECURITY).  Thus the wrong format was
          being used in SMBsesssetup, which meant that we couldn't connect
          to Windows 2000.
        Much better debugging added to the name resolution code - this helped
          diagnose the faulty photocopier problem and is left in case anything
          like that happens again!
        Tested - I can now connect to Win 2000 shares.
      Version 2.17. Tagged as 'LanManFS-2_17'
  25. 14 Dec, 2000 1 commit
    • Neil Bingham's avatar
      BBE support. · 75b9fa03
      Neil Bingham authored
        Private bbe rule to deal with Ant putting files in the wrong place :-(
        Resource files should be in Resources/... and not in the component root.
        Tested on Fun8JP Source & BBE builds.
      Version 2.16. Tagged as 'LanManFS-2_16'
  26. 25 Aug, 2000 1 commit
    • Stewart Brodie's avatar
      Fixed some incorrect symbol names. · c0fd0009
      Stewart Brodie authored
        Some symbol names were wrong which only showed up in ROM builds.
        Tested in Ursula ROM build, and tested RAM build.
      Version 2.15. Tagged as 'LanManFS-2_15'
  27. 11 Aug, 2000 2 commits
    • Stewart Brodie's avatar
      Re-instated the modsqz'ing of RAM modules · fc2b925c
      Stewart Brodie authored
    • Stewart Brodie's avatar
      New build option to exclude NetBEUI support. · 61345d56
      Stewart Brodie authored
        Pass OPTIONS=-DNO_NETBEUI from the Components file if you do not need
          NetBEUI support, and LanManFS will be 12K smaller.
        In NetBEUI mode, LanManFS sends Service_DCIProtocolStatus as required.
        In IP mode, LanManFS notices Service_DCIProtocolStatus from the Internet
          module when it dies and marks all its sockets as needing reconnection.
        Booting behaviour changed to look for !ArmBoot again and not attempt
          the boot if it is missing.  Removed lots of grotty backdoor hacks
          that used to be used to determine this.
        Not tested at all.  This will need very thorough testing before it can
          be considered for release.
      Version 2.14. Tagged as 'LanManFS-2_14'
  28. 08 Aug, 2000 2 commits
    • Stewart Brodie's avatar
      Calls LLC_Shutdown if NetBIOS's _NB_Startup is going to fail. · 6adc491d
      Stewart Brodie authored
        NB_Startup was failing to stop the LLC timers if the function
          was going to fail after hooking onto TickerV.  This meant that
          if LanManFS never found an appropriate driver for NetBIOS use,
          then killing the module resulted in repeated aborts when the
          TickerV handler has invoked.
        Fixes Bugzilla bug #26
      Version 2.13. Tagged as 'LanManFS-2_13'
    • Stewart Brodie's avatar
      Fixed machine stiff if connection left idle too long. · 4fc58c21
      Stewart Brodie authored
        SVC stack overflow occurred due to the recursive method used to
          discard the idle-out prevention responses.  This no longer
        Fixed a bit of debugging which caused data aborts!
        Optimised a select() call to pass s + 1 as the first parameter to
          save Internet time in processing the fd_set.
        Tested on desktop build, with the idle timers set to send idle outs
          every second (so we don't have to wait 100 hours for the problem
          to occur).  No longer get problems with the machine stiffing.
      Version 2.12. Tagged as 'LanManFS-2_12'
  29. 04 Apr, 2000 1 commit
    • Stewart Brodie's avatar
      Fixed use of uninitialised pointer. · 01a3f774
      Stewart Brodie authored
        Now doesn't require that the !ArmBoot object is a directory
        The code in Omni.c was carefully checking that !ARMBOOT existed
          before attempting to run the boot file.  Unfortunately, it was
          using a method which bypassed the filename resolution (that does
          the ,xxx filetype name mapping), so it did not find the new Obey
          file in the 400 series baseline.  The check has been removed.
        The code in SMB.c was being caught out on an uninitialised variable
          usage when the attribute cache already held details of the object
          being sought.  The variable would have been initialised on a non-
          cached lookup, but the special case of booting a machine via LanManFS
          manages to get a cached lookup without having run through the routine
          before, resulting in a strcpy() with a destination of 0.
        Tested on Risc PC.
        Fixes fault 1511 (STB-400 Generic)
      Version 2.11. Tagged as 'LanManFS-2_11'
  30. 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
        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.
        Tested briefly on desktop build against art-work's SAMBA server.
        Bug reported by TopCat engineers.
      Version 2.10. Tagged as 'LanManFS-2_10'
  31. 29 Nov, 1999 1 commit
    • Stewart Brodie's avatar
      32-bit compatibility added. · c6e5fb1a
      Stewart Brodie authored
        Removed obsolete header files.
        Removed obsolete assembler.
        Fixed flag preservation in remaining assembler.
        See above.
        Built RAM build.
      Version 2.09. Tagged as 'LanManFS-2_09'
  32. 09 Nov, 1999 1 commit
    • Neil Bingham's avatar
      Updated makefile rules. · 3718f3fa
      Neil Bingham authored
        Added Install phase to Makefile.
        Added !MkInstall.
        Tested on FastNC Ethernet card build.
      Version 2.08. Tagged as 'LanManFS-2_08'
  33. 29 Apr, 1999 1 commit
    • Stewart Brodie's avatar
      Now uses DebugLib. · 6ce2ce71
      Stewart Brodie authored
        Fixed search handle haemorrhaging.
        The directory lookup routines cached directory search handles to avoid
          hammering the server with repeated requests to open directories.
          Unfortunately, it was possible for these to be forgotten without
          being freed up leading to resource loss at the server end.  Eventually,
          the server gives up servicing you and reports errors.  This will only
          occur once a significant number of accesses have been performed (the
          number depends entirely on server configuration).  This leak is now
        Tested against Cerium - debug reports that no handles are being leaked.
      Version 2.07. Tagged as 'LanManFS-2_07'
  34. 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.
        Fixes hard space->space mismapping.
        Doesn't leak sockets during startup if driver isn't ready.
        Check-in of previously uncommitted bug fixes to get final version number
      Version 2.06. Tagged as 'LanManFS-2_06'
  35. 16 Mar, 1999 1 commit
    • Stewart Brodie's avatar
      No longer assumes that it should attach itself to eh0 if it cannot find a driver. · 698e4170
      Stewart Brodie authored
        The module used to have specific knowledge of the driver to which it
          was supposed to bind if it was unable to find any active drivers at
          the time that LanManFS was initialised.  This meant that if the
          LanManFS module was placed in ROM (eg. in STB3) and the drivers
          hadn't initialised by the time that LanManFS was initialised, it
          would sit and wait for EtherH to arrive - which doesn't happen
          for ATM solutions, and doesn't happen for Ethernet in STB3 because
          we no longer use EtherH!
        Tested in STB22 expansion cards, and in STB3 ROM builds for both
          Ethernet and ATM solutions.
      Version 2.05. Tagged as 'LanManFS-2_05'