24
24
25
25
const char *DEFAULT_GUI_PROXY_HOST = " 127.0.0.1" ;
26
26
27
+ static const QString GetDefaultProxyAddress ();
28
+
27
29
OptionsModel::OptionsModel (interfaces::Node& node, QObject *parent, bool resetSettings) :
28
30
QAbstractListModel(parent), m_node(node)
29
31
{
@@ -121,7 +123,7 @@ void OptionsModel::Init(bool resetSettings)
121
123
if (!settings.contains (" fUseProxy" ))
122
124
settings.setValue (" fUseProxy" , false );
123
125
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 ( ));
125
127
// Only try to set -proxy, if user has enabled fUseProxy
126
128
if (settings.value (" fUseProxy" ).toBool () && !m_node.softSetArg (" -proxy" , settings.value (" addrProxy" ).toString ().toStdString ()))
127
129
addOverriddenOption (" -proxy" );
@@ -131,7 +133,7 @@ void OptionsModel::Init(bool resetSettings)
131
133
if (!settings.contains (" fUseSeparateProxyTor" ))
132
134
settings.setValue (" fUseSeparateProxyTor" , false );
133
135
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 ( ));
135
137
// Only try to set -onion, if user has enabled fUseSeparateProxyTor
136
138
if (settings.value (" fUseSeparateProxyTor" ).toBool () && !m_node.softSetArg (" -onion" , settings.value (" addrSeparateProxyTor" ).toString ().toStdString ()))
137
139
addOverriddenOption (" -onion" );
@@ -223,6 +225,11 @@ static void SetProxySetting(QSettings &settings, const QString &name, const Prox
223
225
settings.setValue (name, ip_port.ip + " :" + ip_port.port );
224
226
}
225
227
228
+ static const QString GetDefaultProxyAddress ()
229
+ {
230
+ return QString (" %1:%2" ).arg (DEFAULT_GUI_PROXY_HOST).arg (DEFAULT_GUI_PROXY_PORT);
231
+ }
232
+
226
233
// read QSettings values and return them
227
234
QVariant OptionsModel::data (const QModelIndex & index, int role) const
228
235
{
@@ -485,4 +492,16 @@ void OptionsModel::checkAndMigrate()
485
492
486
493
settings.setValue (strSettingsVersionKey, CLIENT_VERSION);
487
494
}
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
+ }
488
507
}
0 commit comments