summaryrefslogtreecommitdiff
path: root/net-p2p/monero/files/monero-9999-net-add-retro-compatibility-with-legacy-IPv4-options.patch
diff options
context:
space:
mode:
authorBertrand Jacquin <bertrand@jacquin.bzh>2024-04-09 22:47:23 +0100
committerBertrand Jacquin <bertrand@jacquin.bzh>2024-04-09 23:05:23 +0100
commitab4f187397accc65b0f5fedf5d01f0412415dd27 (patch)
tree8c7f2d5425ab20ecd7384898fc7f5c914d5670b2 /net-p2p/monero/files/monero-9999-net-add-retro-compatibility-with-legacy-IPv4-options.patch
parentnet-p2p/monero: add 9999 (diff)
downloadportage-ab4f187397accc65b0f5fedf5d01f0412415dd27.tar.xz
net-p2p/monero: enable ipv6 by default
Diffstat (limited to 'net-p2p/monero/files/monero-9999-net-add-retro-compatibility-with-legacy-IPv4-options.patch')
-rw-r--r--net-p2p/monero/files/monero-9999-net-add-retro-compatibility-with-legacy-IPv4-options.patch164
1 files changed, 164 insertions, 0 deletions
diff --git a/net-p2p/monero/files/monero-9999-net-add-retro-compatibility-with-legacy-IPv4-options.patch b/net-p2p/monero/files/monero-9999-net-add-retro-compatibility-with-legacy-IPv4-options.patch
new file mode 100644
index 00000000..c0fcb22c
--- /dev/null
+++ b/net-p2p/monero/files/monero-9999-net-add-retro-compatibility-with-legacy-IPv4-options.patch
@@ -0,0 +1,164 @@
+From 4175d5b8d5c89a0617c0686c3e18d81286a43471 Mon Sep 17 00:00:00 2001
+From: Bertrand Jacquin <bertrand@jacquin.bzh>
+Date: Thu, 4 Apr 2024 22:33:16 +0100
+Subject: [PATCH] net: add retro compatibility with legacy IPv4 options
+
+To ensure retro compatibility, legacy IPv4 daemon arguments and
+configuration settings changes are marked as deprecated, but can still
+be used falling back to new option name when new options are not used.
+
+Raise warning in case legacy option are used.
+
+* --p2p-bind-ip is an alias to --p2p-bind-ipv4-address
+* --p2p-bind-port is an alias to --p2p-bind-ipv4-port
+* --p2p-bind-port-ipv6 is an alias to --p2p-bind-ipv6-port
+* --rpc-bind-ip is an alias to --rpc-bind-ipv4-address
+* --rpc-restricted-bind-ip is an alias to --rpc-restricted-bind-ipv4-address
+---
+ src/p2p/net_node.cpp | 3 +++
+ src/p2p/net_node.h | 3 +++
+ src/p2p/net_node.inl | 22 ++++++++++++++++++++++
+ src/rpc/rpc_args.cpp | 17 +++++++++++++++++
+ src/rpc/rpc_args.h | 2 ++
+ 5 files changed, 47 insertions(+)
+
+diff --git a/src/p2p/net_node.cpp b/src/p2p/net_node.cpp
+index bb7965817dee..4d5ba6e38268 100644
+--- a/src/p2p/net_node.cpp
++++ b/src/p2p/net_node.cpp
+@@ -113,6 +113,7 @@ namespace nodetool
+ {
+ const command_line::arg_descriptor<std::string> arg_p2p_bind_ipv4_address = {"p2p-bind-ipv4-address", "Interface for p2p network protocol (IPv4)", "0.0.0.0"};
+ const command_line::arg_descriptor<std::string> arg_p2p_bind_ipv6_address = {"p2p-bind-ipv6-address", "Interface for p2p network protocol (IPv6)", "::"};
++ const command_line::arg_descriptor<std::string> arg_p2p_bind_ip = {"p2p-bind-ip", "DEPRECATED: replaced with --p2p-bind-ipv4-address", ""};
+ const command_line::arg_descriptor<std::string, false, true, 2> arg_p2p_bind_ipv4_port = {
+ "p2p-bind-ipv4-port"
+ , "Port for p2p network protocol (IPv4)"
+@@ -139,6 +140,8 @@ namespace nodetool
+ return val;
+ }
+ };
++ const command_line::arg_descriptor<std::string> arg_p2p_bind_port = {"p2p-bind-port", "DEPRECATED: replaced with --p2p-bind-ipv4-port", ""};
++ const command_line::arg_descriptor<std::string> arg_p2p_bind_port_ipv6 = {"p2p-bind-port-ipv6", "DEPRECATED: replaced with --p2p-bind-ipv6-port", ""};
+
+ const command_line::arg_descriptor<uint32_t> arg_p2p_external_port = {"p2p-external-port", "External port for p2p network protocol (if port forwarding used with NAT)", 0};
+ const command_line::arg_descriptor<bool> arg_p2p_allow_local_ip = {"allow-local-ip", "Allow local ip add to peer list, mostly in debug purposes"};
+diff --git a/src/p2p/net_node.h b/src/p2p/net_node.h
+index a373c80a3575..4db6a107ca0a 100644
+--- a/src/p2p/net_node.h
++++ b/src/p2p/net_node.h
+@@ -522,8 +522,11 @@ namespace nodetool
+ const int64_t default_limit_down = P2P_DEFAULT_LIMIT_RATE_DOWN; // kB/s
+ extern const command_line::arg_descriptor<std::string> arg_p2p_bind_ipv4_address;
+ extern const command_line::arg_descriptor<std::string> arg_p2p_bind_ipv6_address;
++ extern const command_line::arg_descriptor<std::string> arg_p2p_bind_ip; // DEPRECATED
+ extern const command_line::arg_descriptor<std::string, false, true, 2> arg_p2p_bind_ipv4_port;
+ extern const command_line::arg_descriptor<std::string, false, true, 2> arg_p2p_bind_ipv6_port;
++ extern const command_line::arg_descriptor<std::string> arg_p2p_bind_port; // DEPRECATED
++ extern const command_line::arg_descriptor<std::string> arg_p2p_bind_port_ipv6; // DEPRECATED
+ extern const command_line::arg_descriptor<bool> arg_p2p_use_ipv6;
+ extern const command_line::arg_descriptor<bool> arg_p2p_ignore_ipv4;
+ extern const command_line::arg_descriptor<uint32_t> arg_p2p_external_port;
+diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
+index f50ac8ea22d5..1a43c8ac2ad1 100644
+--- a/src/p2p/net_node.inl
++++ b/src/p2p/net_node.inl
+@@ -101,8 +101,11 @@ namespace nodetool
+ {
+ command_line::add_arg(desc, arg_p2p_bind_ipv4_address);
+ command_line::add_arg(desc, arg_p2p_bind_ipv6_address);
++ command_line::add_arg(desc, arg_p2p_bind_ip); // DEPRECATED
+ command_line::add_arg(desc, arg_p2p_bind_ipv4_port, false);
+ command_line::add_arg(desc, arg_p2p_bind_ipv6_port, false);
++ command_line::add_arg(desc, arg_p2p_bind_port, false); // DEPRECATED
++ command_line::add_arg(desc, arg_p2p_bind_port_ipv6, false); // DEPRECATED
+ command_line::add_arg(desc, arg_p2p_use_ipv6);
+ command_line::add_arg(desc, arg_p2p_ignore_ipv4);
+ command_line::add_arg(desc, arg_p2p_external_port);
+@@ -416,6 +419,25 @@ namespace nodetool
+ public_zone.m_bind_ipv6_address = command_line::get_arg(vm, arg_p2p_bind_ipv6_address);
+ public_zone.m_port_ipv4 = command_line::get_arg(vm, arg_p2p_bind_ipv4_port);
+ public_zone.m_port_ipv6 = command_line::get_arg(vm, arg_p2p_bind_ipv6_port);
++
++ // DEPRECATED --p2p-bind-ip
++ if (!command_line::get_arg(vm, arg_p2p_bind_ip).empty())
++ MWARNING("--p2p-bind-ip is now DEPRECATED, replace with --p2p-bind-ipv4-address");
++ if (public_zone.m_bind_ipv4_address.empty())
++ public_zone.m_bind_ipv4_address = command_line::get_arg(vm, arg_p2p_bind_ip);
++
++ // DEPRECATED --p2p-bind-port
++ if (!command_line::get_arg(vm, arg_p2p_bind_port).empty())
++ MWARNING("--p2p-bind-port is now DEPRECATED, replace with --p2p-bind-ipv4-port");
++ if (public_zone.m_port_ipv4.empty())
++ public_zone.m_port_ipv4 = command_line::get_arg(vm, arg_p2p_bind_port);
++
++ // DEPRECATED --p2p-bind-port-ipv6
++ if (!command_line::get_arg(vm, arg_p2p_bind_port_ipv6).empty())
++ MWARNING("--p2p-bind-port-ipv6 is now DEPRECATED, replace with --p2p-bind-ipv6-port");
++ if (public_zone.m_port_ipv6.empty())
++ public_zone.m_port_ipv6 = command_line::get_arg(vm, arg_p2p_bind_ipv6_port);
++
+ public_zone.m_can_pingback = true;
+ m_external_port = command_line::get_arg(vm, arg_p2p_external_port);
+ m_allow_local_ip = command_line::get_arg(vm, arg_p2p_allow_local_ip);
+diff --git a/src/rpc/rpc_args.cpp b/src/rpc/rpc_args.cpp
+index 3e4503b20678..4d0411b503d5 100644
+--- a/src/rpc/rpc_args.cpp
++++ b/src/rpc/rpc_args.cpp
+@@ -91,8 +91,10 @@ namespace cryptonote
+ rpc_args::descriptors::descriptors()
+ : rpc_bind_ipv4_address({"rpc-bind-ipv4-address", rpc_args::tr("Specify IPv4 address to bind RPC server"), "127.0.0.1"})
+ , rpc_bind_ipv6_address({"rpc-bind-ipv6-address", rpc_args::tr("Specify IPv6 address to bind RPC server"), "::1"})
++ , rpc_bind_ip({"rpc-bind-ip", rpc_args::tr("DEPRECATED: replaced with --rpc-bind-ipv4-address"), ""})
+ , rpc_restricted_bind_ipv4_address({"rpc-restricted-bind-ipv4-address", rpc_args::tr("Specify IPv4 address to bind restricted RPC server"), "127.0.0.1"})
+ , rpc_restricted_bind_ipv6_address({"rpc-restricted-bind-ipv6-address", rpc_args::tr("Specify IPv6 address to bind restricted RPC server"), "::1"})
++ , rpc_restricted_bind_ip({"rpc-restricted-bind-ip", rpc_args::tr("DEPRECATED: replaced with --rpc-restricted-bind-ipv4-address"), ""})
+ , rpc_use_ipv6({"rpc-use-ipv6", rpc_args::tr("Allow IPv6 for RPC"), false})
+ , rpc_ignore_ipv4({"rpc-ignore-ipv4", rpc_args::tr("Ignore unsuccessful IPv4 bind for RPC"), false})
+ , rpc_login({"rpc-login", rpc_args::tr("Specify username[:password] required for RPC server"), "", true})
+@@ -115,8 +117,10 @@ namespace cryptonote
+ const descriptors arg{};
+ command_line::add_arg(desc, arg.rpc_bind_ipv4_address);
+ command_line::add_arg(desc, arg.rpc_bind_ipv6_address);
++ command_line::add_arg(desc, arg.rpc_bind_ip); // DEPRECATED
+ command_line::add_arg(desc, arg.rpc_restricted_bind_ipv4_address);
+ command_line::add_arg(desc, arg.rpc_restricted_bind_ipv6_address);
++ command_line::add_arg(desc, arg.rpc_restricted_bind_ip); // DEPRECATED
+ command_line::add_arg(desc, arg.rpc_use_ipv6);
+ command_line::add_arg(desc, arg.rpc_ignore_ipv4);
+ command_line::add_arg(desc, arg.rpc_login);
+@@ -142,6 +146,19 @@ namespace cryptonote
+ config.bind_ipv6_address = command_line::get_arg(vm, arg.rpc_bind_ipv6_address);
+ config.restricted_bind_ipv4_address = command_line::get_arg(vm, arg.rpc_restricted_bind_ipv4_address);
+ config.restricted_bind_ipv6_address = command_line::get_arg(vm, arg.rpc_restricted_bind_ipv6_address);
++
++ // DEPRECATED --rpc-bind-ip
++ if (!command_line::get_arg(vm, arg.rpc_bind_ip).empty())
++ MWARNING("--rpc-bind-ip is now DEPRECATED, replace with --rpc-bind-ipv4-address");
++ if (config.bind_ipv4_address.empty())
++ config.bind_ipv4_address = command_line::get_arg(vm, arg.rpc_bind_ip);
++
++ // DEPRECATED --rpc-restricted-bind-ip
++ if (!command_line::get_arg(vm, arg.rpc_restricted_bind_ip).empty())
++ MWARNING("--rpc-restricted-bind-ip is now DEPRECATED, replace with --rpc-restricted-bind-ipv4-address");
++ if (config.restricted_bind_ipv4_address.empty())
++ config.restricted_bind_ipv4_address = command_line::get_arg(vm, arg.rpc_restricted_bind_ip);
++
+ config.use_ipv6 = command_line::get_arg(vm, arg.rpc_use_ipv6);
+ config.require_ipv4 = !command_line::get_arg(vm, arg.rpc_ignore_ipv4);
+ config.disable_rpc_ban = command_line::get_arg(vm, arg.disable_rpc_ban);
+diff --git a/src/rpc/rpc_args.h b/src/rpc/rpc_args.h
+index b4fa3ced09a4..392e78703839 100644
+--- a/src/rpc/rpc_args.h
++++ b/src/rpc/rpc_args.h
+@@ -53,8 +53,10 @@ namespace cryptonote
+
+ const command_line::arg_descriptor<std::string> rpc_bind_ipv4_address;
+ const command_line::arg_descriptor<std::string> rpc_bind_ipv6_address;
++ const command_line::arg_descriptor<std::string> rpc_bind_ip; // DEPRECATED
+ const command_line::arg_descriptor<std::string> rpc_restricted_bind_ipv4_address;
+ const command_line::arg_descriptor<std::string> rpc_restricted_bind_ipv6_address;
++ const command_line::arg_descriptor<std::string> rpc_restricted_bind_ip; // DEPRECATED
+ const command_line::arg_descriptor<bool> rpc_use_ipv6;
+ const command_line::arg_descriptor<bool> rpc_ignore_ipv4;
+ const command_line::arg_descriptor<std::string> rpc_login;