From 3016c42e2e93c314761a809244526b3c1d13f1b0 Mon Sep 17 00:00:00 2001 From: orignal Date: Mon, 27 Jan 2014 19:48:46 -0500 Subject: [PATCH] read intro key for SSU address --- RouterInfo.cpp | 14 +++++++++++++- RouterInfo.h | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/RouterInfo.cpp b/RouterInfo.cpp index 8126d622..44bd90e4 100644 --- a/RouterInfo.cpp +++ b/RouterInfo.cpp @@ -122,6 +122,8 @@ namespace data } else if (!strcmp (key, "port")) address.port = boost::lexical_cast(value); + else if (!strcmp (key, "key")) + Base64ToByteStream (value, strlen (value), address.key, 32); } m_Addresses.push_back(address); } @@ -289,10 +291,20 @@ namespace data } RouterInfo::Address * RouterInfo::GetNTCPAddress (bool v4only) + { + return GetAddress (eTransportNTCP, v4only); + } + + RouterInfo::Address * RouterInfo::GetSSUAddress (bool v4only) + { + return GetAddress (eTransportSSU, v4only); + } + + RouterInfo::Address * RouterInfo::GetAddress (TransportStyle s, bool v4only) { for (auto& address : m_Addresses) { - if (address.transportStyle == eTransportNTCP) + if (address.transportStyle == s) { if (!v4only || address.host.is_v4 ()) return &address; diff --git a/RouterInfo.h b/RouterInfo.h index 76ebf7cf..d7fc6dd9 100644 --- a/RouterInfo.h +++ b/RouterInfo.h @@ -39,6 +39,7 @@ namespace data int port; uint64_t date; uint8_t cost; + uint8_t key[32]; // into key for SSU }; RouterInfo (const char * filename); @@ -54,6 +55,7 @@ namespace data uint64_t GetTimestamp () const { return m_Timestamp; }; const std::vector
& GetAddresses () const { return m_Addresses; }; Address * GetNTCPAddress (bool v4only = true); + Address * GetSSUAddress (bool v4only = true); const RoutingKey& GetRoutingKey () const { return m_RoutingKey; }; void AddNTCPAddress (const char * host, int port); @@ -88,6 +90,7 @@ namespace data size_t ReadString (char * str, std::istream& s); void WriteString (const std::string& str, std::ostream& s); void UpdateIdentHashBase64 (); + Address * GetAddress (TransportStyle s, bool v4only); private: