From f380f69c69763baa1c796b4528fc788643c3dd63 Mon Sep 17 00:00:00 2001
From: stoffu <stoffu@protonmail.ch>
Date: Thu, 29 Aug 2019 15:31:28 +0900
Subject: [PATCH] simplewallet: warn if invalid default ring size is set and
 actually ignore the setting

---
 src/simplewallet/simplewallet.cpp | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index 9c3dc2b32..0be586fdb 100644
--- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp
@@ -2260,9 +2260,16 @@ bool simple_wallet::set_default_ring_size(const std::vector<std::string> &args/*
     }
  
     if (ring_size != 0 && ring_size != DEFAULT_MIX+1)
-      message_writer() << tr("WARNING: this is a non default ring size, which may harm your privacy. Default is recommended.");
-    else if (ring_size == DEFAULT_MIX)
-      message_writer() << tr("WARNING: from v8, ring size will be fixed and this setting will be ignored.");
+    {
+      if (m_wallet->use_fork_rules(8, 0))
+      {
+        message_writer() << tr("WARNING: from v8, ring size will be fixed and this setting will be ignored.");
+      }
+      else
+      {
+        message_writer() << tr("WARNING: this is a non default ring size, which may harm your privacy. Default is recommended.");
+      }
+    }
 
     const auto pwd_container = get_and_verify_password();
     if (pwd_container)
@@ -5731,14 +5738,11 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vector<std::stri
 
   priority = m_wallet->adjust_priority(priority);
 
-  size_t fake_outs_count = 0;
+  size_t fake_outs_count = DEFAULT_MIX;
   if(local_args.size() > 0) {
     size_t ring_size;
     if(!epee::string_tools::get_xtype_from_string(ring_size, local_args[0]))
     {
-      fake_outs_count = m_wallet->default_mixin();
-      if (fake_outs_count == 0)
-        fake_outs_count = DEFAULT_MIX;
     }
     else if (ring_size == 0)
     {
@@ -6352,14 +6356,11 @@ bool simple_wallet::sweep_main(uint64_t below, bool locked, const std::vector<st
 
   priority = m_wallet->adjust_priority(priority);
 
-  size_t fake_outs_count = 0;
+  size_t fake_outs_count = DEFAULT_MIX;
   if(local_args.size() > 0) {
     size_t ring_size;
     if(!epee::string_tools::get_xtype_from_string(ring_size, local_args[0]))
     {
-      fake_outs_count = m_wallet->default_mixin();
-      if (fake_outs_count == 0)
-        fake_outs_count = DEFAULT_MIX;
     }
     else if (ring_size == 0)
     {
@@ -6651,14 +6652,11 @@ bool simple_wallet::sweep_single(const std::vector<std::string> &args_)
 
   priority = m_wallet->adjust_priority(priority);
 
-  size_t fake_outs_count = 0;
+  size_t fake_outs_count = DEFAULT_MIX;
   if(local_args.size() > 0) {
     size_t ring_size;
     if(!epee::string_tools::get_xtype_from_string(ring_size, local_args[0]))
     {
-      fake_outs_count = m_wallet->default_mixin();
-      if (fake_outs_count == 0)
-        fake_outs_count = DEFAULT_MIX;
     }
     else if (ring_size == 0)
     {