diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2012-02-25 20:59:18 +0100 |
---|---|---|
committer | Pieter Wuille <pieter.wuille@gmail.com> | 2012-02-25 21:13:34 +0100 |
commit | 4a10d4c6dcd04eb2496257754782150793ce53b1 (patch) | |
tree | 1c4f182b1e73d13d48f3eca8cb3b72c4fa0bb97e /src/db.cpp | |
parent | da9ab62fb7cfa3fa36eb81ce2503685a45c5d346 (diff) |
Fix addrProxy setting
Before 0.6 addrProxy was a CAddress, but netbase changed it to CService.
Retain compatibility by wrapping/unwrapping with a CAddress when saving
or loading.
This commit retains compatibility with 0.6.0rc1 (which wrote the setting
as a CService) by trying to parse twice.
Diffstat (limited to 'src/db.cpp')
-rw-r--r-- | src/db.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/db.cpp b/src/db.cpp index ea6d46a6e5..4d4a3c4696 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -931,7 +931,21 @@ int CWalletDB::LoadWallet(CWallet* pwallet) if (strKey == "fMinimizeToTray") ssValue >> fMinimizeToTray; if (strKey == "fMinimizeOnClose") ssValue >> fMinimizeOnClose; if (strKey == "fUseProxy") ssValue >> fUseProxy; - if (strKey == "addrProxy") ssValue >> addrProxy; + if (strKey == "addrProxy") + { + CAddress addr; + CDataStream ssValue2 = ssValue; + // 0.6.0rc1 saved this as a CService, which causes failure when parsing as a CAddress + try + { + ssValue >> addr; + addrProxy = addr; + } + catch (std::ios_base::failure &e) + { + ssValue2 >> addrProxy; + } + } if (fHaveUPnP && strKey == "fUseUPnP") ssValue >> fUseUPnP; } else if (strType == "minversion") |