示例#1
0
	void NTCPSession::Connected ()
	{
		LogPrint ("NTCP session connected");
		m_IsEstablished = true;

		SendTimeSyncMessage ();
		SendI2NPMessage (CreateDatabaseStoreMsg ()); // we tell immediately who we are		

		if (!m_DelayedMessages.empty ())
		{
			for (auto it :m_DelayedMessages)
				SendI2NPMessage (it);
			m_DelayedMessages.clear ();
		}	
	}	
示例#2
0
	void NTCPServerConnection::Connected ()
	{
		LogPrint ("NTCP server session connected");
		SetIsEstablished (true);
		i2p::transports.AddNTCPSession (this);

		SendTimeSyncMessage ();
		SendI2NPMessage (CreateDatabaseStoreMsg ()); // we tell immediately who we are		
	}	
示例#3
0
	void Transports::PostMessage (const i2p::data::IdentHash& ident, i2p::I2NPMessage * msg)
	{
		auto session = FindNTCPSession (ident);
		if (!session)
		{
			RouterInfo * r = netdb.FindRouter (ident);
			if (r)
			{	
				auto address = r->GetNTCPAddress ();
				if (address)
				{	
					session = new i2p::ntcp::NTCPClient (m_Service, address->host.c_str (), address->port, *r);
					AddNTCPSession (session);
				}	
			}
		}	
		if (session)
			session->SendI2NPMessage (msg);
		else
			LogPrint ("Session not found"); 
	}