Matias Fontanini
f29566d6d9
Implement IPv6::recv_response
2018-02-25 10:42:16 -08:00
Ed Catmur
1038c6f7f3
Don't call &* on PDUIterator
2018-02-03 09:32:43 -08:00
Jeff Ebert
8efc0271f5
Don't include dot11.h in tins.h if it is not configured in the library ( #277 )
2018-02-03 09:31:24 -08:00
Matias Fontanini
f44b253a42
Fix memory leak in PDU's move assignment operator
...
Fixes #272
2017-12-14 14:42:46 -03:00
Matias Fontanini
8f85a6e557
Append padding to IPv6 options
...
Relates to #270
2017-12-12 10:33:17 -03:00
Matias Fontanini
a3dd057147
Use first IP fragment as base for reassembly
...
Fixes #225 for good
2017-12-03 13:50:02 -08:00
mavrikiy
39f3b24058
Fix dhcpv6::duid_type constructor from duid_ll ( #266 )
2017-11-06 09:29:57 -08:00
Santiago Alessandri
8e50756afa
Add MPLS experimental field ( #265 )
...
* Add experimental field to MPLS PDU
See RFC-4950 https://tools.ietf.org/html/rfc4950
* Add tests for MPLS' experimental field
2017-11-04 12:08:34 -07:00
Ed Catmur
983325bfdf
Ensure TCP::OptionTypes has 8-bit range ( #259 )
...
When reading TCP packets with esoteric (or corrupt) values for option types, the asan fsanitize=enum will trigger if the read value is not in range of the enum. The range of a classic (pre-C++11) enum with no negative enumerators is determined by the highest bit set in any of its enumerators, so if `TCP::OptionTypes` has highest enumerator `ALTCHK = 14` it cannot take values above 15.
Define enumerators (per IANA) with bit 7 set to ensure that `TCP::OptionTypes` can take any 8-bit value.
An alternative (C++11 only) would be to give `TCP::OptionTypes` underlying type `uint8_t`.
2017-10-19 10:17:51 -07:00
Matias Fontanini
f4635a696e
Fix build issues when disabling Dot11
...
Fixes #258
2017-10-18 06:40:51 -07:00
Alex Collins
04e29858ee
Add RawPDU c'tor for const payload_type&. ( #253 )
...
* Add RawPDU c'tor for const payload_type &.
* Correct indentation.
2017-10-12 20:02:28 -07:00
juno0812
b43d2f74e4
Add getter/setter for more data field in Dot11Base ( #252 )
2017-10-04 07:03:17 -07:00
Matias Fontanini
f2766db829
Add IPv4/6Address::size member function
2017-10-01 20:38:54 -07:00
Matias Fontanini
db0fb7f20d
Don't convert IPv6Address to string when hashing
2017-10-01 20:33:06 -07:00
Matias Fontanini
a6817528bc
Use absolute include paths
...
Fixes #250
2017-09-21 20:48:57 -07:00
solvingj
a7dd867503
Fix hash<IPv4/6Address> build issues in VC
...
* fixed compile failure due to macro
* add functional to cxxstd.h to try to fix mac
* clang bug identified, moving functional include to later
* last step, move hash def to header
* avoid allocation on hash
* set ipv6 back to string hash
2017-09-19 19:00:28 -07:00
solvingj
e48f64daac
Remove include directories CMakeLists files
...
* simply consolidate 6 files into 6 lines
* narrowed glob on inc and simplified
2017-09-14 09:32:27 -07:00
Matias Fontanini
171067eb22
Keep first fragment during IPv4 reassembly
...
Fixes #225
2017-09-10 16:39:15 -07:00
Christopher Tran
5df1c354f0
added cipher and akm suites from 802.11-2016
2017-08-12 13:34:13 -07:00
Matias Fontanini
eb0d82ce89
Add more documentation on partial stream following
...
Fixes #227
2017-08-05 19:21:21 -07:00
Matias Fontanini
f89e922d72
Add missing TINS_API on address types
...
Fixes #229
2017-08-05 19:12:12 -07:00
Andrea Barberio
87c0e3a337
Add set_pcap_sniffing_method to specify either pcap_loop or pcap_dispatch
2017-07-23 09:38:11 -07:00
Matias Fontanini
3e6e25d0aa
Add support for XChannel field on RadioTap
2017-06-05 20:44:03 -07:00
Matias Fontanini
77ca5c2701
Add missing radiotap parsing fields
2017-06-05 20:44:03 -07:00
Matias Fontanini
2f528876ad
Add back RadioTap::TSTF
2017-06-05 20:44:03 -07:00
Matias Fontanini
aa64e34880
Keep current flags as member in RadioTapParser
2017-06-05 20:44:03 -07:00
Matias Fontanini
5fcde41023
Use RadioTapParser/Writer in RadioTap
2017-06-05 20:44:03 -07:00
Matias Fontanini
63e22fc349
Add RadioTapWriter class
2017-06-05 20:44:03 -07:00
Matias Fontanini
7af1ec0984
Add some useful member functions to RadioTapParser
2017-06-05 20:44:03 -07:00
Matias Fontanini
4e95797710
Allow constructing RadioTapParser from an empty buffer
2017-06-05 20:44:03 -07:00
Matias Fontanini
a641589b09
Make RadioTapParser work using only the options buffer
2017-06-05 20:44:03 -07:00
Matias Fontanini
b8e4c7248b
Add RadioTapParser class
2017-06-05 20:44:03 -07:00
Matias Fontanini
d29296935e
Fix C++03 build issues on PDU option
2017-06-05 20:44:03 -07:00
Matias Fontanini
1da2c1dcdc
Add overload of Sniffer ctor taking only the device
2017-06-05 20:44:03 -07:00
Matias Fontanini
7589a0a108
Rename IPv6::add_ext_header to IPv6::add_header (deprecate former)
2017-06-05 20:44:03 -07:00
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