1. 31 Oct, 2020 1 commit
  2. 19 Oct, 2020 4 commits
  3. 14 Oct, 2020 1 commit
    • Harald Sitter's avatar
      smb: no discovery cap on file listing · c58fdc63
      Harald Sitter authored
      File and share listing can take a very long time as they are IO bound on
      the remote, so if one is listing a large directory on a HDD it may well
      take minutes. Equally sending huge listings over the wire may take a
      while if not enough throughput is available. So don't cap the execution
      of these discoveries at all.
      
      Server discovery retains the timeout, mostly because I don't want to
      remove it in 20.08 though an argument could be made that we should trust
      in the reliability of the discovery stacks to not get stuck on random
      unforseen misbehavior of servers.
      
      BUG: 427644
      FIXED-IN: 20.08.3
      c58fdc63
  4. 12 Oct, 2020 1 commit
  5. 05 Oct, 2020 1 commit
  6. 03 Oct, 2020 1 commit
  7. 25 Sep, 2020 1 commit
  8. 19 Sep, 2020 1 commit
  9. 12 Sep, 2020 1 commit
  10. 11 Sep, 2020 1 commit
  11. 31 Aug, 2020 1 commit
  12. 05 Aug, 2020 1 commit
  13. 31 Jul, 2020 1 commit
  14. 23 Jul, 2020 1 commit
  15. 22 Jul, 2020 1 commit
  16. 21 Jul, 2020 1 commit
  17. 11 Jul, 2020 1 commit
  18. 08 Jul, 2020 1 commit
  19. 01 Jul, 2020 1 commit
  20. 19 Jun, 2020 1 commit
  21. 18 Jun, 2020 1 commit
  22. 17 Jun, 2020 2 commits
  23. 08 Jun, 2020 3 commits
  24. 06 Jun, 2020 1 commit
  25. 04 Jun, 2020 2 commits
    • Harald Sitter's avatar
      55e47e71
    • Harald Sitter's avatar
      smb: refactor smbc discovery · c65aa7ef
      Harald Sitter authored
      this now too is based on the discovery design used for WSD and DNSSD.
      advantage being that we can then de-duplicate ALL discovieries through
      a single code path.
      
      since smbc technically is meant to be used in a dirent while(){} way I am
      pulling some tricks here to get this nicer balanced via the event loop.
      ideally smbc would be thread safe or at least allow for multiple contexts,
      but currently both scenarios aren't working due to upstream bugs :(
      so instead of actually blocking while looping each loop cycle is posted
      through the event loop. this gives the other discoverers a chance to
      get their signal events in and not get stuck waiting for smbc to do its
      thing.
      
      specifically also dnssd/wsd are started before smbc (if applicable anyway)
      so they get a head start speed things up quite a bit as previously
      they had to wait for smbc to do a full listing.
      
      the discoverer discovers a new smbcdiscovery which isn't terribly
      interesting but allows for a much more readable loop logic. furthermore
      the readdirplus2 ifdefs have been shuffled a bit, also with the goal
      of easing readability.
      c65aa7ef
  26. 02 Jun, 2020 2 commits
  27. 01 Jun, 2020 1 commit
  28. 30 May, 2020 1 commit
  29. 29 May, 2020 1 commit
  30. 27 May, 2020 1 commit
  31. 25 May, 2020 1 commit
  32. 19 May, 2020 1 commit
    • Harald Sitter's avatar
      smb: reshuffle discovery systems · 4e41727c
      Harald Sitter authored
      the modern discoveries were conditional on smbc_opendir succeeding but
      that is rather silly since smbc can fail on ENOENT if (for example)
      netbios is disabled. since top level server discovery may happen through
      all or none of NB/DNSSD/WSD that made no sense as even when NB fails
      we may be able to produce service listing through one of the other two
      discovery services.
      
      this piece of code would actually benefit from major refactoring because
      all three discovery systems should actually run at the same time while
      currently NB holds up the entire show. alas, too invasive for 20.04...
      so, reshuffling it is:
      
      smbc_opendir still runs initially. after that, if the url is browsing
      smb:// we'll jump into modern discovery. any errors produced by opendir
      will be ignored! authentication errors and the like cannot happen for
      smb:// because we aren't yet talking to any one server, which leaves
      actual browsing errors which are not fatal considering we have other
      options.
      for non-top-level urls we'll otherwise jump into error handling (e.g.
      server requires auth or something)
      at the end if we haven't returned early with an error we'll inject our
      `.` entries as per usual
      
      test plan:
      - add `disable netbios = yes` to smb.conf
      - browse network
      - discovers dnssd/wsd servers
      - also works with the option removed again
      
      BUG: 421624
      
      FIXED-IN: 20.04.2
      4e41727c