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
Steven
c439eccdf8
Implemented matching for ND protocol related ICMPv6 messages ( #257 )
...
- ROUTER_SOLICIT -> ROUTER_ADVERTIST
- NEIGHBOUR_SOLICIT -> NEIGHBOUR_ADVERTIST
Check if code equals zero according to https://tools.ietf.org/html/rfc4861#page-39
2017-10-12 20:03:10 -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
Alex Collins
ab2850e22e
Fix header install location. ( #256 )
2017-10-11 13:37:23 -07:00
Alex Collins
6429dcd03f
Correct "promiscuous" spelling in comments ( #254 )
2017-10-09 14:25:21 -07:00
juno0812
b43d2f74e4
Add getter/setter for more data field in Dot11Base ( #252 )
2017-10-04 07:03:17 -07:00
Matias Fontanini
2aab4cf126
Fix warnings in tests
2017-10-01 20:47:52 -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
Matias Fontanini
78b94fa350
Serialize Loopback on Windows and use proper flag for IPv6
2017-08-13 10:46:36 -07:00
Matias Fontanini
c84652af40
Add IPv6 layer parsing on Loopback packets
2017-08-13 10:35:24 -07:00
Matias Fontanini
19fd9a7c1d
Don't skip inner PDU parsing on LLC when building on Windows
...
Relates to issue #236
2017-08-13 10:34:41 -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
Matias Fontanini
ecacd4aee5
Only use IFF_POINTOPOINT on BSD when getting broadcast address
...
Fixes #232
2017-08-05 19:05:46 -07:00
Matias Fontanini
a17ec89332
Set pcap sniffing method on FileSniffer
...
Fixes #230
2017-07-26 10:27:54 -07:00
Matias Fontanini
7003541284
Fix merge conflicts with master
...
Conflicts:
src/pdu_option.cpp
2017-07-23 14:32:15 -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
Jeff Puckett
cfb9b646cc
doc fix typo
2017-06-11 10:58:34 -07:00
Matias Fontanini
eed8229a04
Use InputMemoryStream when parsing PDU options and ICMP extensions
2017-06-08 20:15:08 -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
ca3127ffbc
Fix some big endian issues
2017-06-05 20:44:03 -07:00
Matias Fontanini
77d965784e
Add support for DLT_RAW on BaseSniffer
...
Fixes #210
2017-06-05 20:44:03 -07:00
Matias Fontanini
edd289c645
Don't dereference vector if empty on RadioTapWriter
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
76395370de
Use the right checks to consider an interface up on Windows
...
Fixes #182
Thanks @gvanem!
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
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