DtkNetworkManager
NetworkManager DBus interface binding for Qt
dipv6setting.h
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DIPV6SETTING_H
6#define DIPV6SETTING_H
7
8#include "dnmsetting.h"
10#include <QStringList>
11#include <QHostAddress>
12
13#define DTK_NM_SETTING_IP6_CONFIG_SETTING_NAME NM_SETTING_IP6_CONFIG_SETTING_NAME
14#define DTK_NM_SETTING_IP6_CONFIG_METHOD NM_SETTING_IP_CONFIG_METHOD
15#define DTK_NM_SETTING_IP6_CONFIG_DNS NM_SETTING_IP_CONFIG_DNS
16#define DTK_NM_SETTING_IP6_CONFIG_DNS_SEARCH NM_SETTING_IP_CONFIG_DNS_SEARCH
17#define DTK_NM_SETTING_IP6_CONFIG_ADDRESSES NM_SETTING_IP_CONFIG_ADDRESSES
18#define DTK_NM_SETTING_IP6_CONFIG_GATEWAY NM_SETTING_IP_CONFIG_GATEWAY
19#define DTK_NM_SETTING_IP6_CONFIG_ROUTES NM_SETTING_IP_CONFIG_ROUTES
20#define DTK_NM_SETTING_IP6_CONFIG_ROUTE_METRIC NM_SETTING_IP_CONFIG_ROUTE_METRIC
21#define DTK_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES
22#define DTK_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS
23#define DTK_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_HOSTNAME
24#define DTK_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME
25#define DTK_NM_SETTING_IP6_CONFIG_NEVER_DEFAULT NM_SETTING_IP_CONFIG_NEVER_DEFAULT
26#define DTK_NM_SETTING_IP6_CONFIG_MAY_FAIL NM_SETTING_IP_CONFIG_MAY_FAIL
27#define DTK_NM_SETTING_IP6_CONFIG_DHCP_CLIENT_ID NM_SETTING_IP6_CONFIG_DHCP_CLIENT_ID
28#define DTK_NM_SETTING_IP6_CONFIG_IP6_PRIVACY NM_SETTING_IP6_CONFIG_IP6_PRIVACY
29#define DTK_NM_SETTING_IP6_CONFIG_METHOD_IGNORE NM_SETTING_IP6_CONFIG_METHOD_IGNORE
30#define DTK_NM_SETTING_IP6_CONFIG_METHOD_AUTO NM_SETTING_IP6_CONFIG_METHOD_AUTO
31#define DTK_NM_SETTING_IP6_CONFIG_METHOD_DHCP NM_SETTING_IP6_CONFIG_METHOD_DHCP
32#define DTK_NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL
33#define DTK_NM_SETTING_IP6_CONFIG_METHOD_MANUAL NM_SETTING_IP6_CONFIG_METHOD_MANUAL
34#define DTK_NM_SETTING_IP6_CONFIG_METHOD_SHARED NM_SETTING_IP6_CONFIG_METHOD_SHARED
35#if NM_CHECK_VERSION(1, 20, 0)
36#define DTK_NM_SETTING_IP6_CONFIG_METHOD_DISABLED NM_SETTING_IP6_CONFIG_METHOD_DISABLED
37#else
38#define DTK_NM_SETTING_IP6_CONFIG_METHOD_DISABLED "disabled"
39#endif
40#define DTK_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT NM_SETTING_IP_CONFIG_DAD_TIMEOUT
41#define DTK_NM_SETTING_IP6_CONFIG_DHCP_TIMEOUT NM_SETTING_IP_CONFIG_DHCP_TIMEOUT
42#define DTK_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME NM_SETTING_IP_CONFIG_DHCP_HOSTNAME
43#define DTK_NM_SETTING_IP6_CONFIG_ADDRESS_GEN_MODE NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE
44#define DTK_NM_SETTING_IP6_CONFIG_DHCP_DUID NM_SETTING_IP6_CONFIG_DHCP_DUID
45#define DTK_NM_SETTING_IP6_CONFIG_TOKEN NM_SETTING_IP6_CONFIG_TOKEN
46#define DTK_NM_SETTING_IP6_CONFIG_DNS_OPTIONS NM_SETTING_IP_CONFIG_DNS_OPTIONS
47#define DTK_NM_SETTING_IP6_CONFIG_ROUTE_TABLE NM_SETTING_IP_CONFIG_ROUTE_TABLE
48#define DTK_NM_SETTING_IP6_CONFIG_ROUTE_DATA "route-data"
49#define DTK_NM_SETTING_IP6_CONFIG_ADDRESS_DATA "address-data"
50
51DNETWORKMANAGER_BEGIN_NAMESPACE
52
53class DIpv6SettingPrivate;
54
56{
57public:
58 enum class IPv6Privacy {
59 Unknown = -1,
60 Disabled,
61 PreferPublic,
62 PreferTemporary,
63 };
64 enum class IPv6AddressGenMode {
65 Eui64 = 0,
66 StablePrivacy,
67 };
68
70 explicit DIpv6Setting(const QSharedPointer<DIpv6Setting> &other);
71 ~DIpv6Setting() override = default;
72
73 QString name() const override;
74
75 void setMethod(NMConfigMethod method);
76 NMConfigMethod method() const;
77
78 void setDns(const QList<QHostAddress> &dns);
79 QList<QHostAddress> dns() const;
80
81 void setDnsSearch(const QStringList &domains);
82 QStringList dnsSearch() const;
83
84 void setRouteMetric(int metric);
85 int routeMetric() const;
86
87 void setIgnoreAutoRoutes(bool ignore);
88 bool ignoreAutoRoutes() const;
89
90 void setIgnoreAutoDns(bool ignore);
91 bool ignoreAutoDns() const;
92
93 void setNeverDefault(bool neverDefault);
94 bool neverDefault() const;
95
96 void setMayFail(bool mayFail);
97 bool mayFail() const;
98
99 void setPrivacy(IPv6Privacy privacy);
100 IPv6Privacy privacy() const;
101
102 void fromMap(const QVariantMap &setting) override;
103
104 QVariantMap toMap() const override;
105
106 void setDadTimeout(qint32 timeout);
107 qint32 dadTimeout() const;
108
109 void setAddressGenMode(IPv6AddressGenMode mode);
110 IPv6AddressGenMode addressGenMode() const;
111
112 void setDhcpTimeout(qint32 timeout);
113 qint32 dhcpTimeout() const;
114
115 void setDhcpHostname(const QString &hostname);
116 QString dhcpHostname() const;
117
118 void setDhcpDuid(const QString &duid);
119 QString dhcpDuid() const;
120
121 void setToken(const QString &token);
122 QString token() const;
123
124 void setDnsOptions(const QStringList &options);
125 QStringList dnsOptions() const;
126
127 void setAddressData(const QList<Config> &addressData);
128 QList<Config> addressData() const;
129
130 void setRouteData(const QList<Config> &routeData);
131 QList<Config> routeData() const;
132
133 void setRouteTable(quint32 routeTable);
134 quint32 routeTable() const;
135
136protected:
137 QScopedPointer<DIpv6SettingPrivate> d_ptr;
138
139private:
140 Q_DECLARE_PRIVATE(DIpv6Setting)
141};
142
143DNETWORKMANAGER_END_NAMESPACE
144
145Q_DECLARE_METATYPE(DTK_DNETWORKMANAGER_NAMESPACE::DIpv6Setting::IPv6Privacy)
146Q_DECLARE_METATYPE(DTK_DNETWORKMANAGER_NAMESPACE::DIpv6Setting::IPv6AddressGenMode)
147
148#endif
Definition: dipv6setting.h:56
DNMSetting类
Definition: dnmsetting.h:26
NMConfigMethod
本枚举代表Ipv4/Ipv6配置文件中method配置项的值
Definition: dnetworkmanagertypes.h:247