diff --git a/llarp/link/link_manager.cpp b/llarp/link/link_manager.cpp index 38369a332..6bb9cf94a 100644 --- a/llarp/link/link_manager.cpp +++ b/llarp/link/link_manager.cpp @@ -656,7 +656,7 @@ namespace llarp btdc.required("local"); auto rc_dict = btdc.consume_dict_data(); log::critical(logcat, "incoming dict data: {}", oxenc::to_hex(rc_dict)); - remote = RemoteRC{oxenc::bt_dict_consumer{rc_dict}}; + remote = RemoteRC{rc_dict}; quantity = btdc.require("quantity"); } catch (const std::exception& e) @@ -808,10 +808,10 @@ namespace llarp { auto btlp = btdp.append_list("routers"); - const auto& known_rcs = node_db->get_known_rcs(); + const auto& known_rids = node_db->get_known_rids(); - for (const auto& rc : known_rcs) - btlp.append_encoded(rc.view()); + for (const auto& rid : known_rids) + btlp.append(rid.ToView()); } btdp.append_signature("signature", [this](ustring_view to_sign) { diff --git a/llarp/router_contact.cpp b/llarp/router_contact.cpp index 585e72f99..7f1280f7a 100644 --- a/llarp/router_contact.cpp +++ b/llarp/router_contact.cpp @@ -61,12 +61,14 @@ namespace llarp "Invalid RC netid: expected {}, got {}; this is an RC for a different network!"_format( ACTIVE_NETID, netid)}; - auto pk = data.require("p"); + _router_id.from_string(data.require("p")); - if (pk.size() != RouterID::SIZE) - throw std::runtime_error{"Invalid RC: router id has invalid size {}"_format(pk.size())}; + // auto pk = data.require("p"); - std::memcpy(_router_id.data(), pk.data(), RouterID::SIZE); + // if (pk.size() != RouterID::SIZE) + // throw std::runtime_error{"Invalid RC: router id has invalid size {}"_format(pk.size())}; + + // std::memcpy(_router_id.data(), pk.data(), RouterID::SIZE); _timestamp = rc_time{std::chrono::seconds{data.require("t")}};