fix ip stuff

pull/15/head v0.2.2
Jeff Becker 6 years ago
parent 320fbdf3bc
commit b7100d68a2
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -124,13 +124,13 @@ namespace llarp
void void
src(uint32_t ip) src(uint32_t ip)
{ {
Header()->saddr = htons(ip); Header()->saddr = htonl(ip);
} }
void void
dst(uint32_t ip) dst(uint32_t ip)
{ {
Header()->daddr = htons(ip); Header()->daddr = htonl(ip);
} }
// update ip packet checksum // update ip packet checksum

@ -204,6 +204,16 @@ namespace llarp
uint32_t themIP = ObtainIPForAddr(msg->sender.Addr()); uint32_t themIP = ObtainIPForAddr(msg->sender.Addr());
uint32_t usIP = m_OurIP; uint32_t usIP = m_OurIP;
auto buf = llarp::Buffer(msg->payload); auto buf = llarp::Buffer(msg->payload);
net::IPv4Packet pkt;
memcpy(pkt.buf, buf.base, std::min(buf.sz, sizeof(pkt.buf)));
pkt.src(themIP);
pkt.dst(usIP);
pkt.UpdateChecksum();
llarp::LogInfo(Name(), " handle data message ", msg->payload.size(),
" bytes from ", inet_ntoa({themIP}));
llarp_ev_tun_async_write(&tunif, pkt.buf, pkt.sz);
/*
if(!m_NetworkToUserPktQueue.EmplaceIf( if(!m_NetworkToUserPktQueue.EmplaceIf(
[buf, themIP, usIP](net::IPv4Packet &pkt) -> bool { [buf, themIP, usIP](net::IPv4Packet &pkt) -> bool {
// do packet info rewrite here // do packet info rewrite here
@ -218,6 +228,7 @@ namespace llarp
llarp::LogWarn("failed to parse buffer for ip traffic"); llarp::LogWarn("failed to parse buffer for ip traffic");
llarp::DumpBuffer(buf); llarp::DumpBuffer(buf);
} }
*/
} }
uint32_t uint32_t
@ -237,7 +248,7 @@ namespace llarp
} }
if(m_NextIP < m_MaxIP) if(m_NextIP < m_MaxIP)
{ {
nextIP = ++m_NextIP; nextIP = htonl(++m_NextIP);
m_AddrToIP.insert(std::make_pair(addr, nextIP)); m_AddrToIP.insert(std::make_pair(addr, nextIP));
m_IPToAddr.insert(std::make_pair(nextIP, addr)); m_IPToAddr.insert(std::make_pair(nextIP, addr));
} }

@ -661,6 +661,7 @@ namespace llarp
if(itr != m_PendingServiceLookups.end()) if(itr != m_PendingServiceLookups.end())
{ {
itr->second(addr, nullptr); itr->second(addr, nullptr);
m_PendingServiceLookups.erase(itr);
} }
return false; return false;
} }

Loading…
Cancel
Save