From e9a2af90ff767e196e3fe741f202f69b7a14d429 Mon Sep 17 00:00:00 2001 From: Jocelyn Liu Date: Fri, 16 Oct 2020 15:01:42 -0700 Subject: [PATCH 1/2] Use fixed IPFS swarm port instead --- components/services/ipfs/ipfs_service_impl.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/services/ipfs/ipfs_service_impl.cc b/components/services/ipfs/ipfs_service_impl.cc index 55733a817c4..4211baab994 100644 --- a/components/services/ipfs/ipfs_service_impl.cc +++ b/components/services/ipfs/ipfs_service_impl.cc @@ -175,8 +175,8 @@ void IpfsServiceImpl::Launch(mojom::IpfsConfigPtr config, std::initializer_list> config_args = { {"config", "Addresses.API", "/ip4/127.0.0.1/tcp/45001"}, {"config", "Addresses.Gateway", "/ip4/127.0.0.1/tcp/48080"}, - {"config", "profile", "apply", "randomports"} // for swarm addresses - }; + {"config", "--json", "Addresses.Swarm", + "[\"/ip4/0.0.0.0/tcp/44001\", \"/ip6/::/tcp/44001\"]"}}; for (auto args : config_args) { if (!LaunchProcessAndExit(config->binary_path, args, options)) { From 0f97fab6df2705423d48b54f3cd39afa0c7c5f9a Mon Sep 17 00:00:00 2001 From: Jocelyn Liu Date: Fri, 16 Oct 2020 16:13:42 -0700 Subject: [PATCH 2/2] Try cleanup daemon process before launching it --- components/services/ipfs/ipfs_service_impl.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/components/services/ipfs/ipfs_service_impl.cc b/components/services/ipfs/ipfs_service_impl.cc index 4211baab994..faead33609a 100644 --- a/components/services/ipfs/ipfs_service_impl.cc +++ b/components/services/ipfs/ipfs_service_impl.cc @@ -79,9 +79,13 @@ static void TearDownPipeHack() { bool LaunchProcessAndExit(const base::FilePath& path, std::initializer_list args, const base::LaunchOptions& options) { + bool shutdown = false; base::CommandLine cmdline(path); - for (auto arg : args) + for (auto arg : args) { + if (arg == "shutdown") + shutdown = true; cmdline.AppendArg(arg); + } base::Process process = base::LaunchProcess(cmdline, options); if (!process.IsValid()) { return false; @@ -95,7 +99,8 @@ bool LaunchProcessAndExit(const base::FilePath& path, return false; } - if (exit_code) { + // `ipfs shutdown` could return error if daemon is not running. + if (exit_code && !shutdown) { VLOG(0) << "Failed at running cmd: " << cmdline.GetCommandLineString(); return false; } @@ -173,6 +178,7 @@ void IpfsServiceImpl::Launch(mojom::IpfsConfigPtr config, } std::initializer_list> config_args = { + {"shutdown"}, // Cleanup left-over daemon process. {"config", "Addresses.API", "/ip4/127.0.0.1/tcp/45001"}, {"config", "Addresses.Gateway", "/ip4/127.0.0.1/tcp/48080"}, {"config", "--json", "Addresses.Swarm",