summaryrefslogtreecommitdiff
path: root/src/ip.cpp
AgeCommit message (Collapse)Author
2018-04-08Calculate IP option sizes properlyMatias Fontanini
Fixes #288
2017-09-21Use absolute include pathsMatias Fontanini
Fixes #250
2017-05-13Performance improvementsMatias Fontanini
* Remove option size memers on IP/TCP and instead calculate these when they're needed * Reorder members on IP/TCP so as to remove/decrease padding * Move most memory helpers impl into header file so they can be inlined * Make PDUOption's move ctor/assignment operator noexcept
2017-05-13Use vector instead of lists everywhereMatias Fontanini
2017-05-13Remove useless includesMatias Fontanini
2017-04-30Remove inclusion of algorithm almost everywhereMatias Fontanini
2017-04-30Move internals' PDU helpers into their own filesMatias Fontanini
2017-04-30Move checksum utils into their own fileMatias Fontanini
2017-04-30Include detail/type_traits.h rather than internals.h on pdu_optionMatias Fontanini
2017-04-29Update license date to 2017Matias Fontanini
2017-04-29Remove parent parameter from write_serializationMatias Fontanini
This is no longer needed as each PDU knows its parent PDU already
2017-01-25Fix -Wextra compiler warnings. (#184)Kyle Fazzari
* Fix -Wextra compiler warnings. Fix #183. Signed-off-by: Kyle Fazzari <github@status.e4ward.com> * Comment out unused parameters. This is done everywhere possible instead of using Internals::unused(). Note that this involved moving some implementations into the corresponding .cpp file. Signed-off-by: Kyle Fazzari <github@status.e4ward.com> * Fix warnings in tests as well. Signed-off-by: Kyle Fazzari <github@status.e4ward.com> * Leave IPv4Reassembler alone, it's growing. Signed-off-by: Kyle Fazzari <github@status.e4ward.com>
2016-09-29Set protocol to 0 if no inner_pdu on IPMatias Fontanini
2016-03-20Add active tests for IPv4Matias Fontanini
2016-02-28Make *MemoryStream use size_t rather than uint32_tMatias Fontanini
2016-02-21Fix IP fragment reassemble when packet has flags DF+MFMatias Fontanini
2016-02-20Add extract_metadata to main PDU classesMatias Fontanini
2016-02-04Rename IP header member to header_Matias Fontanini
2016-02-04Fix invalid endian on IP fragment offset on OSXMatias Fontanini
2016-01-31Update copyright noticeMatias Fontanini
2016-01-09Code cleanup and use same syntax on the entire projectMatias Fontanini
Initial code cleanup More code cleanup Cleanup more code Cleanup Dot11 code Fix OSX build issue Cleanup examples Fix ref and pointer declaration syntax Fix braces
2015-12-27Remove unused cassert header inclusionsMatias Fontanini
2015-12-26Add OutputMemoryStream and port most classes to use itMatias Fontanini
2015-12-24Add input memory stream class and port some PDUs to use itMatias Fontanini
2015-12-07Use endian independent way of setting IP fragment offset and flagsMatias Fontanini
2015-12-07Add IP::fragment_offset and IP::flagsMatias Fontanini
2015-11-08Always calculate IP checksumMatias Fontanini
Fixes #105
2015-08-17Add remove_option member to IP, TCP, Dot11, ICMPv6, DHCP and DHCPv6Matias Fontanini
2015-05-17Fix compilation warnings on Windows x64.Matias Fontanini
2015-05-02Replace WIN32 macro with _WIN32.Matias Fontanini
2015-04-20Perserve IP protocol when using RawPDUBen McMorran
Previously, the IP protocol field for non-fragmented packets was forcibly overwritten to the protocol of the inner PDU even if that PDU was a RawPDU. This behavior contradicts the documentation.
2014-11-25Fixed IP total length zero bug.Matias Fontanini
2014-10-25Added Loopback::matches_response.Matias Fontanini
2014-09-19Fixed OSX IP packet sending.Matias Fontanini
2014-07-31fix armv5 alignment issuesChristian Hammerl
2014-07-13Updated copyright notice.Matias Fontanini
2014-05-06Fixed compilation errors on Windows.Matias Fontanini
2013-12-16IP now uses PDUOption::to<>. Started porting ICMPv6 to do so as well.Matias Fontanini
2013-12-14IP packets sent using PacketSender::send_recv now match ICMP responses.Matias Fontanini
2013-12-04Fixed bug on IP when serializing fragmented packets.Matias Fontanini
The original protocol id was being overwritten with 0xff(unknown) when the inner_pdu was a RawPDU, even if it was just a fragment of a transport layer PDU. The protocol id is now kept if the packet is fragmented.
2013-11-17Added IPv4Reassembler class.Matias Fontanini
2013-11-16Fragmented IP packet's inner_pdu PDUs are not decoded now.Matias Fontanini
2013-11-04Removed useless include directives from ip.cpp and ipv6.cpp.Matias Fontanini
2013-11-04Added support for IPSec.Matias Fontanini
2013-11-04Created an overload of Internals::pdu_from_flag for transport layer PDUs.Matias Fontanini
2013-10-06Modified some examples fixed some doxygen documentation.Matias Fontanini
2013-08-29Added PDUAllocator class, which makes extending PDUs easier.Matias Fontanini
2013-07-14Replaced tabs for spaces in the previous commitSantiago Alessandri
2013-07-12Fixed issue related with EthernetII protocol.Santiago Alessandri
The Ethernet II protocol forces a minimum length of 60 bytes. It is necessary to add a trailer for padding of null-bytes when the inner_pdu's size does not meet the requirement. Also EthernetII packets received were being incorrectly parsed due to the existance of this padding. The issue has been solved and several tests were added. All tests successfully pass.
2013-04-23Fixed BSD notice. Updated AUTHORS file.Matias Fontanini