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
4def995185
Fix build issue on VS
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
afb6ad488c
Use TINS_IS_CXX11 macro properly
2017-06-05 20:44:03 -07:00
Matias Fontanini
5d68211af2
Include iterator in network_interface
2017-06-05 20:44:03 -07:00
Matias Fontanini
887bccf0af
Fix undefined std::min use in PPPoE
2017-06-05 20:44:03 -07:00
Matias Fontanini
7eb067338f
Try to make VC happy with std::hash definition
2017-06-05 20:44:03 -07:00
Matias Fontanini
6896cc6346
Fix more build issues on appveyor
2017-06-05 20:44:03 -07:00
Matias Fontanini
de2f29b797
Fix build issue on appveyor
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
d9f92c46c4
Fix missing include for sstream on packet_sender.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
714b8d9810
Use checksum utils on crypto and icmp extension source files
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
36fedf4f65
Remove useless includes for utils.h on tests
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