1/*
2 SPDX-FileCopyrightText: 2011 Mario Bensi <mbensi@ipsquad.net>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#include "fstabnetworkshare.h"
8#include "fstabhandling.h"
9#include <solid/devices/backends/fstab/fstabdevice.h>
10
11using namespace Solid::Backends::Fstab;
12
13FstabNetworkShare::FstabNetworkShare(Solid::Backends::Fstab::FstabDevice *device)
14 : QObject(device)
15 , m_fstabDevice(device)
16{
17 QString url;
18 if (m_fstabDevice->device().startsWith(s: QLatin1String("//"))) {
19 QString fsType = FstabHandling::fstype(device: m_fstabDevice->device());
20 if (fsType == QLatin1String("cifs")) {
21 m_type = Solid::NetworkShare::Cifs;
22 } else if (fsType == QLatin1String("smb3")) {
23 m_type = Solid::NetworkShare::Smb3;
24 }
25 url = QStringLiteral("smb:%1").arg(a: m_fstabDevice->device());
26 // The device ID is in "url:mountpoint" format, so strip the mountpoint
27 url = url.left(n: url.lastIndexOf(QStringLiteral(":/")));
28 } else if (m_fstabDevice->device().contains(s: QLatin1String(":/"))) {
29 m_type = Solid::NetworkShare::Nfs;
30 url = QStringLiteral("nfs://%1/%2").arg(args: m_fstabDevice->vendor(), args: m_fstabDevice->product());
31 } else {
32 m_type = Solid::NetworkShare::Unknown;
33 }
34 m_url = QUrl(url);
35}
36
37FstabNetworkShare::~FstabNetworkShare()
38{
39}
40
41Solid::NetworkShare::ShareType FstabNetworkShare::type() const
42{
43 return m_type;
44}
45
46QUrl FstabNetworkShare::url() const
47{
48 return m_url;
49}
50
51const Solid::Backends::Fstab::FstabDevice *FstabNetworkShare::fstabDevice() const
52{
53 return m_fstabDevice;
54}
55
56#include "moc_fstabnetworkshare.cpp"
57

source code of solid/src/solid/devices/backends/fstab/fstabnetworkshare.cpp