1. 27 Apr, 2020 1 commit
    • Harald Sitter's avatar
      smb: accurately attempt to resolve the correct WSD host · a4aefbbd
      Harald Sitter authored
      this previously was the wrong variable. m_current_url is only set after
      url checking while kurl would be the current url under check. this lead
      to state confusion was implicit stat() calls from dolphin on host foo would
      evaluate the previous host (e.g. bar) for the wsd suffix. this meant we'll
      let a foo with suffix pass through the check, and that just mustn't ever
      happen.
      
      BUG: 420578
      FIXED-IN: 20.04.1
      a4aefbbd
  2. 06 Apr, 2020 2 commits
    • Harald Sitter's avatar
      smb: add hack to support spaces in workgroup names · f40191a1
      Harald Sitter authored
      Summary:
      workgroup names are as best I can tell always still netbios names which
      means they can contain a bunch of characters ordinarily not found in valid
      host names. e.g. spaces
      this causes trouble with the IANA SMB URI draft, as used by libsmbc,
      since the workgroup would be the host field of the RI when browsing
      a workgroup (i.e. filtering hosts that are member of a given workgroup)
      because QUrl does not allow invalid hostnames in the host field.
      
      to bypass this problem we now put the workgroup name into the query of the
      url as `kio-workgroup`, should it cause trouble in the host field. SMBUrl
      takes this query into account when constructing the url for smbc.
      since the latter has uniquely exciting potential for breakage this entire
      dance is only done when absolutely necessary and otherwise we continue with
      all the same code and behavior as without this commit.
      
      on a side note: the awkward name flexibility seems to not extend to
      computer names anymore (supposedly because of LLMNR) so this entire
      use case is already very niche as we (and libsmbclient) currently only
      support workgroup browsing for NT1 networks, and NT1 is by default not
      supported on windows10 or samba.
      
      FIXED-IN: 20.04
      BUG: 204423
      
      Test Plan: builds, test passes, can browse workgroup with space in name
      
      Reviewers: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel, thiago
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27804
      f40191a1
    • Harald Sitter's avatar
      smb: use prettyname.kio-discovery-wsd for hostname of wsdiscoveries · daec307b
      Harald Sitter authored
      Summary:
      previously we simply used the ip address. this is fairly awkward though.
      instead try to deduce a resolvable host name from the pretty name.
      
      at discovery time we now mark wsdiscovieres for special handling
      
      at listDir time we then attempt to resolve the name.local and if that
      fails strip the .local to get the presumed LLMNR/netbios name. this means
      the (first) listDir may be slower while we try to find a working hostname
      but discovery is still as fast as possible.
      
      Test Plan: wsdd on linux server resolves as expected, wsd on win10 also resolves as expected
      
      Reviewers: ngraham, meven
      
      Reviewed By: ngraham, meven
      
      Subscribers: kossebau, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D28513
      daec307b
  3. 25 Mar, 2020 1 commit
    • Harald Sitter's avatar
      smb: add some more topical debug output on opendir failure · 6ab34e5c
      Harald Sitter authored
      the output seen in https://bugs.kde.org/show_bug.cgi?id=419038 isn't
      nearly useful enough.
      
      - log the actual errnum (i.e. errno) after opendir
      - if the dirfd is negative log the approximate steps to recover
      
      specifically we end up with errnum==0 in reportError which makes no sense
      whatsoever and from the output it's not currently obvious which call
      chain lead to that scenario. possibly should be changed to assert even,
      not doing that for now though because I want this in 20.04
      6ab34e5c
  4. 19 Mar, 2020 1 commit
    • Harald Sitter's avatar
      smb: guard against duplicated service discoveries · ba96d3b9
      Harald Sitter authored
      Summary:
      if both dnssd and wsdiscovery have the same server on offer we'd create
      duplicated entries. instead keep track of the discovered names and only
      use the first discovery. notably happens when using wsdd on linux where
      samba would also register itself on dnssd.
      
      for ease of access and to not have to roundtrip through udsentry, discovery
      objects now have a udsName function that is meant to be the exact name
      used for the udsentry.
      
      Test Plan:
      - have samba
      - run wsdd.py from https://github.com/christgau/wsdd
      - server only shows up once
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D28078
      ba96d3b9
  5. 18 Mar, 2020 1 commit
    • Harald Sitter's avatar
      update smburl usage · 938d3888
      Harald Sitter authored
      after the diff was made and sitting in review, the smburl diff was
      changed to feature refined api. forgot to update the readdirplus2 diff tho
      938d3888
  6. 16 Mar, 2020 3 commits
    • Harald Sitter's avatar
      fix readdirplus ifdef coverage · 8f45f13d
      Harald Sitter authored
      when using readdirplus we do not need to iter SMBC_FILE|DIR so we can
      skip the entire else if. previously this was off by one line, breaking
      the logic
      8f45f13d
    • Harald Sitter's avatar
      style++ · 7cc854ae
      Harald Sitter authored
      GIT_SILENT
      7cc854ae
    • Harald Sitter's avatar
      add readdirplus2 support for samba>=4.12 · ec40cd6e
      Harald Sitter authored
      Summary:
      unlike the dirent itering we do not need a separate stat call with this
      new api by instead itering on what are effectively stat-like objects.
      
      this simply runs before the regular itering which we still use to list
      shares and workgroups. browse_stat_path has been split into stat and
      udsentry-construction-from-stat so it can be used across both code
      paths.
      
      fun fact on the side: if there actually was a stat() api that returned
      libsmb_file_info, we could use that as well and forget about the stats
      structs in general :S
      
      BUG: 402988
      FIXED-IN: 20.04.0
      
      Test Plan:
      - build samba 4.12 rc
      - list server
      - list share
      - list dir in share
      
      - on 4.7
      - all of the above
      
      Reviewers: ngraham, asn
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27520
      
      # Conflicts:
      #	smb/CMakeLists.txt
      #	smb/kio_smb.h
      #	smb/kio_smb_browse.cpp
      ec40cd6e
  7. 06 Mar, 2020 1 commit
    • Harald Sitter's avatar
      smb: add a unit test for smburl · d8d92670
      Harald Sitter authored
      Summary:
      only tests some of the obvious scenarios I can see right now.
      
      ::cd() has been changed to only support going up one path element. it's
      all we need it for and the previous code was almost certainly incorrect
      by calling setUrl with input that is definitely not anywhere near a valid
      url
      
      Test Plan: builds and test passes
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: apol, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27801
      d8d92670
  8. 03 Mar, 2020 3 commits
    • David Edmundson's avatar
      Correctly disable UDS_ACCESS being set · 01e442c7
      David Edmundson authored
      Summary:
      718abcb6 tries to disable UDS_ACCESS
      being set. See the long comment introduced.
      
      It did this by setting the value to -1 which doesn't achieve that
      result.
      
      -1 is a perfectly valid value that gets send to the client.
      
      Having it set breaks anyone calling udsEntry.numberValue(UDS_ACCESS,
      aLegitimateDefault) getting their default. Something used by kio-fuse.
      
      Test Plan:
      Used kio-fuse
      Opened a samba file in mplayer
      It opened
      
      Opened a text editor in kate (using regular kio)
      
      Reviewers: sitter, feverfew
      
      Reviewed By: sitter
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27810
      01e442c7
    • Harald Sitter's avatar
      smb: rename internal files to smburl · 3edefb83
      Harald Sitter authored
      they only contain smburl anyway and naming files accordingly makes the
      code base a bit easier to grasp
      3edefb83
    • Harald Sitter's avatar
      smb: ecm clang-format the entire code base · a1775f44
      Harald Sitter authored
      Summary:
      over the past 20 years smb has gathered a whole bunch of different
      styles with varying indention and code styles. time to unify again
      
      I've done some cherry picking of the clang-format run since it had
      a tendency of worsening some long lines.
      
      Test Plan: builds and still lists stuff
      
      Reviewers: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27676
      a1775f44
  9. 26 Feb, 2020 2 commits
    • Harald Sitter's avatar
      smb: apply a whole bunch of static analyzer improvements · 70f2dc85
      Harald Sitter authored
      Summary:
      among other things:
      
      - {} initialize the posix structs
      - =default d/ctors where appropriate
      - synced argument names between header and cpp
      - no c-style casting
      - while(true) instead of while(1)
      - initialize class members that could previously have gone uninitialized
      - no single-line-multi-variable declaration
      
      Test Plan: builds
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27646
      70f2dc85
    • Harald Sitter's avatar
      smb: do not hide enum warnings via switch default label · d0e16b83
      Harald Sitter authored
      Summary:
      should we ever extend the url types the compiler will not warn us that
      the new type may need handling. instead return when we have handled
      a type so the fallback can be moved after the switch
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27644
      d0e16b83
  10. 24 Feb, 2020 1 commit
    • Harald Sitter's avatar
      add initial wsdiscovery support · 41397521
      Harald Sitter authored
      Summary:
      needs kdsoap >= 1.8.50 (current master).
      builds a static variant of kdsoap-ws-discovery-client but can also
      use system's version if available.
      
      also reinvents how discovery works:
      there are now Discoverers for dnssd and wsd that get started/stopped.
      the Discoverers discover servers and emit them as Discoveries. Discoveries
      are then converted to udsentries for kio.
      
      BUG: 392447
      FIXED-IN: 20.04.0
      
      Test Plan:
      discover all the things!
      
      - windows 10 test vm with remote address
      - https://github.com/christgau/wsdd on remote host
      - avahi smb on remote host
      
      Reviewers: dfaure, #frameworks, #dolphin, ngraham
      
      Reviewed By: dfaure, ngraham
      
      Subscribers: meven, schmeisser, bcooksley, ngraham, caspermeijn, davidedmundson, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D25682
      41397521
  11. 14 Feb, 2020 3 commits
    • Harald Sitter's avatar
      smb: map EHOSTUNREACH to ERR_CANNOT_CONNECT · a813d67c
      Harald Sitter authored
      Summary:
      same as the ftp does. in fact, also steal the error message qtcpsocket
      produces. effectively this makes smb://unavailableipaddress spit out
      exactly the same error as ftp://unavailableipaddress
      
      host unreachable being so vague, the pretty string continues to be vague
      as well unfortunately.
      
      BUG: 417166
      FIXED-IN: 20.08.0
      
      Test Plan: error upon accessing the unassigned address 192.168.1.99 is same between smb and ftp
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27378
      a813d67c
    • Harald Sitter's avatar
      smb: disable mode bits getting forwarded to KIO · 718abcb6
      Harald Sitter authored
      Summary:
      mode bits in libsmb_stat are fairly cheaply constructed. file and directory
      qualification is alright, beyond that it is a bit of a shambles.
      specifically +W is set iff the DOS attribute READONLY isn't set, but
      that attribute doesn't mean what we think it means, at least not on
      NT+ systems. see exhaustive comment.
      
      long story short: we cannot represent mode bits accurately because NT's
      access controls simply do not map to posix mode bits. therefore I'm
      removing the mode setting for the udsentry, making all entries effectively
      writable.
      
      whether an entry truly is writable is hard to say anyway. specifically
      because SMB+NTFS have independent ACLs. so, the SMB ACL may allow a
      given user or group to do something, that doesn't mean they'll also
      have permissions on a file system level.
      
      BUG: 414482
      FIXED-IN: 19.12.3
      
      Test Plan:
      previously not writable shares as described in the bug report are now writable.
      permission dialog looks a bit meh now, it wasn't really designed around not knowing
      what the access situation is. gnome simply shows a "dunno what permissions we have" label
      instead of everything, that seems like a reasonable approach
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: dfaure, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27372
      718abcb6
    • Harald Sitter's avatar
      smb: map ECONNABORTED to ERR_CONNECTION_BROKEN · 2075e763
      Harald Sitter authored
      Summary:
      seems the most reasonable candidate given the pretty strings in
      KIO::buildErrorString and the detailed causes in the detail function.
      
      this does not really improve the error message, but should dolphin
      ever learn to pick up details from detailedErrorStrings it would make
      diagnosing easier.
      
      ECONNABORTED can mean any number of things, so I guess a signle line
      error will always be incredibly vague.
      
      BUG: 415436
      FIXED-IN: 19.12.3
      
      Test Plan: hoping for the best!
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27377
      2075e763
  12. 13 Feb, 2020 5 commits
    • Harald Sitter's avatar
      smb: install smb as both smb:// and cifs:// · a5f51238
      Harald Sitter authored
      Summary:
      the latter while not IANA registered is apparently used in places. to
      cheaply support it we now configure the protocol file for both protocol
      'smb' and 'cifs' and installing two protocol files. they are still both
      backed by the same plugin and otherwise the same.
      code-wise this also required adjustments to the URL validation tech as
      it has hardcoded checks for smb schemes.
      
      FIXED-IN: 19.12.3
      BUG: 327295
      
      Test Plan:
      - cifs://host/share
      - cifs://host
      - cifs://
      
      all open correctly. they do get translated to smb because of the checkUrl code.
      
      checkUrl seems entirely pointless, SMBUrl does a bit of validation/fixing as part of
      updateCache. It occurs to me checkUrl should simply be incorporated into SMBUrl
      and we should construct an SMBUrl where we previously called checkUrl. before doing
      anything of value we construct SMBUrls anyway, so the isolated logic does absolutely
      nothing SMBUrl couldn't do just as well. also needs a unit test -.- ... too much
      refactoring for a bugfix though
      
      Reviewers: dfaure, ngraham
      
      Reviewed By: ngraham
      
      Subscribers: meven, feverfew, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27291
      a5f51238
    • Harald Sitter's avatar
      smb: set the share comment as UDS_COMMENT for the UI to display · dddafae5
      Harald Sitter authored
      Summary:
      currently this seems to not really have any visibility through dolphin
      so concluding the fix also requires changes to dolphin to enable the
      comment somewhere. it is technically a column in the details view but
      that doesn't actually seem to work
      
      CCBUG: 105086
      
      Test Plan: hoping for the best in absence of a UI!
      
      Reviewers: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27292
      dddafae5
    • Harald Sitter's avatar
      smb: do not map uid and gid · 25a02064
      Harald Sitter authored
      Summary:
      libsmbc returns the uid/gid of the process, not of the file, the data
      is entirely useless to us. do not list it.
      currently there is no way to get the actual uid/gid of a dirent. internally
      there seems to be tech available that uses the samba unix extension but
      that doesn't have any public API.
      
      in short: we can't determine ownership client-side
      
      BUG: 212801
      
      Test Plan: no longer shows current user as owner. in particular when that is not true!
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27293
      25a02064
    • Harald Sitter's avatar
      smb: fix free space calculation · 6832817f
      Harald Sitter authored
      Summary:
      - collapse statvfs call, there's no purpose in manually opening the file
        when libsmbc has a convenience wrapper that does exactly what we need
        with less code on our end
      - blockSize is now calculated as per the conditional branches in
        smbc_stat.c
      - free space calculation is now backwards compatible with slightly busted
        legacy versions of libsmbc not setting f_bavail
      
      FIXED-IN: 19.12.3
      BUG: 298801
      
      Test Plan: free space calculation now works with windows10, ubuntu18.04, ubuntu19.10
      
      Reviewers: ngraham, meven
      
      Reviewed By: ngraham, meven
      
      Subscribers: meven, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27294
      6832817f
    • Harald Sitter's avatar
      smb: support more advanced hidden file flag · e2eadb75
      Harald Sitter authored
      Summary:
      smb attaches different meaning to the +x flags of files to represent DOS
      style flags. read them and hide hidden files. we currently have no
      KIO backing for the others but for documentation purpose I've mentioned
      them in detail so we can extend this in the future without having
      to descend into samba docs.
      
      FIXED-IN: 19.12.3
      BUG: 307353
      
      Test Plan:
      - set jpgs hidden as described in bug report
      - they are now hidden in dolphin
      
      Reviewers: ngraham
      
      Reviewed By: ngraham
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D27295
      e2eadb75
  13. 07 Jan, 2020 1 commit
  14. 23 Nov, 2019 1 commit
  15. 19 Nov, 2019 1 commit
  16. 08 Oct, 2019 1 commit
    • Harald Sitter's avatar
      improve error reporting for when kpasswdserver is unreachable · 5a870554
      Harald Sitter authored
      Summary:
      previously we'd not forward the errors coming out of the password dialog
      helper and instead eventually end up on generic access denied errors.
      seeing as the access denied is likely because we couldn't query auth info
      that is fairly misleading.
      
      checkPassword is now returning an error code instead of a bool. when we
      actually consider checkPassword an error we'll now raise this error
      instead of the generic access denied errors. when the user canceled
      the query we'll continue to raise the more topical error from smb (e.g.
      "access denied")
      
      primarily these errors appear when kiod/kpasswdserver is defunct
      or not installed meaning query functionality will not work at all.
      
      Test Plan:
      # broken kiod
      
      - remove dbus service file
      - kill
      - dolphin smb://host
      - no auth query
      - error about broken dialog
      
      # cancel
      
      - repair kiod
      - dolphin smb://host
      - auth query
      - cancel
      - auth query
      - cancel
      - error about access denied (because refused to authenticate)
      
      Reviewers: #frameworks, dfaure
      
      Reviewed By: dfaure
      
      Subscribers: ngraham, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D24387
      5a870554
  17. 07 Jan, 2019 1 commit
  18. 07 Dec, 2018 1 commit
    • Harald Sitter's avatar
      fallback to dnssd service discovery if smb listDir failed on root · 55eb68ff
      Harald Sitter authored
      Summary:
      This elevates a problem with newer SMB protocol versions and smbclient
      not supporting discovery/browsing. when not using older (as in:
      ancient) protocol versions discovery doesn't work and smb:/ gives no
      results.
      
      By falling back to DNSSD based discovery we can ensure discovery of DNSSD
      remotes (namely linux and osx) is always working. Windows unfortunately
      does not support DNSSD and as such will not benefit from this mode of
      discovery and continue to be unlisted when using a protocol version
      without browsing support.
      
      CHANGELOG: When SMB Discovery is not working (protocol > SMB1) host discovery will now fall back to DNS-SD/Avahi/Bonjour.
      
      CCBUG: 392447
      CCBUG: 390551
      
      Test Plan:
      smb.conf:
      
      ```
      [global]
      client min protocol = SMB2
      ```
      
      Lists devices
      
      Reviewers: #frameworks, #dolphin, broulik
      
      Reviewed By: broulik
      
      Subscribers: acrouthamel, alexde, bcooksley, ngraham, kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D16299
      55eb68ff
  19. 17 Oct, 2018 3 commits
    • Harald Sitter's avatar
      apply eexist workaround from listDir to stat as well · 76402b7c
      Harald Sitter authored
      Summary:
      knetattach stats() without first doing a listDir() so in the event that
      the url requires authentication it won't work and error out on the EEXISTS.
      listDir has a fallback hack for this which was missing from stat.
      
      stat now has this workaround as well and correctly brings up an auth
      dialog on shares that require it.
      
      BUG: 399699
      
      Test Plan:
      - knetattach
      - smb
      - data for host (folder should require auth)
      - save and connect
      - auth dialog comes up
      - enter details
      - ok
      - works
      
      Reviewers: broulik
      
      Reviewed By: broulik
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D16272
      76402b7c
    • Harald Sitter's avatar
      apply eexist workaround from listDir to stat as well · cf34ba60
      Harald Sitter authored
      Summary:
      knetattach stats() without first doing a listDir() so in the event that
      the url requires authentication it won't work and error out on the EEXISTS.
      listDir has a fallback hack for this which was missing from stat.
      
      stat now has this workaround as well and correctly brings up an auth
      dialog on shares that require it.
      
      BUG: 399699
      
      Test Plan:
      - knetattach
      - smb
      - data for host (folder should require auth)
      - save and connect
      - auth dialog comes up
      - enter details
      - ok
      - works
      
      Reviewers: broulik
      
      Reviewed By: broulik
      
      Subscribers: kde-frameworks-devel, kfm-devel
      
      Tags: #dolphin, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D16272
      cf34ba60
    • Kai Uwe Broulik's avatar
      Avoid crash by not checking free space for smb:// · 767415da
      Kai Uwe Broulik authored
      This isn't a real location but the overview of all found hosts.
      smbc_opendir would succeed but then crash in smbc_fstatvfs
      
      Differential Revision: https://phabricator.kde.org/D15142
      
      (cherry picked from commit 000b1d91)
      767415da
  20. 08 Oct, 2018 1 commit
  21. 31 Aug, 2018 1 commit
  22. 17 Jul, 2018 1 commit
  23. 01 Nov, 2017 1 commit
  24. 21 Oct, 2017 1 commit
    • David Edmundson's avatar
      Fix smb:/ handling · 859ed4f1
      David Edmundson authored
      Summary:
      smb:// is a URL with no host and no path
      smb:/// is a URL with no host, but a valid path
      
      The current code special cases smb:/ which isn't a real thing.
      
      This results in smb:// falling through checkURL() and being incorrectly
      modified into smb:/// creating a URL with a host, something different.
      
      This code makes any smb:/ get converted into smb:// at the right place.
      Then the special case for having no host or path are handled properly.
      
      Test Plan: https://paste.kde.org/pfpwrlxva
      
      Reviewers: apol, madcatx, elvisangelaccio, ngraham
      
      Reviewed By: elvisangelaccio, ngraham
      
      Subscribers: ngraham
      
      Differential Revision: https://phabricator.kde.org/D8141
      859ed4f1
  25. 18 Jul, 2017 2 commits