From 1d6347fe971761978244413b578552f7082e3299 Mon Sep 17 00:00:00 2001 From: Matthew Leeds Date: Wed, 17 Oct 2018 17:02:27 -0700 Subject: [PATCH] lib/repo-pull: Disable LAN updates by default This commit disables searching on the local network for refs, unless explicitly requested by the user either by changing the value of the "core.repo-finders" config option, or by passing an OstreeRepoFinderAvahi to ostree_repo_find_remotes_async() / ostree_repo_finder_resolve_async(), or by specifying "lan" in the --finders option of the find-remotes command. The primary reason for this is that ostree_repo_find_remotes_async() takes about 40% longer to complete with the LAN finder enabled, and that API is used widely (e.g. in every flatpak operation). It's also probable that some users don't want ostree doing potentially unexpected traffic on the local network, even though everything pulled from a peer is GPG verified. Flathub will soon deploy collection IDs to everyone[1] so these code paths will soon see a lot more use and that's why this change is being made now. Endless is the only potential user of the LAN updates feature, and we can revert this patch on our fork of ostree. For it to be used outside Endless OS we will need to upstream eos-updater-avahi and eos-update-server into ostree. [1] https://github.com/flathub/flathub/issues/676 Closes: #1758 Approved by: cgwalters --- man/ostree.repo-config.xml | 5 +++-- src/libostree/ostree-repo.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/man/ostree.repo-config.xml b/man/ostree.repo-config.xml index 49044b46..3ea24486 100644 --- a/man/ostree.repo-config.xml +++ b/man/ostree.repo-config.xml @@ -225,8 +225,9 @@ Boston, MA 02111-1307, USA. of finders isn't explicitly specified, either by a consumer of libostree API or on the command line. Possible values: config, lan, and - mount (or any combination thereof). If - unset, this defaults to config;lan;mount;. + mount (or any combination thereof). If unset, this + defaults to config;mount; (since the LAN finder is + costly). diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 18fb7733..fe095057 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -2967,7 +2967,7 @@ reload_core_config (OstreeRepo *self, /* Fall back to a default set of finders */ if (configured_finders == NULL) - configured_finders = g_strsplit ("config;lan;mount", ";", -1); + configured_finders = g_strsplit ("config;mount", ";", -1); g_clear_pointer (&self->repo_finders, g_strfreev); self->repo_finders = g_steal_pointer (&configured_finders);