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

840 Commits

Author SHA1 Message Date
Saxon Parker
602ada7820 Fix Dot1Q serialization for non-qinq packets (#319) 2018-12-01 15:56:16 -08:00
Teodoro Vargas
57ac099703 Fix serialization for QinQ (#316)
* Add QinQ Frame

* Fix serialization for QinQ
2018-10-09 14:02:01 -07:00
Stefan Schmidt
3659d89c25 Rewrote hw_address_to_string to not require a stringstream (#299) 2018-05-31 13:28:06 -07:00
Matias Fontanini
5571a270d4 Make RadioTapParser::skip_to_field check for end of buffer (#296)
Fixes #295
2018-05-16 12:30:16 -07:00
Jim Hague
3f204321ce Ensure local include directory comes before system. (#293)
If building (say) libtins 4.0 on a system with 3.4 installed, you need
the libtins include files to come from the repository include, not the
system include directory. The OpenSSL and PCAP includes may be from
the system include, so we need to ensure the libtins include is the
first on the list - which means the last on the before list.
2018-05-09 20:30:58 -07:00
Matias Fontanini
63603b8ac8 Calculate IP option sizes properly
Fixes #288
2018-04-08 08:12:52 -07:00
Kasper Laudrup
fa79582b89 Add parsing of well known IPv6 extension headers (#287)
* Add parsing of well known IPv6 extension headers

Add classes for IPv6 extension headers defined in the IPv6 protocol
specification (RFC 2460) as well as functions for creating them from
the IPv6 class' ext_header type.

The currently known extension headers are Hop-By-Hop Option,
Destination Routing, Routing and Fragment.

* Cleanup after PR #287 comments

Pull in stuff from the std namespace with "using" instead of
qualifying with std::.

Keep starting braces on the same line.

Avoid potential copy when appending to vector.
2018-03-28 21:05:01 -07:00
stubbfel
342e2c77a7 Add missing operators to address classes (#275)
* * add or-operator and a simlple unit test for hw_address, ip_address, ipv6_address
* add not-operator and a simlple unit test for hw_address, ip_address, ipv6_address
* add greater-then-operator and a simlple unit test for ipv6_address
* add new constructor and a simlple unit test for network_interface, which use a ipv6_address to find the nic
* add override the function gateway_from_ip for ipv6_address parameter (untested)

* change the ipv6_address in NotMaskAdress_Test, so that the expceted addresses are valid for the winsock api

* Delete CMakeLists.txt.user

* * add  <=, >, >= operator for HWAddress with tests

* add  <=, >, >= operator for IPv4Address with tests
* add  <=,>= operator for IPv6Address with tests

* refactoring the  & , |, ~ operator of ipv6_address to "regular" operator
2018-03-28 20:44:28 -07:00
Matias Fontanini
544aa1b339 Don't assume IPv6 uses ICMPv6 underneath 2018-03-18 12:56:12 -07:00
Matias Fontanini
de4791f0c7 Allow users to specify library install dir
Fixes #273
2018-03-17 15:35:04 -07:00
Matias Fontanini
f29566d6d9 Implement IPv6::recv_response 2018-02-25 10:42:16 -08:00
Matias Fontanini
683550b297 Don't use nullptr in non C++11 code 2018-02-21 09:47:09 -08:00
Ed Catmur
971fdf7d1c Ignore (possibly malformed) options after EOL (#281) 2018-02-03 09:33:20 -08: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
Matias Fontanini
e16fe46d7a Fix invalid memory accesses when parsing bogus RadioTap 2017-11-25 17:12:30 -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
Alex Collins
c07cd40234 Fix #263 - Install only the headers which are enabled. (#264)
* Fix #263 - Install only the headers which are enabled.

* Fix #263 - Install only the headers which are enabled. Fix clumsy typo!
2017-10-28 10:23:09 -07:00
Alex Collins
d2addea9cf Reorders SOURCE includes alphanumerically, and adds HEADERS as source (#260)
* Reorders SOURCE includes alphanumerically, and adds HEADERS as sources to enable code completion in CLion.

* Add forward slash after variable to clarify path.

* Separate out DOT11 headers and sources.

* Reposition some sources as per general alpha sorting.
2017-10-26 16:23:20 -07:00
Alex Collins
f88c024b2f Fix minor typo in comment. (#261) 2017-10-24 14:31:45 -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
juno0812
b43d2f74e4 Add getter/setter for more data field in Dot11Base (#252) 2017-10-04 07:03:17 -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
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
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
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
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