| 141 | } |
| 142 | |
| 143 | bool CBanDB::Read(banmap_t& banSet) |
| 144 | { |
| 145 | if (fs::exists(m_banlist_dat)) { |
| 146 | LogPrintf("banlist.dat ignored because it can only be read by " PACKAGE_NAME " version 22.x. Remove %s to silence this warning.\n", fs::quoted(fs::PathToString(m_banlist_dat))); |
| 147 | } |
| 148 | // If the JSON banlist does not exist, then recreate it |
| 149 | if (!fs::exists(m_banlist_json)) { |
| 150 | return false; |
| 151 | } |
| 152 | |
| 153 | std::map<std::string, util::SettingsValue> settings; |
| 154 | std::vector<std::string> errors; |
| 155 | |
| 156 | if (!util::ReadSettings(m_banlist_json, settings, errors)) { |
| 157 | for (const auto& err : errors) { |
| 158 | LogPrintf("Cannot load banlist %s: %s\n", fs::PathToString(m_banlist_json), err); |
| 159 | } |
| 160 | return false; |
| 161 | } |
| 162 | |
| 163 | try { |
| 164 | BanMapFromJson(settings[JSON_KEY], banSet); |
| 165 | } catch (const std::runtime_error& e) { |
| 166 | LogPrintf("Cannot parse banlist %s: %s\n", fs::PathToString(m_banlist_json), e.what()); |
| 167 | return false; |
| 168 | } |
| 169 | |
| 170 | return true; |
| 171 | } |
| 172 | |
| 173 | bool DumpPeerAddresses(const ArgsManager& args, const AddrMan& addr) |
| 174 | { |
no test coverage detected