File indexing completed on 2025-03-23 12:49:51
0001 /* 0002 SPDX-FileCopyrightText: 2017 Jan Grulich <jgrulich@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "device_p.h" 0008 #include "iptunneldevice_p.h" 0009 #include "manager.h" 0010 0011 NetworkManager::IpTunnelDevicePrivate::IpTunnelDevicePrivate(const QString &path, IpTunnelDevice *q) 0012 : DevicePrivate(path, q) 0013 #ifdef NMQT_STATIC 0014 , iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::sessionBus()) 0015 #else 0016 , iface(NetworkManagerPrivate::DBUS_SERVICE, path, QDBusConnection::systemBus()) 0017 #endif 0018 { 0019 } 0020 0021 NetworkManager::IpTunnelDevicePrivate::~IpTunnelDevicePrivate() 0022 { 0023 } 0024 0025 NetworkManager::IpTunnelDevice::IpTunnelDevice(const QString &path, QObject *parent) 0026 : Device(*new IpTunnelDevicePrivate(path, this), parent) 0027 { 0028 Q_D(IpTunnelDevice); 0029 0030 QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path); 0031 if (!initialProperties.isEmpty()) { 0032 d->propertiesChanged(initialProperties); 0033 } 0034 0035 } 0036 0037 NetworkManager::IpTunnelDevice::~IpTunnelDevice() 0038 { 0039 } 0040 0041 NetworkManager::Device::Type NetworkManager::IpTunnelDevice::type() const 0042 { 0043 return NetworkManager::Device::IpTunnel; 0044 } 0045 0046 uchar NetworkManager::IpTunnelDevice::encapsulationLimit() const 0047 { 0048 Q_D(const IpTunnelDevice); 0049 return d->encapsulationLimit; 0050 } 0051 0052 uint NetworkManager::IpTunnelDevice::flowLabel() const 0053 { 0054 Q_D(const IpTunnelDevice); 0055 return d->flowLabel; 0056 } 0057 0058 QString NetworkManager::IpTunnelDevice::inputKey() const 0059 { 0060 Q_D(const IpTunnelDevice); 0061 return d->inputKey; 0062 } 0063 0064 QString NetworkManager::IpTunnelDevice::local() const 0065 { 0066 Q_D(const IpTunnelDevice); 0067 return d->local; 0068 } 0069 0070 uint NetworkManager::IpTunnelDevice::mode() const 0071 { 0072 Q_D(const IpTunnelDevice); 0073 return d->mode; 0074 } 0075 0076 QString NetworkManager::IpTunnelDevice::outputKey() const 0077 { 0078 Q_D(const IpTunnelDevice); 0079 return d->outputKey; 0080 } 0081 0082 NetworkManager::Device::Ptr NetworkManager::IpTunnelDevice::parent() const 0083 { 0084 Q_D(const IpTunnelDevice); 0085 return NetworkManager::findNetworkInterface(d->parent); 0086 } 0087 0088 bool NetworkManager::IpTunnelDevice::pathMtuDiscovery() const 0089 { 0090 Q_D(const IpTunnelDevice); 0091 return d->pathMtuDiscovery; 0092 } 0093 0094 QString NetworkManager::IpTunnelDevice::remote() const 0095 { 0096 Q_D(const IpTunnelDevice); 0097 return d->remote; 0098 } 0099 0100 uchar NetworkManager::IpTunnelDevice::tos() const 0101 { 0102 Q_D(const IpTunnelDevice); 0103 return d->tos; 0104 } 0105 0106 uchar NetworkManager::IpTunnelDevice::ttl() const 0107 { 0108 Q_D(const IpTunnelDevice); 0109 return d->ttl; 0110 } 0111 0112 void NetworkManager::IpTunnelDevicePrivate::propertyChanged(const QString &property, const QVariant &value) 0113 { 0114 Q_Q(IpTunnelDevice); 0115 0116 if (property == QLatin1String("EncapsulationLimit")) { 0117 encapsulationLimit = static_cast<ushort>(value.toUInt()); 0118 Q_EMIT q->encapsulationLimitChanged(encapsulationLimit); 0119 } else if (property == QLatin1String("FlowLabel")) { 0120 flowLabel = value.toUInt(); 0121 Q_EMIT q->flowLabelChanged(flowLabel); 0122 } else if (property == QLatin1String("InputKey")) { 0123 inputKey = value.toString(); 0124 Q_EMIT q->inputKeyChanged(inputKey); 0125 } else if (property == QLatin1String("Local")) { 0126 local = value.toString(); 0127 Q_EMIT q->localChanged(local); 0128 } else if (property == QLatin1String("Mode")) { 0129 mode = value.toUInt(); 0130 Q_EMIT q->modeChanged(mode); 0131 } else if (property == QLatin1String("OutputKey")) { 0132 outputKey = value.toString(); 0133 Q_EMIT q->outputKeyChanged(outputKey); 0134 } else if (property == QLatin1String("Parent")) { 0135 parent = value.toString(); 0136 Q_EMIT q->parentChanged(parent); 0137 } else if (property == QLatin1String("PathMtuDiscovery")) { 0138 pathMtuDiscovery = value.toBool(); 0139 Q_EMIT q->pathMtuDiscoveryChanged(pathMtuDiscovery); 0140 } else if (property == QLatin1String("Remote")) { 0141 remote = value.toString(); 0142 Q_EMIT q->remoteChanged(remote); 0143 } else if (property == QLatin1String("Tos")) { 0144 tos = static_cast<ushort>(value.toUInt()); 0145 Q_EMIT q->tosChanged(tos); 0146 } else if (property == QLatin1String("Ttl")) { 0147 ttl = static_cast<ushort>(value.toUInt()); 0148 Q_EMIT q->ttlChanged(ttl); 0149 } else { 0150 DevicePrivate::propertyChanged(property, value); 0151 } 0152 } 0153 0154 #include "moc_iptunneldevice.cpp" 0155 #include "moc_iptunneldevice_p.cpp"