mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	some cleanup
This commit is contained in:
		
							parent
							
								
									faae2709d9
								
							
						
					
					
						commit
						c2f13a1496
					
				
					 5 changed files with 11 additions and 56 deletions
				
			
		| 
						 | 
					@ -142,8 +142,7 @@ namespace i2p
 | 
				
			||||||
			i2p::context.SetSupportsV6 (ipv6);
 | 
								i2p::context.SetSupportsV6 (ipv6);
 | 
				
			||||||
			i2p::context.SetSupportsV4 (ipv4);
 | 
								i2p::context.SetSupportsV4 (ipv4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			bool ntcp;   i2p::config::GetOption("ntcp", ntcp);
 | 
								i2p::context.RemoveNTCPAddress (!ipv6); // TODO: remove later 
 | 
				
			||||||
			i2p::context.PublishNTCPAddress (ntcp, !ipv6);  
 | 
					 | 
				
			||||||
			bool ntcp2; i2p::config::GetOption("ntcp2.enabled", ntcp2);
 | 
								bool ntcp2; i2p::config::GetOption("ntcp2.enabled", ntcp2);
 | 
				
			||||||
			if (ntcp2)
 | 
								if (ntcp2)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
| 
						 | 
					@ -151,7 +150,7 @@ namespace i2p
 | 
				
			||||||
				if (published)
 | 
									if (published)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					uint16_t ntcp2port; i2p::config::GetOption("ntcp2.port", ntcp2port);
 | 
										uint16_t ntcp2port; i2p::config::GetOption("ntcp2.port", ntcp2port);
 | 
				
			||||||
					if (!ntcp && !ntcp2port) ntcp2port = port; // use standard port
 | 
										if (!ntcp2port) ntcp2port = port; // use standard port
 | 
				
			||||||
					i2p::context.PublishNTCP2Address (ntcp2port, true); // publish
 | 
										i2p::context.PublishNTCP2Address (ntcp2port, true); // publish
 | 
				
			||||||
					if (ipv6)
 | 
										if (ipv6)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -373,48 +373,19 @@ namespace i2p
 | 
				
			||||||
		return m_RouterInfo.GetCaps () & i2p::data::RouterInfo::eUnreachable;
 | 
							return m_RouterInfo.GetCaps () & i2p::data::RouterInfo::eUnreachable;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void RouterContext::PublishNTCPAddress (bool publish, bool v4only)
 | 
						void RouterContext::RemoveNTCPAddress (bool v4only)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		auto& addresses = m_RouterInfo.GetAddresses ();
 | 
							auto& addresses = m_RouterInfo.GetAddresses ();
 | 
				
			||||||
		if (publish)
 | 
							for (auto it = addresses.begin (); it != addresses.end ();)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			for (const auto& addr : addresses) // v4
 | 
								if ((*it)->transportStyle == i2p::data::RouterInfo::eTransportNTCP && !(*it)->IsNTCP2 () &&
 | 
				
			||||||
 | 
									(!v4only || (*it)->host.is_v4 ()))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if (addr->transportStyle == i2p::data::RouterInfo::eTransportSSU &&
 | 
									it = addresses.erase (it);
 | 
				
			||||||
					addr->host.is_v4 ())
 | 
									if (v4only) break; // otherwise might be more than one address
 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					// insert NTCP address with host/port from SSU
 | 
					 | 
				
			||||||
					m_RouterInfo.AddNTCPAddress (addr->host.to_string ().c_str (), addr->port);
 | 
					 | 
				
			||||||
					break;
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if (!v4only)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				for (const auto& addr : addresses) // v6
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					if (addr->transportStyle == i2p::data::RouterInfo::eTransportSSU &&
 | 
					 | 
				
			||||||
						addr->host.is_v6 ())
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						// insert NTCP address with host/port from SSU
 | 
					 | 
				
			||||||
						m_RouterInfo.AddNTCPAddress (addr->host.to_string ().c_str (), addr->port);
 | 
					 | 
				
			||||||
						break;
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			for (auto it = addresses.begin (); it != addresses.end ();)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				if ((*it)->transportStyle == i2p::data::RouterInfo::eTransportNTCP && !(*it)->IsNTCP2 () &&
 | 
					 | 
				
			||||||
					(!v4only || (*it)->host.is_v4 ()))
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					it = addresses.erase (it);
 | 
					 | 
				
			||||||
					if (v4only) break; // otherwise might be more than one address
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				else
 | 
					 | 
				
			||||||
					++it;
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									++it;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -89,7 +89,7 @@ namespace i2p
 | 
				
			||||||
			void UpdateAddress (const boost::asio::ip::address& host);	// called from SSU or Daemon
 | 
								void UpdateAddress (const boost::asio::ip::address& host);	// called from SSU or Daemon
 | 
				
			||||||
			void PublishNTCP2Address (int port, bool publish = true, bool v4only = false);
 | 
								void PublishNTCP2Address (int port, bool publish = true, bool v4only = false);
 | 
				
			||||||
			void UpdateNTCP2Address (bool enable);
 | 
								void UpdateNTCP2Address (bool enable);
 | 
				
			||||||
			void PublishNTCPAddress (bool publish, bool v4only = true);
 | 
								void RemoveNTCPAddress (bool v4only = true); // delete NTCP address for older routers. TODO: remove later
 | 
				
			||||||
			bool AddIntroducer (const i2p::data::RouterInfo::Introducer& introducer);
 | 
								bool AddIntroducer (const i2p::data::RouterInfo::Introducer& introducer);
 | 
				
			||||||
			void RemoveIntroducer (const boost::asio::ip::udp::endpoint& e);
 | 
								void RemoveIntroducer (const boost::asio::ip::udp::endpoint& e);
 | 
				
			||||||
			bool IsUnreachable () const;
 | 
								bool IsUnreachable () const;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -709,20 +709,6 @@ namespace data
 | 
				
			||||||
		s.write (str.c_str (), len);
 | 
							s.write (str.c_str (), len);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void RouterInfo::AddNTCPAddress (const char * host, int port)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		auto addr = std::make_shared<Address>();
 | 
					 | 
				
			||||||
		addr->host = boost::asio::ip::address::from_string (host);
 | 
					 | 
				
			||||||
		addr->port = port;
 | 
					 | 
				
			||||||
		addr->transportStyle = eTransportNTCP;
 | 
					 | 
				
			||||||
		addr->cost = 6;
 | 
					 | 
				
			||||||
		addr->date = 0;
 | 
					 | 
				
			||||||
		for (const auto& it: *m_Addresses) // don't insert same address twice
 | 
					 | 
				
			||||||
			if (*it == *addr) return;
 | 
					 | 
				
			||||||
		m_SupportedTransports |= addr->host.is_v6 () ? eNTCPV6 : eNTCPV4;
 | 
					 | 
				
			||||||
		m_Addresses->push_front(std::move(addr)); // always make NTCP first
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	void RouterInfo::AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu)
 | 
						void RouterInfo::AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		auto addr = std::make_shared<Address>();
 | 
							auto addr = std::make_shared<Address>();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -157,7 +157,6 @@ namespace data
 | 
				
			||||||
			std::shared_ptr<const Address> GetSSUAddress (bool v4only = true) const;
 | 
								std::shared_ptr<const Address> GetSSUAddress (bool v4only = true) const;
 | 
				
			||||||
			std::shared_ptr<const Address> GetSSUV6Address () const;
 | 
								std::shared_ptr<const Address> GetSSUV6Address () const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			void AddNTCPAddress (const char * host, int port);
 | 
					 | 
				
			||||||
			void AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu = 0);
 | 
								void AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu = 0);
 | 
				
			||||||
			void AddNTCP2Address (const uint8_t * staticKey, const uint8_t * iv, const boost::asio::ip::address& host = boost::asio::ip::address(), int port = 0);
 | 
								void AddNTCP2Address (const uint8_t * staticKey, const uint8_t * iv, const boost::asio::ip::address& host = boost::asio::ip::address(), int port = 0);
 | 
				
			||||||
			bool AddIntroducer (const Introducer& introducer);
 | 
								bool AddIntroducer (const Introducer& introducer);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue