File indexing completed on 2024-04-14 03:57:38
0001 /* 0002 SPDX-FileCopyrightText: 2012-2013 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 "tunsetting.h" 0008 #include "tunsetting_p.h" 0009 0010 #include <QDebug> 0011 0012 NetworkManager::TunSettingPrivate::TunSettingPrivate() 0013 : name(NM_SETTING_TUN_SETTING_NAME) 0014 , mode(TunSetting::Tun) 0015 , multiQueue(false) 0016 , pi(false) 0017 , vnetHdr(false) 0018 { 0019 } 0020 0021 NetworkManager::TunSetting::TunSetting() 0022 : Setting(Setting::Tun) 0023 , d_ptr(new TunSettingPrivate()) 0024 { 0025 } 0026 0027 NetworkManager::TunSetting::TunSetting(const Ptr &other) 0028 : Setting(other) 0029 , d_ptr(new TunSettingPrivate()) 0030 { 0031 setGroup(other->group()); 0032 setMode(other->mode()); 0033 setMultiQueue(other->multiQueue()); 0034 setOwner(other->owner()); 0035 setPi(other->pi()); 0036 setVnetHdr(other->vnetHdr()); 0037 } 0038 0039 NetworkManager::TunSetting::~TunSetting() 0040 { 0041 delete d_ptr; 0042 } 0043 0044 QString NetworkManager::TunSetting::name() const 0045 { 0046 Q_D(const TunSetting); 0047 0048 return d->name; 0049 } 0050 0051 void NetworkManager::TunSetting::setGroup(const QString &group) 0052 { 0053 Q_D(TunSetting); 0054 0055 d->group = group; 0056 } 0057 0058 QString NetworkManager::TunSetting::group() const 0059 { 0060 Q_D(const TunSetting); 0061 0062 return d->group; 0063 } 0064 0065 void NetworkManager::TunSetting::setMode(NetworkManager::TunSetting::Mode mode) 0066 { 0067 Q_D(TunSetting); 0068 0069 d->mode = mode; 0070 } 0071 0072 NetworkManager::TunSetting::Mode NetworkManager::TunSetting::mode() const 0073 { 0074 Q_D(const TunSetting); 0075 0076 return d->mode; 0077 } 0078 0079 void NetworkManager::TunSetting::setMultiQueue(bool multiQueue) 0080 { 0081 Q_D(TunSetting); 0082 0083 d->multiQueue = multiQueue; 0084 } 0085 0086 bool NetworkManager::TunSetting::multiQueue() const 0087 { 0088 Q_D(const TunSetting); 0089 0090 return d->multiQueue; 0091 } 0092 0093 void NetworkManager::TunSetting::setOwner(const QString &owner) 0094 { 0095 Q_D(TunSetting); 0096 0097 d->owner = owner; 0098 } 0099 0100 QString NetworkManager::TunSetting::owner() const 0101 { 0102 Q_D(const TunSetting); 0103 0104 return d->owner; 0105 } 0106 0107 void NetworkManager::TunSetting::setPi(bool pi) 0108 { 0109 Q_D(TunSetting); 0110 0111 d->pi = pi; 0112 } 0113 0114 bool NetworkManager::TunSetting::pi() const 0115 { 0116 Q_D(const TunSetting); 0117 0118 return d->pi; 0119 } 0120 0121 void NetworkManager::TunSetting::setVnetHdr(bool vnetHdr) 0122 { 0123 Q_D(TunSetting); 0124 0125 d->vnetHdr = vnetHdr; 0126 } 0127 0128 bool NetworkManager::TunSetting::vnetHdr() const 0129 { 0130 Q_D(const TunSetting); 0131 0132 return d->vnetHdr; 0133 } 0134 0135 void NetworkManager::TunSetting::fromMap(const QVariantMap &setting) 0136 { 0137 if (setting.contains(QLatin1String(NM_SETTING_TUN_GROUP))) { 0138 setGroup(setting.value(QLatin1String(NM_SETTING_TUN_GROUP)).toString()); 0139 } 0140 0141 if (setting.contains(QLatin1String(NM_SETTING_TUN_MODE))) { 0142 setMode((Mode)setting.value(QLatin1String(NM_SETTING_TUN_MODE)).toUInt()); 0143 } 0144 0145 if (setting.contains(QLatin1String(NM_SETTING_TUN_MULTI_QUEUE))) { 0146 setMultiQueue(setting.value(QLatin1String(NM_SETTING_TUN_MULTI_QUEUE)).toBool()); 0147 } 0148 0149 if (setting.contains(QLatin1String(NM_SETTING_TUN_OWNER))) { 0150 setOwner(setting.value(QLatin1String(NM_SETTING_TUN_OWNER)).toString()); 0151 } 0152 0153 if (setting.contains(QLatin1String(NM_SETTING_TUN_PI))) { 0154 setPi(setting.value(QLatin1String(NM_SETTING_TUN_PI)).toBool()); 0155 } 0156 0157 if (setting.contains(QLatin1String(NM_SETTING_TUN_VNET_HDR))) { 0158 setVnetHdr(setting.value(QLatin1String(NM_SETTING_TUN_VNET_HDR)).toBool()); 0159 } 0160 } 0161 0162 QVariantMap NetworkManager::TunSetting::toMap() const 0163 { 0164 QVariantMap setting; 0165 0166 if (!group().isEmpty()) { 0167 setting.insert(QLatin1String(NM_SETTING_TUN_GROUP), group()); 0168 } 0169 0170 setting.insert(QLatin1String(NM_SETTING_TUN_MODE), (int)mode()); 0171 setting.insert(QLatin1String(NM_SETTING_TUN_MULTI_QUEUE), multiQueue()); 0172 0173 if (!owner().isEmpty()) { 0174 setting.insert(QLatin1String(NM_SETTING_TUN_OWNER), owner()); 0175 } 0176 0177 setting.insert(QLatin1String(NM_SETTING_TUN_PI), pi()); 0178 setting.insert(QLatin1String(NM_SETTING_TUN_VNET_HDR), vnetHdr()); 0179 0180 return setting; 0181 } 0182 0183 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::TunSetting &setting) 0184 { 0185 dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n'; 0186 dbg.nospace() << "initialized: " << !setting.isNull() << '\n'; 0187 0188 dbg.nospace() << NM_SETTING_TUN_GROUP << ": " << setting.group() << '\n'; 0189 dbg.nospace() << NM_SETTING_TUN_MODE << ": " << setting.mode() << '\n'; 0190 dbg.nospace() << NM_SETTING_TUN_MULTI_QUEUE << ": " << setting.multiQueue() << '\n'; 0191 dbg.nospace() << NM_SETTING_TUN_OWNER << ": " << setting.owner() << '\n'; 0192 dbg.nospace() << NM_SETTING_TUN_PI << ": " << setting.pi() << '\n'; 0193 dbg.nospace() << NM_SETTING_TUN_VNET_HDR << ": " << setting.vnetHdr() << '\n'; 0194 0195 return dbg.maybeSpace(); 0196 }