2424
2525const char *DEFAULT_GUI_PROXY_HOST = " 127.0.0.1" ;
2626
27+ static const QString GetDefaultProxyAddress ();
28+
2729OptionsModel::OptionsModel (interfaces::Node& node, QObject *parent, bool resetSettings) :
2830 QAbstractListModel(parent), m_node(node)
2931{
@@ -121,7 +123,7 @@ void OptionsModel::Init(bool resetSettings)
121123 if (!settings.contains (" fUseProxy" ))
122124 settings.setValue (" fUseProxy" , false );
123125 if (!settings.contains (" addrProxy" ))
124- settings.setValue (" addrProxy" , QString ( " %1:%2 " ). arg (DEFAULT_GUI_PROXY_HOST, DEFAULT_GUI_PROXY_PORT ));
126+ settings.setValue (" addrProxy" , GetDefaultProxyAddress ( ));
125127 // Only try to set -proxy, if user has enabled fUseProxy
126128 if (settings.value (" fUseProxy" ).toBool () && !m_node.softSetArg (" -proxy" , settings.value (" addrProxy" ).toString ().toStdString ()))
127129 addOverriddenOption (" -proxy" );
@@ -131,7 +133,7 @@ void OptionsModel::Init(bool resetSettings)
131133 if (!settings.contains (" fUseSeparateProxyTor" ))
132134 settings.setValue (" fUseSeparateProxyTor" , false );
133135 if (!settings.contains (" addrSeparateProxyTor" ))
134- settings.setValue (" addrSeparateProxyTor" , QString ( " %1:%2 " ). arg (DEFAULT_GUI_PROXY_HOST, DEFAULT_GUI_PROXY_PORT ));
136+ settings.setValue (" addrSeparateProxyTor" , GetDefaultProxyAddress ( ));
135137 // Only try to set -onion, if user has enabled fUseSeparateProxyTor
136138 if (settings.value (" fUseSeparateProxyTor" ).toBool () && !m_node.softSetArg (" -onion" , settings.value (" addrSeparateProxyTor" ).toString ().toStdString ()))
137139 addOverriddenOption (" -onion" );
@@ -223,6 +225,11 @@ static void SetProxySetting(QSettings &settings, const QString &name, const Prox
223225 settings.setValue (name, ip_port.ip + " :" + ip_port.port );
224226}
225227
228+ static const QString GetDefaultProxyAddress ()
229+ {
230+ return QString (" %1:%2" ).arg (DEFAULT_GUI_PROXY_HOST).arg (DEFAULT_GUI_PROXY_PORT);
231+ }
232+
226233// read QSettings values and return them
227234QVariant OptionsModel::data (const QModelIndex & index, int role) const
228235{
@@ -485,4 +492,16 @@ void OptionsModel::checkAndMigrate()
485492
486493 settings.setValue (strSettingsVersionKey, CLIENT_VERSION);
487494 }
495+
496+ // Overwrite the 'addrProxy' setting in case it has been set to an illegal
497+ // default value (see issue #12623; PR #12650).
498+ if (settings.contains (" addrProxy" ) && settings.value (" addrProxy" ).toString ().endsWith (" %2" )) {
499+ settings.setValue (" addrProxy" , GetDefaultProxyAddress ());
500+ }
501+
502+ // Overwrite the 'addrSeparateProxyTor' setting in case it has been set to an illegal
503+ // default value (see issue #12623; PR #12650).
504+ if (settings.contains (" addrSeparateProxyTor" ) && settings.value (" addrSeparateProxyTor" ).toString ().endsWith (" %2" )) {
505+ settings.setValue (" addrSeparateProxyTor" , GetDefaultProxyAddress ());
506+ }
488507}
0 commit comments