mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	reuse_address for ipv6 acceptor
This commit is contained in:
		
							parent
							
								
									9188e3ad3f
								
							
						
					
					
						commit
						9b1fe4338b
					
				
					 2 changed files with 6 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -935,7 +935,7 @@ namespace transport
 | 
			
		|||
			htobe16buf (buf + 1, len); // size
 | 
			
		||||
			len += 3; 	
 | 
			
		||||
			totalLen += len;		
 | 
			
		||||
			encryptBufs.push_back (std::make_pair (buf, len));
 | 
			
		||||
			encryptBufs.push_back ( {buf, len} );
 | 
			
		||||
			if (&it == &msgs.front ()) // first message
 | 
			
		||||
			{
 | 
			
		||||
				// allocate two bytes for length
 | 
			
		||||
| 
						 | 
				
			
			@ -949,7 +949,7 @@ namespace transport
 | 
			
		|||
				auto paddingLen = CreatePaddingBlock (totalLen, buf + len, it->maxLen - it->len - 16);
 | 
			
		||||
				if (paddingLen)
 | 
			
		||||
				{
 | 
			
		||||
					encryptBufs.push_back (std::make_pair (buf + len, paddingLen));
 | 
			
		||||
					encryptBufs.push_back ( {buf + len, paddingLen} );
 | 
			
		||||
					len += paddingLen;
 | 
			
		||||
					totalLen += paddingLen;
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			@ -969,7 +969,7 @@ namespace transport
 | 
			
		|||
			auto paddingLen = CreatePaddingBlock (totalLen, m_NextSendBuffer, 287 - 16);
 | 
			
		||||
			// and padding block to encrypt and send
 | 
			
		||||
			if (paddingLen)
 | 
			
		||||
				encryptBufs.push_back (std::make_pair (m_NextSendBuffer, paddingLen));			
 | 
			
		||||
				encryptBufs.push_back ( {m_NextSendBuffer, paddingLen} );			
 | 
			
		||||
			bufs.push_back (boost::asio::buffer (m_NextSendBuffer, paddingLen + 16));
 | 
			
		||||
			macBuf = m_NextSendBuffer + paddingLen;
 | 
			
		||||
			totalLen += paddingLen;		
 | 
			
		||||
| 
						 | 
				
			
			@ -1001,7 +1001,7 @@ namespace transport
 | 
			
		|||
		// encrypt
 | 
			
		||||
		uint8_t nonce[12];
 | 
			
		||||
		CreateNonce (m_SendSequenceNumber, nonce); m_SendSequenceNumber++;
 | 
			
		||||
		i2p::crypto::AEADChaCha20Poly1305Encrypt ({std::make_pair (m_NextSendBuffer + 2, payloadLen)}, m_SendKey, nonce, m_NextSendBuffer + payloadLen + 2);	
 | 
			
		||||
		i2p::crypto::AEADChaCha20Poly1305Encrypt ({ {m_NextSendBuffer + 2, payloadLen} }, m_SendKey, nonce, m_NextSendBuffer + payloadLen + 2);	
 | 
			
		||||
		SetNextSentFrameLength (payloadLen + 16, m_NextSendBuffer);
 | 
			
		||||
		// send
 | 
			
		||||
		m_IsSending = true;	
 | 
			
		||||
| 
						 | 
				
			
			@ -1180,6 +1180,7 @@ namespace transport
 | 
			
		|||
						{
 | 
			
		||||
							m_NTCP2V6Acceptor->open (boost::asio::ip::tcp::v6());
 | 
			
		||||
							m_NTCP2V6Acceptor->set_option (boost::asio::ip::v6_only (true));
 | 
			
		||||
							m_NTCP2V6Acceptor->set_option (boost::asio::socket_base::reuse_address (true));
 | 
			
		||||
							m_NTCP2V6Acceptor->bind (boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v6(), address->port));
 | 
			
		||||
							m_NTCP2V6Acceptor->listen ();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -843,6 +843,7 @@ namespace transport
 | 
			
		|||
							{
 | 
			
		||||
								m_NTCPV6Acceptor->open (boost::asio::ip::tcp::v6());
 | 
			
		||||
								m_NTCPV6Acceptor->set_option (boost::asio::ip::v6_only (true));
 | 
			
		||||
								m_NTCPV6Acceptor->set_option (boost::asio::socket_base::reuse_address (true));
 | 
			
		||||
								m_NTCPV6Acceptor->bind (boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v6(), address->port));
 | 
			
		||||
								m_NTCPV6Acceptor->listen ();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue