summaryrefslogtreecommitdiff
path: root/src/nm-ip6-config.h
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-05-31 14:31:29 +0200
committerThomas Haller <thaller@redhat.com>2016-06-01 13:30:00 +0200
commit19ea8f44b7a3931ccd038cb0afd48a09fd403413 (patch)
treeb0cf018ca749ffef9b0e6ec0ae4c2c2be8311dfd /src/nm-ip6-config.h
parent70d194c159c80266140157db535700f8e44dbe0b (diff)
parentec53ed2cbaab754ddf1283658b5adfba8134e757 (diff)
downloadNetworkManager-th/nm-1-2-merge.tar.gz
all: merge branch 'master' into nm-1-2th/nm-1-2-merge
Since releasing 1.2.0, we maintain a stable branch 'nm-1-2' and implement new features on 'master'. Occasionally, we backport patches by cherry-picking from 'master'. While developing RHEL-7.3, we want essentially all those features and fixes from 'master' also show up in final RHEL-7.3, because that largely determines our priorities. One way to get 'master' stuff into RHEL-7.3, would be to release 1.4.0, and bring that to RHEL-7.3. The downside is, that we already have downstreams as a user of 'nm-1-2' branch (Ubuntu 16.04 LTS). Obviously, there are many useful and important fixes on 'master' that also should reach downstream. Would downstream also rebase with us to 1.4.0? Do we want to invest the effort to heavily maintain both a 'nm-1-4' and 'nm-1-2' branch upstream? After releasing 1.4.0, upstream has less motivation for the additional work to maintain an old-stable 'nm-1-2' branch. So I think this either means more work for upstream, or less upstream help with old-stable branch. The latter possibly also means a worse expirience for 'nm-1-2' users. The alternative is to bring 'nm-1-2' to RHEL-7.3, but that means we backport essentially everything from 'master'. Of course, that temporarily destabilizes our 'nm-1-2' somewhat (our 'master' is in a decent shape, so it shouldn't be that bad). It also means, that 'nm-1-2' will see large development/backporting efforts and thus our upstream stable branch isn't what one would traditionally consider a bugfix-only, stable branch. This is also exactly what we did for 'nm-1-0' branch at the RHEL-7.2 time and although it has downsides, I think it is preferable to above option. Upstream is not going to maintain a bugfix-only 'nm-1-2' branch. If somebody wants that, he must be prepared to do the work and maintain such a "stable" branch based on 1.2.2 himself. Do note, that 'master' is supposed to be backward compatible, and all the gazillion of changes that happend there are considered to be an improvement. Thus, we bring all those improvements to 'nm-1-2', not only bugfixes. Also note, that after this large merge we are going to take the time to test and fix possible regressions before releasing 1.2.4. You can also think of 1.2.4 as a new backward compatible version of NetworkManager and 'master' was the development branch towards that. Now, instead of cherry-picking basically everything, re-merge 'master' into 'nm-1-2'. The outcome is pretty similar, the difference is: + doing it in one rush is considerabily less work, and you can easily verify that the backports are correct via `git diff master`. + we anyway backport everything. Thus a real merge in our git history better represents what is happening. + with a real merge, git has a new merge-parent and future backports will less conflict. - we don't have a fine-grained history of cherry-picked patches on 'nm-1-2'. Instead, there is only this one merge-commit. Of course, the real history is all here and comes from 'master', on HEAD^2. - it also means, if downstream wants to patch 1.2.2 release, it must find the appropriate patch on HEAD^2. - the large merge plays less nice with git-annotate and git-bisect, but still acceptable. I think the time to do this is good, because - 'master' is in a relatively good shape - there are many useful fixes to backport - 1.2.4 is still a bit out, and we can find regressions that this merge may cause. - RHEL-7.3 is even farther away and thus all the testing effort immediately benefits 'nm-1-2'. Yet another alternative to a real merge or extensive cherry-picking would be to do a `git merge --squash master`. However, I think that a real merge better expresses what actually happened. Conflicts: clients/cli/settings.c clients/common/nm-vpn-helpers.c configure.ac libnm-core/Makefile.am libnm-core/nm-vpn-editor-plugin.c man/common.ent.in po/pt_BR.po po/sv.po shared/nm-macros-internal.h shared/nm-test-utils.h shared/nm-version-macros.h.in src/devices/bluetooth/nm-bluez-device.c src/devices/nm-device-ethernet.c src/devices/nm-device.c src/devices/nm-device.h src/devices/wwan/nm-modem-broadband.c src/dhcp-manager/nm-dhcp-systemd.c src/dns-manager/nm-dns-dnsmasq.c src/dns-manager/nm-dns-manager.c src/dnsmasq-manager/tests/test-dnsmasq-utils.c src/nm-auth-subject.c src/nm-connection-provider.c src/nm-connection-provider.h src/nm-core-utils.c src/nm-ip4-config.c src/nm-ip6-config.c src/nm-manager.c src/platform/nm-fake-platform.c src/platform/nm-linux-platform.c src/platform/nm-platform-utils.c src/platform/nm-platform-utils.h src/platform/nm-platform.c src/platform/nm-platform.h src/ppp-manager/nm-ppp-manager.c src/settings/nm-settings.c src/tests/test-ip4-config.c src/vpn-manager/nm-vpn-connection.c
Diffstat (limited to 'src/nm-ip6-config.h')
-rw-r--r--src/nm-ip6-config.h20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/nm-ip6-config.h b/src/nm-ip6-config.h
index 5e66d500e4..c3f8d9f879 100644
--- a/src/nm-ip6-config.h
+++ b/src/nm-ip6-config.h
@@ -33,18 +33,7 @@
#define NM_IS_IP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IP6_CONFIG))
#define NM_IP6_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IP6_CONFIG, NMIP6ConfigClass))
-struct _NMIP6ConfigPrivate;
-
-struct _NMIP6Config {
- NMExportedObject parent;
-
- /* private */
- struct _NMIP6ConfigPrivate *priv;
-};
-
-typedef struct {
- NMExportedObjectClass parent;
-} NMIP6ConfigClass;
+typedef struct _NMIP6ConfigClass NMIP6ConfigClass;
/* internal */
#define NM_IP6_CONFIG_IFINDEX "ifindex"
@@ -57,6 +46,7 @@ typedef struct {
#define NM_IP6_CONFIG_DOMAINS "domains"
#define NM_IP6_CONFIG_SEARCHES "searches"
#define NM_IP6_CONFIG_DNS_OPTIONS "dns-options"
+#define NM_IP6_CONFIG_DNS_PRIORITY "dns-priority"
/* deprecated */
#define NM_IP6_CONFIG_ADDRESSES "addresses"
@@ -100,6 +90,8 @@ const NMPlatformIP6Address *nm_ip6_config_get_address (const NMIP6Config *config
const NMPlatformIP6Address *nm_ip6_config_get_address_first_nontentative (const NMIP6Config *config, gboolean linklocal);
gboolean nm_ip6_config_address_exists (const NMIP6Config *config, const NMPlatformIP6Address *address);
gboolean nm_ip6_config_addresses_sort (NMIP6Config *config, NMSettingIP6ConfigPrivacy use_temporary);
+gboolean nm_ip6_config_has_any_dad_pending (const NMIP6Config *self,
+ const NMIP6Config *candidates);
/* Routes */
void nm_ip6_config_reset_routes (NMIP6Config *config);
@@ -139,6 +131,10 @@ void nm_ip6_config_del_dns_option (NMIP6Config *config, guint i);
guint32 nm_ip6_config_get_num_dns_options (const NMIP6Config *config);
const char * nm_ip6_config_get_dns_option (const NMIP6Config *config, guint i);
+/* DNS priority */
+void nm_ip6_config_set_dns_priority (NMIP6Config *config, gint priority);
+gint nm_ip6_config_get_dns_priority (const NMIP6Config *config);
+
/* MSS */
void nm_ip6_config_set_mss (NMIP6Config *config, guint32 mss);
guint32 nm_ip6_config_get_mss (const NMIP6Config *config);