1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00
Commit Graph

259 Commits

Author SHA1 Message Date
Matias Fontanini
34072f733c Fix next header handling on IPv6
This was broken by design. Each header held the next header's
type, which made iterating through them very tricky (you'd have
to look at the previous header's next header value to know the
current one while doing so).

Now each header contains its own value and the next header
value is computed during serialization and then reverted back
after that.
2017-06-05 20:44:03 -07:00
Matias Fontanini
9442233a8a Calculate IPv6 headers size on demand 2017-06-05 20:44:03 -07:00
Matias Fontanini
993831709d Improve DNS class performance slightly 2017-06-05 20:44:03 -07:00
Matias Fontanini
fa85aa3f8b Performance improvements
* 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-06-05 20:44:03 -07:00
Matias Fontanini
8021112fea Use vector instead of lists everywhere 2017-06-05 20:44:03 -07:00
Matias Fontanini
80f424b6b3 Use TINS_DEPRECATED on old Sniffer constructors 2017-06-05 20:44:03 -07:00
Matias Fontanini
1ef5be352a Use custom exceptions everywhere 2017-06-05 20:44:03 -07:00
Matias Fontanini
1a83801722 Remove useless includes 2017-06-05 20:44:03 -07:00
Matias Fontanini
3c2f40ec02 Split pdu_option.h into a source file as well 2017-06-05 20:44:03 -07:00
Matias Fontanini
b47dc3f77c Only call memcpy in PDUOption if size > 0 2017-06-05 20:44:03 -07:00
Matias Fontanini
f1e726f503 Don't dereference iterator in memory helpers if size == 0 2017-06-05 20:44:03 -07:00
Matias Fontanini
1ec6006f33 Add missing stdexcept include in routing_utils.cpp 2017-06-05 20:44:03 -07:00
Matias Fontanini
9677c06036 Fix build issues due to std::hash missing 2017-06-05 20:44:03 -07:00
Matias Fontanini
a07b3e8a3a Remove inclusion of algorithm almost everywhere 2017-06-05 20:44:03 -07:00
Matias Fontanini
58a4d336b9 Move memory helpers implementation into a source file 2017-06-05 20:44:03 -07:00
Matias Fontanini
86da3818ff Remove useless includes 2017-06-05 20:44:03 -07:00
Matias Fontanini
815889bd22 Move seq_compare into its own header file 2017-06-05 20:44:03 -07:00
Matias Fontanini
be48947ead Move is_dot3 into details/pdu_helpers.h 2017-06-05 20:44:03 -07:00
Matias Fontanini
3e7188edf7 Move internals' PDU helpers into their own files 2017-06-05 20:44:03 -07:00
Matias Fontanini
3d4f9285c9 Move PDU utils into their own file 2017-06-05 20:44:03 -07:00
Matias Fontanini
e556f4147f Move resolution utils into their own file 2017-06-05 20:44:03 -07:00
Matias Fontanini
4e4f7a2390 Move Utils::gateway_from_ip into routing utils files 2017-06-05 20:44:03 -07:00
Matias Fontanini
35e65d018c Move routing related functions into their own header file 2017-06-05 20:44:03 -07:00
Matias Fontanini
d061fced7e Move frequency (channel) utils into their own file 2017-06-05 20:44:03 -07:00
Matias Fontanini
89202c5dd5 Move checksum utils into their own file 2017-06-05 20:44:03 -07:00
Matias Fontanini
110adc58dc Move ICMP extension helpers into their own file 2017-06-05 20:44:03 -07:00
Matias Fontanini
6f32a1982a Remove useless stdexcept includes 2017-06-05 20:44:03 -07:00
Matias Fontanini
c50c4c105c Add relative includes on detail headers 2017-06-05 20:44:03 -07:00
Matias Fontanini
ac69278676 Move helpers for address types in internals.h to their own header 2017-06-05 20:44:03 -07:00
Matias Fontanini
af325f00d9 Move functions to parse /proc/net/routes into utils.cpp 2017-06-05 20:44:03 -07:00
Matias Fontanini
28fa1b2f7e Move internal crypto stuff from the header into the source file 2017-06-05 20:44:03 -07:00
Matias Fontanini
ab51787323 Move Internals::byte_array into crypto.cpp 2017-06-05 20:44:03 -07:00
Matias Fontanini
92bda42ac1 Move sniffer callback traits into detail/type_traits.h 2017-06-05 20:44:03 -07:00
Matias Fontanini
730e69463c Include detail/type_traits.h rather than internals.h on pdu_option 2017-06-05 20:44:03 -07:00
Matias Fontanini
07f000f65a Move type traits into a separate file 2017-06-05 20:44:03 -07:00
Matias Fontanini
3e7d30e01c Don't include heavy STL headers like <algorithm> in header files
This provides a considerable compilation time reduction and most
of these were just using std::copy/fill which can be replaced by
memcpy/memset, as all of their uses were applied to POD types
2017-06-05 20:44:03 -07:00
Matias Fontanini
22c72955f5 Remove Storage template parameter from HWAddress, move impl to cpp
This is a breaking ABI change. This might break some forward
declarations and hopefully no one was actually using the
Storage type for anything.
2017-06-05 20:44:03 -07:00
Matias Fontanini
6f681f6519 Move smart_ptr definition into new file detail/smart_ptr.h 2017-06-05 20:44:03 -07:00
Matias Fontanini
c7273ddd30 Add PDU iterator class 2017-06-05 20:44:03 -07:00
Matias Fontanini
2c6ef2a5c0 Update license date to 2017 2017-06-05 20:44:03 -07:00
Matias Fontanini
4eb4dfe5fa Remove parent parameter from write_serialization
This is no longer needed as each PDU knows its parent PDU already
2017-06-05 20:44:03 -07:00
Matias Fontanini
8838ddf921 Add parent PDU member to PDU class
Now this is a bidirectional list of PDUs
2017-06-05 20:44:03 -07:00
Matias Fontanini
7f8644cb39 Merge branch 'develop' 2017-03-23 19:31:10 -07:00
Matias Fontanini
799ba2b4b6 Allow disabling pcap packet capture 2017-03-21 19:04:33 -07:00
Matias Fontanini
7607610cf9 Merge branch 'develop' 2017-01-31 21:37:41 -08:00
Kyle Fazzari
a71a3d29ff Fix -Wextra compiler warnings. (#184)
* 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>
2017-01-25 13:26:11 -08:00
Ed Catmur
9051197603 Use actual payload length to construct inner PDU. (#179)
Fixes #178
2017-01-16 09:36:33 -08:00
Matias Fontanini
c69ea0c1fb Keep original out of order callback on recovery mode 2016-10-30 13:08:17 -07:00
Matias Fontanini
a63387f85e Add Stream recovery mode 2016-10-30 11:38:50 -07:00
Matias Fontanini
df7e7b391d Add flag to Stream to know whether it was attached 2016-10-30 10:31:16 -07:00