mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-30 20:52:30 +02:00
Reformat code
This commit is contained in:
parent
3ddb370718
commit
55534ea002
140 changed files with 46068 additions and 48277 deletions
|
@ -20,111 +20,112 @@
|
|||
#include "I2NPProtocol.h"
|
||||
#include "Timestamp.h"
|
||||
|
||||
namespace i2p
|
||||
{
|
||||
namespace transport
|
||||
{
|
||||
const size_t IPV4_HEADER_SIZE = 20;
|
||||
const size_t IPV6_HEADER_SIZE = 40;
|
||||
const size_t UDP_HEADER_SIZE = 8;
|
||||
|
||||
class SignedData
|
||||
{
|
||||
public:
|
||||
namespace i2p {
|
||||
namespace transport {
|
||||
const size_t IPV4_HEADER_SIZE = 20;
|
||||
const size_t IPV6_HEADER_SIZE = 40;
|
||||
const size_t UDP_HEADER_SIZE = 8;
|
||||
|
||||
SignedData () {}
|
||||
SignedData (const SignedData& other)
|
||||
{
|
||||
m_Stream << other.m_Stream.rdbuf ();
|
||||
}
|
||||
class SignedData {
|
||||
public:
|
||||
|
||||
void Reset ()
|
||||
{
|
||||
m_Stream.str("");
|
||||
}
|
||||
|
||||
void Insert (const uint8_t * buf, size_t len)
|
||||
{
|
||||
m_Stream.write ((char *)buf, len);
|
||||
}
|
||||
SignedData() {}
|
||||
|
||||
template<typename T>
|
||||
void Insert (T t)
|
||||
{
|
||||
m_Stream.write ((char *)&t, sizeof (T));
|
||||
}
|
||||
SignedData(const SignedData &other) {
|
||||
m_Stream << other.m_Stream.rdbuf();
|
||||
}
|
||||
|
||||
bool Verify (std::shared_ptr<const i2p::data::IdentityEx> ident, const uint8_t * signature) const
|
||||
{
|
||||
return ident->Verify ((const uint8_t *)m_Stream.str ().c_str (), m_Stream.str ().size (), signature);
|
||||
}
|
||||
void Reset() {
|
||||
m_Stream.str("");
|
||||
}
|
||||
|
||||
void Sign (const i2p::data::PrivateKeys& keys, uint8_t * signature) const
|
||||
{
|
||||
keys.Sign ((const uint8_t *)m_Stream.str ().c_str (), m_Stream.str ().size (), signature);
|
||||
}
|
||||
void Insert(const uint8_t *buf, size_t len) {
|
||||
m_Stream.write((char *) buf, len);
|
||||
}
|
||||
|
||||
private:
|
||||
template<typename T>
|
||||
void Insert(T t) {
|
||||
m_Stream.write((char *) &t, sizeof(T));
|
||||
}
|
||||
|
||||
std::stringstream m_Stream;
|
||||
};
|
||||
|
||||
class TransportSession
|
||||
{
|
||||
public:
|
||||
bool Verify(std::shared_ptr<const i2p::data::IdentityEx> ident, const uint8_t *signature) const {
|
||||
return ident->Verify((const uint8_t *) m_Stream.str().c_str(), m_Stream.str().size(), signature);
|
||||
}
|
||||
|
||||
TransportSession (std::shared_ptr<const i2p::data::RouterInfo> router, int terminationTimeout):
|
||||
m_NumSentBytes (0), m_NumReceivedBytes (0), m_IsOutgoing (router), m_TerminationTimeout (terminationTimeout),
|
||||
m_LastActivityTimestamp (i2p::util::GetSecondsSinceEpoch ())
|
||||
{
|
||||
if (router)
|
||||
m_RemoteIdentity = router->GetRouterIdentity ();
|
||||
m_CreationTime = m_LastActivityTimestamp;
|
||||
}
|
||||
void Sign(const i2p::data::PrivateKeys &keys, uint8_t *signature) const {
|
||||
keys.Sign((const uint8_t *) m_Stream.str().c_str(), m_Stream.str().size(), signature);
|
||||
}
|
||||
|
||||
virtual ~TransportSession () {};
|
||||
virtual void Done () = 0;
|
||||
private:
|
||||
|
||||
std::string GetIdentHashBase64() const { return m_RemoteIdentity ? m_RemoteIdentity->GetIdentHash().ToBase64() : ""; }
|
||||
std::stringstream m_Stream;
|
||||
};
|
||||
|
||||
std::shared_ptr<const i2p::data::IdentityEx> GetRemoteIdentity ()
|
||||
{
|
||||
std::lock_guard<std::mutex> l(m_RemoteIdentityMutex);
|
||||
return m_RemoteIdentity;
|
||||
}
|
||||
void SetRemoteIdentity (std::shared_ptr<const i2p::data::IdentityEx> ident)
|
||||
{
|
||||
std::lock_guard<std::mutex> l(m_RemoteIdentityMutex);
|
||||
m_RemoteIdentity = ident;
|
||||
}
|
||||
class TransportSession {
|
||||
public:
|
||||
|
||||
size_t GetNumSentBytes () const { return m_NumSentBytes; };
|
||||
size_t GetNumReceivedBytes () const { return m_NumReceivedBytes; };
|
||||
bool IsOutgoing () const { return m_IsOutgoing; };
|
||||
TransportSession(std::shared_ptr<const i2p::data::RouterInfo> router, int terminationTimeout) :
|
||||
m_NumSentBytes(0), m_NumReceivedBytes(0), m_IsOutgoing(router),
|
||||
m_TerminationTimeout(terminationTimeout),
|
||||
m_LastActivityTimestamp(i2p::util::GetSecondsSinceEpoch()) {
|
||||
if (router)
|
||||
m_RemoteIdentity = router->GetRouterIdentity();
|
||||
m_CreationTime = m_LastActivityTimestamp;
|
||||
}
|
||||
|
||||
int GetTerminationTimeout () const { return m_TerminationTimeout; };
|
||||
void SetTerminationTimeout (int terminationTimeout) { m_TerminationTimeout = terminationTimeout; };
|
||||
bool IsTerminationTimeoutExpired (uint64_t ts) const
|
||||
{ return ts >= m_LastActivityTimestamp + GetTerminationTimeout (); };
|
||||
virtual ~TransportSession() {};
|
||||
|
||||
uint32_t GetCreationTime () const { return m_CreationTime; };
|
||||
void SetCreationTime (uint32_t ts) { m_CreationTime = ts; }; // for introducers
|
||||
|
||||
virtual uint32_t GetRelayTag () const { return 0; };
|
||||
virtual void SendLocalRouterInfo (bool update = false) { SendI2NPMessages ({ CreateDatabaseStoreMsg () }); };
|
||||
virtual void SendI2NPMessages (const std::vector<std::shared_ptr<I2NPMessage> >& msgs) = 0;
|
||||
virtual void Done() = 0;
|
||||
|
||||
protected:
|
||||
std::string GetIdentHashBase64() const {
|
||||
return m_RemoteIdentity ? m_RemoteIdentity->GetIdentHash().ToBase64() : "";
|
||||
}
|
||||
|
||||
std::shared_ptr<const i2p::data::IdentityEx> m_RemoteIdentity;
|
||||
mutable std::mutex m_RemoteIdentityMutex;
|
||||
size_t m_NumSentBytes, m_NumReceivedBytes;
|
||||
bool m_IsOutgoing;
|
||||
int m_TerminationTimeout;
|
||||
uint64_t m_LastActivityTimestamp;
|
||||
uint32_t m_CreationTime; // seconds since epoch
|
||||
};
|
||||
}
|
||||
std::shared_ptr<const i2p::data::IdentityEx> GetRemoteIdentity() {
|
||||
std::lock_guard<std::mutex> l(m_RemoteIdentityMutex);
|
||||
return m_RemoteIdentity;
|
||||
}
|
||||
|
||||
void SetRemoteIdentity(std::shared_ptr<const i2p::data::IdentityEx> ident) {
|
||||
std::lock_guard<std::mutex> l(m_RemoteIdentityMutex);
|
||||
m_RemoteIdentity = ident;
|
||||
}
|
||||
|
||||
size_t GetNumSentBytes() const { return m_NumSentBytes; };
|
||||
|
||||
size_t GetNumReceivedBytes() const { return m_NumReceivedBytes; };
|
||||
|
||||
bool IsOutgoing() const { return m_IsOutgoing; };
|
||||
|
||||
int GetTerminationTimeout() const { return m_TerminationTimeout; };
|
||||
|
||||
void SetTerminationTimeout(int terminationTimeout) { m_TerminationTimeout = terminationTimeout; };
|
||||
|
||||
bool IsTerminationTimeoutExpired(uint64_t ts) const {
|
||||
return ts >= m_LastActivityTimestamp + GetTerminationTimeout();
|
||||
};
|
||||
|
||||
uint32_t GetCreationTime() const { return m_CreationTime; };
|
||||
|
||||
void SetCreationTime(uint32_t ts) { m_CreationTime = ts; }; // for introducers
|
||||
|
||||
virtual uint32_t GetRelayTag() const { return 0; };
|
||||
|
||||
virtual void SendLocalRouterInfo(bool update = false) { SendI2NPMessages({CreateDatabaseStoreMsg()}); };
|
||||
|
||||
virtual void SendI2NPMessages(const std::vector<std::shared_ptr<I2NPMessage> > &msgs) = 0;
|
||||
|
||||
protected:
|
||||
|
||||
std::shared_ptr<const i2p::data::IdentityEx> m_RemoteIdentity;
|
||||
mutable std::mutex m_RemoteIdentityMutex;
|
||||
size_t m_NumSentBytes, m_NumReceivedBytes;
|
||||
bool m_IsOutgoing;
|
||||
int m_TerminationTimeout;
|
||||
uint64_t m_LastActivityTimestamp;
|
||||
uint32_t m_CreationTime; // seconds since epoch
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue