File indexing completed on 2024-04-21 04:00:05

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 "pppsetting.h"
0008 #include "pppsetting_p.h"
0009 
0010 #include <QDebug>
0011 
0012 NetworkManager::PppSettingPrivate::PppSettingPrivate()
0013     : name(NM_SETTING_PPP_SETTING_NAME)
0014     , noauth(true)
0015     , refuseEap(false)
0016     , refusePap(false)
0017     , refuseChap(false)
0018     , refuseMschap(false)
0019     , refuseMschapv2(false)
0020     , nobsdcomp(false)
0021     , nodeflate(false)
0022     , noVjComp(false)
0023     , requireMppe(false)
0024     , requireMppe128(false)
0025     , mppeStateful(false)
0026     , crtscts(false)
0027     , baud(0)
0028     , mru(0)
0029     , mtu(0)
0030     , lcpEchoFailure(0)
0031     , lcpEchoInterval(0)
0032 {
0033 }
0034 
0035 NetworkManager::PppSetting::PppSetting()
0036     : Setting(Setting::Ppp)
0037     , d_ptr(new PppSettingPrivate())
0038 {
0039 }
0040 
0041 NetworkManager::PppSetting::PppSetting(const Ptr &other)
0042     : Setting(other)
0043     , d_ptr(new PppSettingPrivate())
0044 {
0045     setNoAuth(other->noAuth());
0046     setRefuseEap(other->refuseEap());
0047     setRefusePap(other->refusePap());
0048     setRefuseChap(other->refuseChap());
0049     setRefuseMschap(other->refuseMschap());
0050     setRefuseMschapv2(other->refuseMschapv2());
0051     setNoBsdComp(other->noBsdComp());
0052     setNoDeflate(other->noDeflate());
0053     setNoVjComp(other->noVjComp());
0054     setRequireMppe(other->requireMppe());
0055     setRequireMppe128(other->requireMppe128());
0056     setMppeStateful(other->mppeStateful());
0057     setCRtsCts(other->cRtsCts());
0058     setBaud(other->baud());
0059     setMru(other->mru());
0060     setMtu(other->mtu());
0061     setLcpEchoFailure(other->lcpEchoFailure());
0062     setLcpEchoInterval(other->lcpEchoInterval());
0063 }
0064 
0065 NetworkManager::PppSetting::~PppSetting()
0066 {
0067     delete d_ptr;
0068 }
0069 
0070 QString NetworkManager::PppSetting::name() const
0071 {
0072     Q_D(const PppSetting);
0073 
0074     return d->name;
0075 }
0076 
0077 void NetworkManager::PppSetting::setNoAuth(bool require)
0078 {
0079     Q_D(PppSetting);
0080 
0081     d->noauth = require;
0082 }
0083 
0084 bool NetworkManager::PppSetting::noAuth() const
0085 {
0086     Q_D(const PppSetting);
0087 
0088     return d->noauth;
0089 }
0090 
0091 void NetworkManager::PppSetting::setRefuseEap(bool refuse)
0092 {
0093     Q_D(PppSetting);
0094 
0095     d->refuseEap = refuse;
0096 }
0097 
0098 bool NetworkManager::PppSetting::refuseEap() const
0099 {
0100     Q_D(const PppSetting);
0101 
0102     return d->refuseEap;
0103 }
0104 
0105 void NetworkManager::PppSetting::setRefusePap(bool refuse)
0106 {
0107     Q_D(PppSetting);
0108 
0109     d->refusePap = refuse;
0110 }
0111 
0112 bool NetworkManager::PppSetting::refusePap() const
0113 {
0114     Q_D(const PppSetting);
0115 
0116     return d->refusePap;
0117 }
0118 
0119 void NetworkManager::PppSetting::setRefuseChap(bool refuse)
0120 {
0121     Q_D(PppSetting);
0122 
0123     d->refuseChap = refuse;
0124 }
0125 
0126 bool NetworkManager::PppSetting::refuseChap() const
0127 {
0128     Q_D(const PppSetting);
0129 
0130     return d->refuseChap;
0131 }
0132 
0133 void NetworkManager::PppSetting::setRefuseMschap(bool refuse)
0134 {
0135     Q_D(PppSetting);
0136 
0137     d->refuseMschap = refuse;
0138 }
0139 
0140 bool NetworkManager::PppSetting::refuseMschap() const
0141 {
0142     Q_D(const PppSetting);
0143 
0144     return d->refuseMschap;
0145 }
0146 
0147 void NetworkManager::PppSetting::setRefuseMschapv2(bool refuse)
0148 {
0149     Q_D(PppSetting);
0150 
0151     d->refuseMschapv2 = refuse;
0152 }
0153 
0154 bool NetworkManager::PppSetting::refuseMschapv2() const
0155 {
0156     Q_D(const PppSetting);
0157 
0158     return d->refuseMschapv2;
0159 }
0160 
0161 void NetworkManager::PppSetting::setNoBsdComp(bool require)
0162 {
0163     Q_D(PppSetting);
0164 
0165     d->nobsdcomp = require;
0166 }
0167 
0168 bool NetworkManager::PppSetting::noBsdComp() const
0169 {
0170     Q_D(const PppSetting);
0171 
0172     return d->nobsdcomp;
0173 }
0174 
0175 void NetworkManager::PppSetting::setNoDeflate(bool require)
0176 {
0177     Q_D(PppSetting);
0178 
0179     d->nodeflate = require;
0180 }
0181 
0182 bool NetworkManager::PppSetting::noDeflate() const
0183 {
0184     Q_D(const PppSetting);
0185 
0186     return d->nodeflate;
0187 }
0188 
0189 void NetworkManager::PppSetting::setNoVjComp(bool require)
0190 {
0191     Q_D(PppSetting);
0192 
0193     d->noVjComp = require;
0194 }
0195 
0196 bool NetworkManager::PppSetting::noVjComp() const
0197 {
0198     Q_D(const PppSetting);
0199 
0200     return d->noVjComp;
0201 }
0202 
0203 void NetworkManager::PppSetting::setRequireMppe(bool require)
0204 {
0205     Q_D(PppSetting);
0206 
0207     d->requireMppe = require;
0208 }
0209 
0210 bool NetworkManager::PppSetting::requireMppe() const
0211 {
0212     Q_D(const PppSetting);
0213 
0214     return d->requireMppe;
0215 }
0216 
0217 void NetworkManager::PppSetting::setRequireMppe128(bool require)
0218 {
0219     Q_D(PppSetting);
0220 
0221     d->requireMppe128 = require;
0222 }
0223 
0224 bool NetworkManager::PppSetting::requireMppe128() const
0225 {
0226     Q_D(const PppSetting);
0227 
0228     return d->requireMppe128;
0229 }
0230 
0231 void NetworkManager::PppSetting::setMppeStateful(bool used)
0232 {
0233     Q_D(PppSetting);
0234 
0235     d->mppeStateful = used;
0236 }
0237 
0238 bool NetworkManager::PppSetting::mppeStateful() const
0239 {
0240     Q_D(const PppSetting);
0241 
0242     return d->mppeStateful;
0243 }
0244 
0245 void NetworkManager::PppSetting::setCRtsCts(bool control)
0246 {
0247     Q_D(PppSetting);
0248 
0249     d->crtscts = control;
0250 }
0251 
0252 bool NetworkManager::PppSetting::cRtsCts() const
0253 {
0254     Q_D(const PppSetting);
0255 
0256     return d->crtscts;
0257 }
0258 
0259 void NetworkManager::PppSetting::setBaud(quint32 baud)
0260 {
0261     Q_D(PppSetting);
0262 
0263     d->baud = baud;
0264 }
0265 
0266 quint32 NetworkManager::PppSetting::baud() const
0267 {
0268     Q_D(const PppSetting);
0269 
0270     return d->baud;
0271 }
0272 
0273 void NetworkManager::PppSetting::setMru(quint32 mru)
0274 {
0275     Q_D(PppSetting);
0276 
0277     d->mru = mru;
0278 }
0279 
0280 quint32 NetworkManager::PppSetting::mru() const
0281 {
0282     Q_D(const PppSetting);
0283 
0284     return d->mru;
0285 }
0286 
0287 void NetworkManager::PppSetting::setMtu(quint32 mtu)
0288 {
0289     Q_D(PppSetting);
0290 
0291     d->mtu = mtu;
0292 }
0293 
0294 quint32 NetworkManager::PppSetting::mtu() const
0295 {
0296     Q_D(const PppSetting);
0297 
0298     return d->mtu;
0299 }
0300 
0301 void NetworkManager::PppSetting::setLcpEchoFailure(quint32 number)
0302 {
0303     Q_D(PppSetting);
0304 
0305     d->lcpEchoFailure = number;
0306 }
0307 
0308 quint32 NetworkManager::PppSetting::lcpEchoFailure() const
0309 {
0310     Q_D(const PppSetting);
0311 
0312     return d->lcpEchoFailure;
0313 }
0314 
0315 void NetworkManager::PppSetting::setLcpEchoInterval(quint32 interval)
0316 {
0317     Q_D(PppSetting);
0318 
0319     d->lcpEchoInterval = interval;
0320 }
0321 
0322 quint32 NetworkManager::PppSetting::lcpEchoInterval() const
0323 {
0324     Q_D(const PppSetting);
0325 
0326     return d->lcpEchoInterval;
0327 }
0328 
0329 void NetworkManager::PppSetting::fromMap(const QVariantMap &setting)
0330 {
0331     if (setting.contains(QLatin1String(NM_SETTING_PPP_NOAUTH))) {
0332         setNoAuth(setting.value(QLatin1String(NM_SETTING_PPP_NOAUTH)).toBool());
0333     }
0334 
0335     if (setting.contains(QLatin1String(NM_SETTING_PPP_REFUSE_EAP))) {
0336         setRefuseEap(setting.value(QLatin1String(NM_SETTING_PPP_REFUSE_EAP)).toBool());
0337     }
0338 
0339     if (setting.contains(QLatin1String(NM_SETTING_PPP_REFUSE_PAP))) {
0340         setRefusePap(setting.value(QLatin1String(NM_SETTING_PPP_REFUSE_PAP)).toBool());
0341     }
0342 
0343     if (setting.contains(QLatin1String(NM_SETTING_PPP_REFUSE_CHAP))) {
0344         setRefuseChap(setting.value(QLatin1String(NM_SETTING_PPP_REFUSE_CHAP)).toBool());
0345     }
0346 
0347     if (setting.contains(QLatin1String(NM_SETTING_PPP_REFUSE_MSCHAP))) {
0348         setRefuseMschap(setting.value(QLatin1String(NM_SETTING_PPP_REFUSE_MSCHAP)).toBool());
0349     }
0350 
0351     if (setting.contains(QLatin1String(NM_SETTING_PPP_REFUSE_MSCHAPV2))) {
0352         setRefuseMschapv2(setting.value(QLatin1String(NM_SETTING_PPP_REFUSE_MSCHAPV2)).toBool());
0353     }
0354 
0355     if (setting.contains(QLatin1String(NM_SETTING_PPP_NOBSDCOMP))) {
0356         setNoBsdComp(setting.value(QLatin1String(NM_SETTING_PPP_NOBSDCOMP)).toBool());
0357     }
0358 
0359     if (setting.contains(QLatin1String(NM_SETTING_PPP_NODEFLATE))) {
0360         setNoDeflate(setting.value(QLatin1String(NM_SETTING_PPP_NODEFLATE)).toBool());
0361     }
0362 
0363     if (setting.contains(QLatin1String(NM_SETTING_PPP_NO_VJ_COMP))) {
0364         setNoVjComp(setting.value(QLatin1String(NM_SETTING_PPP_NO_VJ_COMP)).toBool());
0365     }
0366 
0367     if (setting.contains(QLatin1String(NM_SETTING_PPP_REQUIRE_MPPE))) {
0368         setRequireMppe(setting.value(QLatin1String(NM_SETTING_PPP_REQUIRE_MPPE)).toBool());
0369     }
0370 
0371     if (setting.contains(QLatin1String(NM_SETTING_PPP_REQUIRE_MPPE_128))) {
0372         setRequireMppe128(setting.value(QLatin1String(NM_SETTING_PPP_REQUIRE_MPPE_128)).toBool());
0373     }
0374 
0375     if (setting.contains(QLatin1String(NM_SETTING_PPP_MPPE_STATEFUL))) {
0376         setMppeStateful(setting.value(QLatin1String(NM_SETTING_PPP_MPPE_STATEFUL)).toBool());
0377     }
0378 
0379     if (setting.contains(QLatin1String(NM_SETTING_PPP_CRTSCTS))) {
0380         setCRtsCts(setting.value(QLatin1String(NM_SETTING_PPP_CRTSCTS)).toBool());
0381     }
0382 
0383     if (setting.contains(QLatin1String(NM_SETTING_PPP_BAUD))) {
0384         setBaud(setting.value(QLatin1String(NM_SETTING_PPP_BAUD)).toUInt());
0385     }
0386 
0387     if (setting.contains(QLatin1String(NM_SETTING_PPP_MRU))) {
0388         setMru(setting.value(QLatin1String(NM_SETTING_PPP_MRU)).toUInt());
0389     }
0390 
0391     if (setting.contains(QLatin1String(NM_SETTING_PPP_MTU))) {
0392         setMtu(setting.value(QLatin1String(NM_SETTING_PPP_MTU)).toUInt());
0393     }
0394 
0395     if (setting.contains(QLatin1String(NM_SETTING_PPP_LCP_ECHO_FAILURE))) {
0396         setLcpEchoFailure(setting.value(QLatin1String(NM_SETTING_PPP_LCP_ECHO_FAILURE)).toUInt());
0397     }
0398 
0399     if (setting.contains(QLatin1String(NM_SETTING_PPP_LCP_ECHO_INTERVAL))) {
0400         setLcpEchoInterval(setting.value(QLatin1String(NM_SETTING_PPP_LCP_ECHO_INTERVAL)).toUInt());
0401     }
0402 }
0403 
0404 QVariantMap NetworkManager::PppSetting::toMap() const
0405 {
0406     QVariantMap setting;
0407 
0408     if (!noAuth()) {
0409         setting.insert(QLatin1String(NM_SETTING_PPP_NOAUTH), noAuth());
0410     }
0411 
0412     if (refuseEap()) {
0413         setting.insert(QLatin1String(NM_SETTING_PPP_REFUSE_EAP), refuseEap());
0414     }
0415 
0416     if (refusePap()) {
0417         setting.insert(QLatin1String(NM_SETTING_PPP_REFUSE_PAP), refusePap());
0418     }
0419 
0420     if (refuseChap()) {
0421         setting.insert(QLatin1String(NM_SETTING_PPP_REFUSE_CHAP), refuseChap());
0422     }
0423 
0424     if (refuseMschap()) {
0425         setting.insert(QLatin1String(NM_SETTING_PPP_REFUSE_MSCHAP), refuseMschap());
0426     }
0427 
0428     if (refuseMschapv2()) {
0429         setting.insert(QLatin1String(NM_SETTING_PPP_REFUSE_MSCHAPV2), refuseMschapv2());
0430     }
0431 
0432     if (noBsdComp()) {
0433         setting.insert(QLatin1String(NM_SETTING_PPP_NOBSDCOMP), noBsdComp());
0434     }
0435 
0436     if (noDeflate()) {
0437         setting.insert(QLatin1String(NM_SETTING_PPP_NODEFLATE), noDeflate());
0438     }
0439 
0440     if (noVjComp()) {
0441         setting.insert(QLatin1String(NM_SETTING_PPP_NO_VJ_COMP), noVjComp());
0442     }
0443 
0444     if (requireMppe()) {
0445         setting.insert(QLatin1String(NM_SETTING_PPP_REQUIRE_MPPE), requireMppe());
0446     }
0447 
0448     if (requireMppe128()) {
0449         setting.insert(QLatin1String(NM_SETTING_PPP_REQUIRE_MPPE_128), requireMppe128());
0450     }
0451 
0452     if (mppeStateful()) {
0453         setting.insert(QLatin1String(NM_SETTING_PPP_MPPE_STATEFUL), mppeStateful());
0454     }
0455 
0456     if (cRtsCts()) {
0457         setting.insert(QLatin1String(NM_SETTING_PPP_CRTSCTS), cRtsCts());
0458     }
0459 
0460     if (baud()) {
0461         setting.insert(QLatin1String(NM_SETTING_PPP_BAUD), baud());
0462     }
0463 
0464     if (mru()) {
0465         setting.insert(QLatin1String(NM_SETTING_PPP_MRU), mru());
0466     }
0467 
0468     if (mtu()) {
0469         setting.insert(QLatin1String(NM_SETTING_PPP_MTU), mtu());
0470     }
0471 
0472     if (lcpEchoFailure()) {
0473         setting.insert(QLatin1String(NM_SETTING_PPP_LCP_ECHO_FAILURE), lcpEchoFailure());
0474     }
0475 
0476     if (lcpEchoInterval()) {
0477         setting.insert(QLatin1String(NM_SETTING_PPP_LCP_ECHO_INTERVAL), lcpEchoInterval());
0478     }
0479 
0480     return setting;
0481 }
0482 
0483 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::PppSetting &setting)
0484 {
0485     dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n';
0486     dbg.nospace() << "initialized: " << !setting.isNull() << '\n';
0487 
0488     dbg.nospace() << NM_SETTING_PPP_NOAUTH << ": " << setting.noAuth() << '\n';
0489     dbg.nospace() << NM_SETTING_PPP_REFUSE_EAP << ": " << setting.refuseEap() << '\n';
0490     dbg.nospace() << NM_SETTING_PPP_REFUSE_PAP << ": " << setting.refusePap() << '\n';
0491     dbg.nospace() << NM_SETTING_PPP_REFUSE_CHAP << ": " << setting.refuseChap() << '\n';
0492     dbg.nospace() << NM_SETTING_PPP_REFUSE_MSCHAP << ": " << setting.refuseMschap() << '\n';
0493     dbg.nospace() << NM_SETTING_PPP_REFUSE_MSCHAPV2 << ": " << setting.refuseMschapv2() << '\n';
0494     dbg.nospace() << NM_SETTING_PPP_NOBSDCOMP << ": " << setting.noBsdComp() << '\n';
0495     dbg.nospace() << NM_SETTING_PPP_NODEFLATE << ": " << setting.noDeflate() << '\n';
0496     dbg.nospace() << NM_SETTING_PPP_NO_VJ_COMP << ": " << setting.noVjComp() << '\n';
0497     dbg.nospace() << NM_SETTING_PPP_REQUIRE_MPPE << ": " << setting.requireMppe() << '\n';
0498     dbg.nospace() << NM_SETTING_PPP_REQUIRE_MPPE_128 << ": " << setting.requireMppe128() << '\n';
0499     dbg.nospace() << NM_SETTING_PPP_MPPE_STATEFUL << ": " << setting.mppeStateful() << '\n';
0500     dbg.nospace() << NM_SETTING_PPP_CRTSCTS << ": " << setting.cRtsCts() << '\n';
0501     dbg.nospace() << NM_SETTING_PPP_BAUD << ": " << setting.baud() << '\n';
0502     dbg.nospace() << NM_SETTING_PPP_MRU << ": " << setting.mru() << '\n';
0503     dbg.nospace() << NM_SETTING_PPP_MTU << ": " << setting.mtu() << '\n';
0504     dbg.nospace() << NM_SETTING_PPP_LCP_ECHO_FAILURE << ": " << setting.lcpEchoFailure() << '\n';
0505     dbg.nospace() << NM_SETTING_PPP_LCP_ECHO_INTERVAL << ": " << setting.lcpEchoInterval() << '\n';
0506 
0507     return dbg.maybeSpace();
0508 }