File indexing completed on 2024-03-24 04:02:51
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 #ifndef NETWORKMANAGERQT_IPV4_SETTING_H 0008 #define NETWORKMANAGERQT_IPV4_SETTING_H 0009 0010 #include "ipconfig.h" 0011 #include "setting.h" 0012 #include <networkmanagerqt/networkmanagerqt_export.h> 0013 0014 #include <QHostAddress> 0015 #include <QStringList> 0016 0017 #define NMQT_SETTING_IP4_CONFIG_SETTING_NAME NM_SETTING_IP4_CONFIG_SETTING_NAME 0018 #define NMQT_SETTING_IP4_CONFIG_METHOD NM_SETTING_IP_CONFIG_METHOD 0019 #define NMQT_SETTING_IP4_CONFIG_DNS NM_SETTING_IP_CONFIG_DNS 0020 #define NMQT_SETTING_IP4_CONFIG_DNS_SEARCH NM_SETTING_IP_CONFIG_DNS_SEARCH 0021 #define NMQT_SETTING_IP4_CONFIG_ADDRESSES NM_SETTING_IP_CONFIG_ADDRESSES 0022 #define NMQT_SETTING_IP4_CONFIG_GATEWAY NM_SETTING_IP_CONFIG_GATEWAY 0023 #define NMQT_SETTING_IP4_CONFIG_ROUTES NM_SETTING_IP_CONFIG_ROUTES 0024 #define NMQT_SETTING_IP4_CONFIG_ROUTE_METRIC NM_SETTING_IP_CONFIG_ROUTE_METRIC 0025 #define NMQT_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES 0026 #define NMQT_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS 0027 #define NMQT_SETTING_IP4_CONFIG_DHCP_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_HOSTNAME 0028 #define NMQT_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME 0029 #define NMQT_SETTING_IP4_CONFIG_NEVER_DEFAULT NM_SETTING_IP_CONFIG_NEVER_DEFAULT 0030 #define NMQT_SETTING_IP4_CONFIG_MAY_FAIL NM_SETTING_IP_CONFIG_MAY_FAIL 0031 #define NMQT_SETTING_IP4_CONFIG_DHCP_CLIENT_ID NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID 0032 #define NMQT_SETTING_IP4_CONFIG_METHOD_AUTO NM_SETTING_IP4_CONFIG_METHOD_AUTO 0033 #define NMQT_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL 0034 #define NMQT_SETTING_IP4_CONFIG_METHOD_MANUAL NM_SETTING_IP4_CONFIG_METHOD_MANUAL 0035 #define NMQT_SETTING_IP4_CONFIG_METHOD_SHARED NM_SETTING_IP4_CONFIG_METHOD_SHARED 0036 #define NMQT_SETTING_IP4_CONFIG_METHOD_DISABLED NM_SETTING_IP4_CONFIG_METHOD_DISABLED 0037 #define NMQT_SETTING_IP4_CONFIG_DAD_TIMEOUT NM_SETTING_IP_CONFIG_DAD_TIMEOUT 0038 #define NMQT_SETTING_IP4_CONFIG_DHCP_FQDN NM_SETTING_IP4_CONFIG_DHCP_FQDN 0039 #define NMQT_SETTING_IP4_CONFIG_DNS_OPTIONS NM_SETTING_IP_CONFIG_DNS_OPTIONS 0040 #define NMQT_SETTING_IP4_CONFIG_DNS_PRIORITY NM_SETTING_IP_CONFIG_DNS_PRIORITY 0041 #define NMQT_SETTING_IP4_CONFIG_GATEWAY NM_SETTING_IP_CONFIG_GATEWAY 0042 #define NMQT_SETTING_IP4_CONFIG_ROUTE_DATA "route-data" 0043 #define NMQT_SETTING_IP4_CONFIG_ADDRESS_DATA "address-data" 0044 0045 namespace NetworkManager 0046 { 0047 class Ipv4SettingPrivate; 0048 0049 /** 0050 * Represents ipv4 setting 0051 */ 0052 class NETWORKMANAGERQT_EXPORT Ipv4Setting : public Setting 0053 { 0054 public: 0055 typedef QSharedPointer<Ipv4Setting> Ptr; 0056 typedef QList<Ptr> List; 0057 enum ConfigMethod { 0058 Automatic, 0059 LinkLocal, 0060 Manual, 0061 Shared, 0062 Disabled, 0063 }; 0064 0065 Ipv4Setting(); 0066 explicit Ipv4Setting(const Ptr &other); 0067 ~Ipv4Setting() override; 0068 0069 QString name() const override; 0070 0071 void setMethod(ConfigMethod method); 0072 ConfigMethod method() const; 0073 0074 void setDns(const QList<QHostAddress> &dns); 0075 QList<QHostAddress> dns() const; 0076 0077 void setDnsSearch(const QStringList &domains); 0078 QStringList dnsSearch() const; 0079 0080 void setAddresses(const QList<NetworkManager::IpAddress> &ipv4addresses); 0081 QList<NetworkManager::IpAddress> addresses() const; 0082 0083 void setRoutes(const QList<NetworkManager::IpRoute> &ipv4routes); 0084 QList<NetworkManager::IpRoute> routes() const; 0085 0086 void setRouteMetric(int metric); 0087 int routeMetric() const; 0088 0089 void setIgnoreAutoRoutes(bool ignore); 0090 bool ignoreAutoRoutes() const; 0091 0092 void setIgnoreAutoDns(bool ignore); 0093 bool ignoreAutoDns() const; 0094 0095 void setDhcpClientId(const QString &id); 0096 QString dhcpClientId() const; 0097 0098 void setDhcpSendHostname(bool send); 0099 bool dhcpSendHostname() const; 0100 0101 void setDhcpHostname(const QString &hostname); 0102 QString dhcpHostname() const; 0103 0104 void setNeverDefault(bool neverDefault); 0105 bool neverDefault() const; 0106 0107 void setMayFail(bool mayFail); 0108 bool mayFail() const; 0109 0110 void setDadTimeout(qint32 timeout); 0111 qint32 dadTimeout() const; 0112 0113 void setDhcpFqdn(const QString &fqdn); 0114 QString dhcpFqdn() const; 0115 0116 void setDnsOptions(const QStringList &options); 0117 QStringList dnsOptions() const; 0118 0119 void setDnsPriority(qint32 priority); 0120 qint32 dnsPriority() const; 0121 0122 void setGateway(const QString &gateway); 0123 QString gateway() const; 0124 0125 void setAddressData(const NMVariantMapList &addressData); 0126 NMVariantMapList addressData() const; 0127 0128 void setRouteData(const NMVariantMapList &routeData); 0129 NMVariantMapList routeData() const; 0130 0131 void fromMap(const QVariantMap &setting) override; 0132 0133 QVariantMap toMap() const override; 0134 0135 protected: 0136 Ipv4SettingPrivate *d_ptr; 0137 0138 private: 0139 Q_DECLARE_PRIVATE(Ipv4Setting) 0140 }; 0141 0142 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const Ipv4Setting &setting); 0143 0144 } 0145 0146 #endif // NETWORKMANAGERQT_IPV4_SETTING_H