Browse Source

always specify mtu for ipv6 address

pull/108/head
orignal 10 years ago
parent
commit
c0482319e5
  1. 2
      RouterContext.cpp
  2. 12
      RouterInfo.cpp
  3. 2
      RouterInfo.h

2
RouterContext.cpp

@ -162,7 +162,7 @@ namespace i2p @@ -162,7 +162,7 @@ namespace i2p
{
// create new address
m_RouterInfo.AddNTCPAddress (host.to_string ().c_str (), port);
m_RouterInfo.AddSSUAddress (host.to_string ().c_str (), port, GetIdentHash ()); // TODO
m_RouterInfo.AddSSUAddress (host.to_string ().c_str (), port, GetIdentHash (), 1472); // TODO
updated = true;
}
if (updated)

12
RouterInfo.cpp

@ -374,6 +374,14 @@ namespace data @@ -374,6 +374,14 @@ namespace data
value[l] = 0;
WriteString (value, properties);
properties << ';';
// write mtu
if (address.mtu)
{
WriteString ("mtu", properties);
properties << '=';
WriteString (boost::lexical_cast<std::string>(address.mtu), properties);
properties << ';';
}
}
WriteString ("port", properties);
properties << '=';
@ -466,11 +474,12 @@ namespace data @@ -466,11 +474,12 @@ namespace data
addr.transportStyle = eTransportNTCP;
addr.cost = 2;
addr.date = 0;
addr.mtu = 0;
m_Addresses.push_back(addr);
m_SupportedTransports |= addr.host.is_v6 () ? eNTCPV6 : eNTCPV4;
}
void RouterInfo::AddSSUAddress (const char * host, int port, const uint8_t * key)
void RouterInfo::AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu)
{
Address addr;
addr.host = boost::asio::ip::address::from_string (host);
@ -478,6 +487,7 @@ namespace data @@ -478,6 +487,7 @@ namespace data
addr.transportStyle = eTransportSSU;
addr.cost = 10; // NTCP should have priority over SSU
addr.date = 0;
addr.mtu = mtu;
memcpy (addr.key, key, 32);
m_Addresses.push_back(addr);
m_SupportedTransports |= addr.host.is_v6 () ? eNTCPV6 : eSSUV4;

2
RouterInfo.h

@ -101,7 +101,7 @@ namespace data @@ -101,7 +101,7 @@ namespace data
const Address * GetSSUV6Address () const;
void AddNTCPAddress (const char * host, int port);
void AddSSUAddress (const char * host, int port, const uint8_t * key);
void AddSSUAddress (const char * host, int port, const uint8_t * key, int mtu = 0);
bool AddIntroducer (const Address * address, uint32_t tag);
bool RemoveIntroducer (const boost::asio::ip::udp::endpoint& e);
void SetProperty (const char * key, const char * value);

Loading…
Cancel
Save