mirror of
https://github.com/mfontanini/libtins
synced 2026-01-28 04:34:27 +01:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e52091ecf | ||
|
|
dafb299ea3 | ||
|
|
659bec56d7 | ||
|
|
8c1bea6f84 | ||
|
|
d8d1dc003b | ||
|
|
c2bb52b82f | ||
|
|
1f5456b18b | ||
|
|
dc702f4fd6 | ||
|
|
2a8101eef3 | ||
|
|
20702ddaff | ||
|
|
f4e2701705 | ||
|
|
776ae4e83b | ||
|
|
2158c7a92e | ||
|
|
b53bad7b29 | ||
|
|
6c92bcdad1 | ||
|
|
b949e56d15 | ||
|
|
18ff3e7b6a | ||
|
|
eb7628eca4 | ||
|
|
7e90c8be6a |
16
CHANGES.md
16
CHANGES.md
@@ -1,3 +1,19 @@
|
|||||||
|
##### v4.2 - Fri Mar 8 04:15:13 UTC 2019
|
||||||
|
|
||||||
|
- Updated location of installed CMake files in unix systems (#331)
|
||||||
|
|
||||||
|
- Fix check to detect cross compilation (#330)
|
||||||
|
|
||||||
|
- Allow getting a PDU's advertised size and use it in `PacketWriter` (#324)
|
||||||
|
|
||||||
|
- Install DLLs in right directory (#326)
|
||||||
|
|
||||||
|
- Add missing Dot11 tagged option types (#305)
|
||||||
|
|
||||||
|
- Add support for DLT_RAW (#313)
|
||||||
|
|
||||||
|
- Fix potential invalid memory accesses when parsing RadioTap (#322)
|
||||||
|
|
||||||
##### v4.1 - Tue Dec 11 02:08:48 UTC 2018
|
##### v4.1 - Tue Dec 11 02:08:48 UTC 2018
|
||||||
|
|
||||||
- Fix serialization for QinQ (#316)
|
- Fix serialization for QinQ (#316)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ ENDIF(LIBTINS_BUILD_SHARED)
|
|||||||
|
|
||||||
# The version number.
|
# The version number.
|
||||||
SET(TINS_VERSION_MAJOR 4)
|
SET(TINS_VERSION_MAJOR 4)
|
||||||
SET(TINS_VERSION_MINOR 1)
|
SET(TINS_VERSION_MINOR 2)
|
||||||
SET(TINS_VERSION_PATCH 0)
|
SET(TINS_VERSION_PATCH 0)
|
||||||
SET(LIBTINS_VERSION "${TINS_VERSION_MAJOR}.${TINS_VERSION_MINOR}")
|
SET(LIBTINS_VERSION "${TINS_VERSION_MAJOR}.${TINS_VERSION_MINOR}")
|
||||||
|
|
||||||
@@ -234,6 +234,9 @@ CONFIGURE_FILE(
|
|||||||
IF (NOT CMAKE_INSTALL_LIBDIR)
|
IF (NOT CMAKE_INSTALL_LIBDIR)
|
||||||
SET(CMAKE_INSTALL_LIBDIR lib)
|
SET(CMAKE_INSTALL_LIBDIR lib)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
IF (NOT CMAKE_INSTALL_BINDIR)
|
||||||
|
SET(CMAKE_INSTALL_BINDIR bin)
|
||||||
|
ENDIF()
|
||||||
# The library output directory
|
# The library output directory
|
||||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||||
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||||
@@ -308,6 +311,12 @@ ENDIF()
|
|||||||
# CMake project configuration export
|
# CMake project configuration export
|
||||||
# **********************************
|
# **********************************
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
set(CONF_CMAKE_INSTALL_DIR lib/cmake/libtins)
|
||||||
|
else()
|
||||||
|
set(CONF_CMAKE_INSTALL_DIR CMake)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Add all targets to the build-tree export set
|
# Add all targets to the build-tree export set
|
||||||
EXPORT(
|
EXPORT(
|
||||||
TARGETS tins
|
TARGETS tins
|
||||||
@@ -334,13 +343,13 @@ INSTALL(
|
|||||||
FILES
|
FILES
|
||||||
"${PROJECT_BINARY_DIR}/libtinsConfig.cmake"
|
"${PROJECT_BINARY_DIR}/libtinsConfig.cmake"
|
||||||
"${PROJECT_BINARY_DIR}/libtinsConfigVersion.cmake"
|
"${PROJECT_BINARY_DIR}/libtinsConfigVersion.cmake"
|
||||||
DESTINATION CMake
|
DESTINATION ${CONF_CMAKE_INSTALL_DIR}
|
||||||
COMPONENT dev
|
COMPONENT dev
|
||||||
)
|
)
|
||||||
|
|
||||||
# Install the export set for use with the install-tree
|
# Install the export set for use with the install-tree
|
||||||
INSTALL(
|
INSTALL(
|
||||||
EXPORT libtinsTargets
|
EXPORT libtinsTargets
|
||||||
DESTINATION CMake
|
DESTINATION ${CONF_CMAKE_INSTALL_DIR}
|
||||||
COMPONENT dev
|
COMPONENT dev
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -79,14 +79,14 @@ function(cxx11_check_feature FEATURE_NAME RESULT_VAR)
|
|||||||
set(_SRCFILE_FAIL "${_SRCFILE_BASE}_fail.cpp")
|
set(_SRCFILE_FAIL "${_SRCFILE_BASE}_fail.cpp")
|
||||||
set(_SRCFILE_FAIL_COMPILE "${_SRCFILE_BASE}_fail_compile.cpp")
|
set(_SRCFILE_FAIL_COMPILE "${_SRCFILE_BASE}_fail_compile.cpp")
|
||||||
|
|
||||||
if (CROSS_COMPILING)
|
if (CMAKE_CROSSCOMPILING)
|
||||||
try_compile(${RESULT_VAR} "${_bindir}" "${_SRCFILE}"
|
try_compile(${RESULT_VAR} "${_bindir}" "${_SRCFILE}"
|
||||||
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
||||||
if (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
|
if (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
|
||||||
try_compile(${RESULT_VAR} "${_bindir}_fail" "${_SRCFILE_FAIL}"
|
try_compile(${RESULT_VAR} "${_bindir}_fail" "${_SRCFILE_FAIL}"
|
||||||
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
||||||
endif (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
|
endif (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
|
||||||
else (CROSS_COMPILING)
|
else (CMAKE_CROSSCOMPILING)
|
||||||
try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
|
try_run(_RUN_RESULT_VAR _COMPILE_RESULT_VAR
|
||||||
"${_bindir}" "${_SRCFILE}"
|
"${_bindir}" "${_SRCFILE}"
|
||||||
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
||||||
@@ -105,7 +105,7 @@ function(cxx11_check_feature FEATURE_NAME RESULT_VAR)
|
|||||||
set(${RESULT_VAR} FALSE)
|
set(${RESULT_VAR} FALSE)
|
||||||
endif (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
|
endif (_COMPILE_RESULT_VAR AND _RUN_RESULT_VAR)
|
||||||
endif (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
|
endif (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL})
|
||||||
endif (CROSS_COMPILING)
|
endif (CMAKE_CROSSCOMPILING)
|
||||||
if (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
|
if (${RESULT_VAR} AND EXISTS ${_SRCFILE_FAIL_COMPILE})
|
||||||
try_compile(_TMP_RESULT "${_bindir}_fail_compile" "${_SRCFILE_FAIL_COMPILE}"
|
try_compile(_TMP_RESULT "${_bindir}_fail_compile" "${_SRCFILE_FAIL_COMPILE}"
|
||||||
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
COMPILE_DEFINITIONS "${CXX11_COMPILER_FLAGS}")
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ class Dot3;
|
|||||||
class SLL;
|
class SLL;
|
||||||
class Loopback;
|
class Loopback;
|
||||||
class PPI;
|
class PPI;
|
||||||
|
class IP;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \struct DataLinkType
|
* \struct DataLinkType
|
||||||
@@ -73,6 +74,7 @@ TINS_MAKE_DATA_LINK_TYPE(Loopback, DLT_LOOP)
|
|||||||
TINS_MAKE_DATA_LINK_TYPE(PPI, DLT_PPI)
|
TINS_MAKE_DATA_LINK_TYPE(PPI, DLT_PPI)
|
||||||
TINS_MAKE_DATA_LINK_TYPE(Dot11, DLT_IEEE802_11)
|
TINS_MAKE_DATA_LINK_TYPE(Dot11, DLT_IEEE802_11)
|
||||||
TINS_MAKE_DATA_LINK_TYPE(RadioTap, DLT_IEEE802_11_RADIO)
|
TINS_MAKE_DATA_LINK_TYPE(RadioTap, DLT_IEEE802_11_RADIO)
|
||||||
|
TINS_MAKE_DATA_LINK_TYPE(IP, DLT_RAW)
|
||||||
|
|
||||||
#undef TINS_MAKE_DATA_LINK_TYPE
|
#undef TINS_MAKE_DATA_LINK_TYPE
|
||||||
|
|
||||||
|
|||||||
@@ -127,9 +127,148 @@ public:
|
|||||||
ERP_INFORMATION,
|
ERP_INFORMATION,
|
||||||
TS_DELAY,
|
TS_DELAY,
|
||||||
TCLAS_PROCESSING,
|
TCLAS_PROCESSING,
|
||||||
QOS_CAPABILITY = 46,
|
HT_CAPABILITY,
|
||||||
|
QOS_CAPABILITY,
|
||||||
RSN = 48,
|
RSN = 48,
|
||||||
EXT_SUPPORTED_RATES = 50,
|
EXT_SUPPORTED_RATES = 50,
|
||||||
|
AP_CHANNEL_REPORT,
|
||||||
|
NEIGHBOR_REPORT,
|
||||||
|
RCPI,
|
||||||
|
MOBILITY_DOMAIN_MDE,
|
||||||
|
FAST_BSS_TRANSITION_FTE,
|
||||||
|
TIMEOUT_INTERVAL,
|
||||||
|
RIC_DATA_RDE,
|
||||||
|
DSE_REG_LOC,
|
||||||
|
SUPPORTED_OP_CLASSES,
|
||||||
|
EXT_CH_SWITCH_ANNOUNCEMENT,
|
||||||
|
HT_OPERATION,
|
||||||
|
SEC_CH_OFFSET,
|
||||||
|
BSS_AVG_ACCESS_DELAY,
|
||||||
|
ANTENNA,
|
||||||
|
RSNI,
|
||||||
|
MEASUREMENT_PILOT_TRANSMISSION,
|
||||||
|
BSS_AVAIL_ADMISSION_CAPACITY,
|
||||||
|
BSS_AC_ACCESS_DELAY,
|
||||||
|
TIME_ADVERTISEMENT,
|
||||||
|
RM_ENABLED_CAP,
|
||||||
|
MULTIPLE_BSSID,
|
||||||
|
BSS_2040_COEX,
|
||||||
|
BSS_2040_INTOLERANT_CH_REPORT,
|
||||||
|
OVERLAPPING_BSS_SCAN_PARAM,
|
||||||
|
RIC_DESCRIPTOR,
|
||||||
|
MGMT_MIC,
|
||||||
|
EVENT_REQ = 78,
|
||||||
|
EVENT_REPORT,
|
||||||
|
DIAG_REQ,
|
||||||
|
DIAG_REPORT,
|
||||||
|
LOCATION_PARAMS,
|
||||||
|
NONTRANSMITTED_BSSID_CAP,
|
||||||
|
SSID_LIST,
|
||||||
|
MULTIPLE_BSSID_INDEX,
|
||||||
|
FMS_DESCRIPTOR,
|
||||||
|
FMS_REQ,
|
||||||
|
FMS_RESP,
|
||||||
|
QOS_TRAFFIC_CAP,
|
||||||
|
BSS_MAX_IDLE_PERIOD,
|
||||||
|
TFS_REQ,
|
||||||
|
TFS_RESP,
|
||||||
|
WNM_SLEEP_MODE,
|
||||||
|
TIM_BROADCAST_REQ,
|
||||||
|
TIM_BROADCAST_RESP,
|
||||||
|
COLLOCATED_INTERFERENCE_REPORT,
|
||||||
|
CH_USAGE,
|
||||||
|
TIME_ZONE,
|
||||||
|
DMS_REQ,
|
||||||
|
DMS_RESP,
|
||||||
|
LINK_ID,
|
||||||
|
WAKEUP_SCHEDULE,
|
||||||
|
CH_SWITCH_TIMING,
|
||||||
|
PTI_CONTROL,
|
||||||
|
TPU_BUFFER_STATUS,
|
||||||
|
INTERWORKING,
|
||||||
|
ADVERTISEMENT_PROTOCOL,
|
||||||
|
EXPEDITED_BANDWIDTH_REQ,
|
||||||
|
QOS_MAP,
|
||||||
|
ROAMING_CONSORTIUM,
|
||||||
|
EMERG_ALERT_ID,
|
||||||
|
MESH_CONFIG,
|
||||||
|
MESH_ID,
|
||||||
|
MESH_LINK_METRIC_REPORT,
|
||||||
|
CONGESTION_NOTIFICATION,
|
||||||
|
MESH_PEERING_MGMT,
|
||||||
|
MESH_CH_SWITCH_PARAMS,
|
||||||
|
MESH_AWAKE_WINDOW,
|
||||||
|
BEACON_TIMING,
|
||||||
|
MCCAOP_SETUP_REQ,
|
||||||
|
MCCAOP_SETUP_REPLY,
|
||||||
|
MCCAOP_ADVERTISEMENT,
|
||||||
|
MCCAOP_TEARDOWN,
|
||||||
|
GANN,
|
||||||
|
RANN,
|
||||||
|
EXT_CAP,
|
||||||
|
PREQ = 130,
|
||||||
|
PREP,
|
||||||
|
PERR,
|
||||||
|
PXU = 137,
|
||||||
|
PXUC,
|
||||||
|
AUTH_MESH_PEER_EX,
|
||||||
|
MIC,
|
||||||
|
DEST_URI,
|
||||||
|
UAPSD_COEX,
|
||||||
|
DMG_WAKEUP_SCHEDULE,
|
||||||
|
EXT_SCHEDULE,
|
||||||
|
STA_AVAIL,
|
||||||
|
DMG_TSPEC,
|
||||||
|
NEXT_DMG_ATI,
|
||||||
|
DMG_CAP,
|
||||||
|
DMG_OP = 151,
|
||||||
|
DMG_BSS_PARAM_CHG,
|
||||||
|
DMG_BEAM_REFINEMENT,
|
||||||
|
CH_MEASUREMENT_FEEDBACK,
|
||||||
|
AWAKE_WINDOW = 157,
|
||||||
|
MULTIBAND,
|
||||||
|
ADDBA_ESXT,
|
||||||
|
NEXTPCP_LIST,
|
||||||
|
PCP_HANDOVER,
|
||||||
|
DMG_LINK_MARGIN,
|
||||||
|
SWITCHING_STREAM,
|
||||||
|
SESSION_TRANSITION,
|
||||||
|
DYNAMIC_TONE_PAIRING_REPORT,
|
||||||
|
CLUSTER_REPORT,
|
||||||
|
RELAY_CAP,
|
||||||
|
RELAY_TRANSFER_PARAM_SET,
|
||||||
|
BEAMLINK_MAINTENANCE,
|
||||||
|
MULTIPLE_MAC_SUBLAYERS,
|
||||||
|
UPID,
|
||||||
|
DMG_LINK_ADAPTATION_ACK,
|
||||||
|
MCCAOP_ADV_OVERVIEW = 174,
|
||||||
|
QUIET_PERIOD_REQ,
|
||||||
|
QUIET_PERIOD_RESP = 177,
|
||||||
|
QMF_POLICY = 181,
|
||||||
|
ECAPC_POLICY = 182,
|
||||||
|
CLUSTER_TIME_OFFSET,
|
||||||
|
INTRA_ACCESS_CAT_PRIORITY,
|
||||||
|
SCS_DESCRIPTOR,
|
||||||
|
QLOAD_REPORT,
|
||||||
|
HCCA_TXOP_UPDATE_COUNT,
|
||||||
|
HIGHER_LAYER_STREAM_ID,
|
||||||
|
GCR_GROUP_ADDR,
|
||||||
|
ANTENNA_SECTOR_ID_PATTERN,
|
||||||
|
VHT_CAP,
|
||||||
|
VHT_OP,
|
||||||
|
EXT_BSS_LOAD,
|
||||||
|
WIDE_BANDWIDTH_CH_SWITCH,
|
||||||
|
TRANSMIT_POWER_ENVELOPE,
|
||||||
|
CH_SWITCH_WRAPPER,
|
||||||
|
AID,
|
||||||
|
QUIET_CHANNEL,
|
||||||
|
OP_MODE_NOTIFY,
|
||||||
|
UPSIM,
|
||||||
|
REDUCED_NEIGHBOR_REPORT,
|
||||||
|
TVHT_OP,
|
||||||
|
DEV_LOC = 204,
|
||||||
|
WHITE_SPACE_MAP,
|
||||||
|
FINE_TUNING_MEASUREMENT_PARAMS,
|
||||||
VENDOR_SPECIFIC = 221
|
VENDOR_SPECIFIC = 221
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -281,6 +281,10 @@ public:
|
|||||||
|
|
||||||
/* Getters */
|
/* Getters */
|
||||||
|
|
||||||
|
uint32_t advertised_size() const {
|
||||||
|
return static_cast<uint32_t>(tot_len());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Getter for the header length field.
|
* \brief Getter for the header length field.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -281,6 +281,12 @@ public:
|
|||||||
*/
|
*/
|
||||||
uint32_t size() const;
|
uint32_t size() const;
|
||||||
|
|
||||||
|
/** \brief The whole chain of PDU's advertised size, including this one.
|
||||||
|
*
|
||||||
|
* Returns the sum of this and all children PDU's advertised size.
|
||||||
|
*/
|
||||||
|
virtual uint32_t advertised_size() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Getter for the inner PDU.
|
* \brief Getter for the inner PDU.
|
||||||
* \return The current inner PDU. Might be a null pointer.
|
* \return The current inner PDU. Might be a null pointer.
|
||||||
|
|||||||
@@ -114,7 +114,11 @@ public:
|
|||||||
RadioTap::option current_option();
|
RadioTap::option current_option();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the pointer at which the current option is located
|
* \brief Gets the pointer at which the current option is located
|
||||||
|
*
|
||||||
|
* A past-the-end pointer may be returned in case of malformed input or
|
||||||
|
* end of data. Its validity must be checked (e.g. using
|
||||||
|
* \ref RadioTapParser.has_fields) before dereference.
|
||||||
*/
|
*/
|
||||||
const uint8_t* current_option_ptr() const;
|
const uint8_t* current_option_ptr() const;
|
||||||
|
|
||||||
|
|||||||
@@ -219,6 +219,7 @@ SET_TARGET_PROPERTIES(tins PROPERTIES VERSION ${LIBTINS_VERSION} SOVERSION ${LIB
|
|||||||
INSTALL(
|
INSTALL(
|
||||||
TARGETS tins
|
TARGETS tins
|
||||||
EXPORT libtinsTargets
|
EXPORT libtinsTargets
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
COMPONENT dev
|
COMPONENT dev
|
||||||
|
|||||||
@@ -70,12 +70,12 @@ void PacketWriter::write(Packet& packet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PacketWriter::write(PDU& pdu, const struct timeval& tv) {
|
void PacketWriter::write(PDU& pdu, const struct timeval& tv) {
|
||||||
PDU::serialization_type buffer = pdu.serialize();
|
|
||||||
struct pcap_pkthdr header;
|
struct pcap_pkthdr header;
|
||||||
memset(&header, 0, sizeof(header));
|
memset(&header, 0, sizeof(header));
|
||||||
header.ts = tv;
|
header.ts = tv;
|
||||||
|
header.len = static_cast<bpf_u_int32>(pdu.advertised_size());
|
||||||
|
PDU::serialization_type buffer = pdu.serialize();
|
||||||
header.caplen = static_cast<bpf_u_int32>(buffer.size());
|
header.caplen = static_cast<bpf_u_int32>(buffer.size());
|
||||||
header.len = static_cast<bpf_u_int32>(buffer.size());
|
|
||||||
pcap_dump((u_char*)dumper_, &header, &buffer[0]);
|
pcap_dump((u_char*)dumper_, &header, &buffer[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,6 +85,14 @@ uint32_t PDU::size() const {
|
|||||||
return sz;
|
return sz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t PDU::advertised_size() const {
|
||||||
|
uint32_t result = header_size() + trailer_size();
|
||||||
|
if (inner_pdu_) {
|
||||||
|
result += inner_pdu()->advertised_size();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void PDU::send(PacketSender &, const NetworkInterface &) {
|
void PDU::send(PacketSender &, const NetworkInterface &) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ const RadioTapParser::FieldMetadata RadioTapParser::RADIOTAP_METADATA[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const uint32_t RadioTapParser::MAX_RADIOTAP_FIELD = sizeof(RADIOTAP_METADATA) /
|
const uint32_t RadioTapParser::MAX_RADIOTAP_FIELD = sizeof(RADIOTAP_METADATA) /
|
||||||
sizeof(FieldMetadata) + 1;
|
sizeof(FieldMetadata);
|
||||||
|
|
||||||
#if TINS_IS_LITTLE_ENDIAN
|
#if TINS_IS_LITTLE_ENDIAN
|
||||||
TINS_BEGIN_PACK
|
TINS_BEGIN_PACK
|
||||||
@@ -135,9 +135,6 @@ void align_buffer(const uint8_t* buffer_start, const uint8_t*& buffer, uint32_t
|
|||||||
uint32_t offset = (buffer - buffer_start) & (n - 1);
|
uint32_t offset = (buffer - buffer_start) & (n - 1);
|
||||||
if (offset) {
|
if (offset) {
|
||||||
offset = n - offset;
|
offset = n - offset;
|
||||||
if (TINS_UNLIKELY(offset > size)) {
|
|
||||||
throw malformed_packet();
|
|
||||||
}
|
|
||||||
buffer += offset;
|
buffer += offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user