Skip to content

Commit

Permalink
Add Gateway.PublicGateways to the IPFS localnode config
Browse files Browse the repository at this point in the history
  • Loading branch information
cypt4 committed Dec 10, 2022
1 parent a064e85 commit 0b776dc
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 5 deletions.
12 changes: 12 additions & 0 deletions components/services/ipfs/ipfs_service_utils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,18 @@ bool UpdateConfigJSON(const std::string& source,
dict->SetByDottedPath("Swarm.ConnMgr.HighWater", 40);
dict->SetByDottedPath("Datastore.StorageMax", config->storage_max);

base::Value::Dict localhost_gateway_settings;
localhost_gateway_settings.Set("UseSubdomains", true);
localhost_gateway_settings.Set("InlineDNSLink", true);
base::Value::List path_list;
path_list.Append("/ipfs");
path_list.Append("/ipns");
path_list.Append("/api");
localhost_gateway_settings.Set("Paths", std::move(path_list));
base::Value::Dict public_gateways;
public_gateways.Set("localhost", std::move(localhost_gateway_settings));
dict->SetByDottedPath("Gateway.PublicGateways", std::move(public_gateways));

if (config->doh_server_url) {
base::Value::Dict dns_resolvers;
std::string doh_url = *(config->doh_server_url);
Expand Down
26 changes: 21 additions & 5 deletions components/services/ipfs/ipfs_service_utils_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ TEST_F(IPFSServiceUtils, UpdateConfigJSONTest) {
"\"Gateway\":\"/ip4/127.0.0.1/tcp/GatewayPort\",\"Swarm\":"
"[\"/ip4/0.0.0.0/tcp/SwarmPort\",\"/ip6/::/tcp/SwarmPort\""
"]},\"Datastore\":{\"GCPeriod\":\"1h\",\"StorageMax\":"
"\"StorageSize\"},\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"StorageSize\"},"
"\"Gateway\":{\"PublicGateways\":{\"localhost\":{\"InlineDNSLink\":true,"
"\"Paths\":[\"/ipfs\",\"/ipns\",\"/api\"],\"UseSubdomains\":true}}},"
"\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"HighWater\":40,\"LowWater\":20}}}";
ASSERT_TRUE(UpdateConfigJSON(json, config.get(), &updated));
EXPECT_EQ(updated, expect);
Expand Down Expand Up @@ -82,7 +85,11 @@ TEST_F(IPFSServiceUtils, DNSResolversRemove) {
"]},\"DNS\":{\"Resolvers\":{\".\":\"https://cloudflare.com/"
"dns-query\"}},"
"\"Datastore\":{\"GCPeriod\":\"1h\",\"StorageMax\":"
"\"StorageSize\"},\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"StorageSize\"},"
"\"Gateway\":{\"PublicGateways\":{\"localhost\":{\"InlineDNSLink\":"
"true,\"Paths\":[\"/ipfs\",\"/ipns\",\"/"
"api\"],\"UseSubdomains\":true}}},"
"\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"HighWater\":40,\"LowWater\":20}}}";

EXPECT_TRUE(UpdateConfigJSON(json, config.get(), &updated));
Expand All @@ -101,7 +108,10 @@ TEST_F(IPFSServiceUtils, DNSResolversRemove) {
"[\"/ip4/0.0.0.0/tcp/SwarmPort\",\"/ip6/::/tcp/SwarmPort\""
"]},"
"\"Datastore\":{\"GCPeriod\":\"1h\",\"StorageMax\":"
"\"StorageSize\"},\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"StorageSize\"},\"Gateway\":{\"PublicGateways\":{\"localhost\":{"
"\"InlineDNSLink\":true,\"Paths\":[\"/ipfs\",\"/ipns\",\"/"
"api\"],\"UseSubdomains\":true}}},"
"\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"HighWater\":40,\"LowWater\":20}}}";

EXPECT_TRUE(UpdateConfigJSON(json, config.get(), &updated));
Expand All @@ -122,7 +132,10 @@ TEST_F(IPFSServiceUtils, DNSResolversUpdate) {
"[\"/ip4/0.0.0.0/tcp/SwarmPort\",\"/ip6/::/tcp/SwarmPort\""
"]},\"DNS\":{\"Resolvers\":{\".\":\"https://cloudflare.com/dns-query\"}},"
"\"Datastore\":{\"GCPeriod\":\"1h\",\"StorageMax\":"
"\"StorageSize\"},\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"StorageSize\"},\"Gateway\":{\"PublicGateways\":{\"localhost\":{"
"\"InlineDNSLink\":true,\"Paths\":[\"/ipfs\",\"/ipns\",\"/"
"api\"],\"UseSubdomains\":true}}},"
"\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"HighWater\":40,\"LowWater\":20}}}";
ASSERT_TRUE(UpdateConfigJSON(json, config.get(), &updated));
EXPECT_EQ(updated, expect);
Expand All @@ -142,7 +155,10 @@ TEST_F(IPFSServiceUtils, DNSResolversUpdate_DnsHasRFC8484Template) {
"[\"/ip4/0.0.0.0/tcp/SwarmPort\",\"/ip6/::/tcp/SwarmPort\""
"]},\"DNS\":{\"Resolvers\":{\".\":\"https://cloudflare.com/dns-query\"}},"
"\"Datastore\":{\"GCPeriod\":\"1h\",\"StorageMax\":"
"\"StorageSize\"},\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"StorageSize\"},"
"\"Gateway\":{\"PublicGateways\":{\"localhost\":{\"InlineDNSLink\":true,"
"\"Paths\":[\"/ipfs\",\"/ipns\",\"/api\"],\"UseSubdomains\":true}}},"
"\"Swarm\":{\"ConnMgr\":{\"GracePeriod\":\"20s\","
"\"HighWater\":40,\"LowWater\":20}}}";
ASSERT_TRUE(UpdateConfigJSON(json, config.get(), &updated));
EXPECT_EQ(updated, expect);
Expand Down

0 comments on commit 0b776dc

Please sign in to comment.