1111
1212namespace pcpp
1313{
14+ namespace
15+ {
16+ // / @brief Converts a light_pcapng_t* to an opaque LightPcapNgHandle*.
17+ // / @param pcapngHandle The light_pcapng_t* to convert.
18+ // / @return An pointer to the opaque handle.
19+ internal::LightPcapNgHandle* toLightPcapNgHandle (light_pcapng_t * pcapngHandle)
20+ {
21+ return reinterpret_cast <internal::LightPcapNgHandle*>(pcapngHandle);
22+ }
23+
24+ // / @brief Converts an opaque LightPcapNgHandle* to a light_pcapng_t*.
25+ // / @param pcapngHandle The LightPcapNgHandle* to convert.
26+ // / @return A pointer to the light_pcapng_t.
27+ light_pcapng_t * toLightPcapNgT (internal::LightPcapNgHandle* pcapngHandle)
28+ {
29+ return reinterpret_cast <light_pcapng_t *>(pcapngHandle);
30+ }
31+ } // namespace
1432
1533 template <typename T, size_t N> constexpr size_t ARRAY_SIZE (T (&)[N])
1634 {
@@ -373,7 +391,7 @@ namespace pcpp
373391 return true ;
374392 }
375393
376- m_LightPcapNg = light_pcapng_open_read (m_FileName.c_str (), LIGHT_FALSE);
394+ m_LightPcapNg = toLightPcapNgHandle ( light_pcapng_open_read (m_FileName.c_str (), LIGHT_FALSE) );
377395 if (m_LightPcapNg == nullptr )
378396 {
379397 PCPP_LOG_ERROR (" Cannot open pcapng reader device for filename '" << m_FileName << " '" );
@@ -400,7 +418,7 @@ namespace pcpp
400418 light_packet_header pktHeader;
401419 const uint8_t * pktData = nullptr ;
402420
403- if (!light_get_next_packet (( light_pcapng_t *) m_LightPcapNg, &pktHeader, &pktData))
421+ if (!light_get_next_packet (toLightPcapNgT ( m_LightPcapNg) , &pktHeader, &pktData))
404422 {
405423 PCPP_LOG_DEBUG (" Packet could not be read. Probably end-of-file" );
406424 return false ;
@@ -409,7 +427,7 @@ namespace pcpp
409427 while (!m_BpfWrapper.matchPacketWithFilter (pktData, pktHeader.captured_length , pktHeader.timestamp ,
410428 pktHeader.data_link ))
411429 {
412- if (!light_get_next_packet (( light_pcapng_t *) m_LightPcapNg, &pktHeader, &pktData))
430+ if (!light_get_next_packet (toLightPcapNgT ( m_LightPcapNg) , &pktHeader, &pktData))
413431 {
414432 PCPP_LOG_DEBUG (" Packet could not be read. Probably end-of-file" );
415433 return false ;
@@ -462,7 +480,7 @@ namespace pcpp
462480 if (m_LightPcapNg == nullptr )
463481 return ;
464482
465- light_pcapng_close (( light_pcapng_t *) m_LightPcapNg);
483+ light_pcapng_close (toLightPcapNgT ( m_LightPcapNg) );
466484 m_LightPcapNg = nullptr ;
467485
468486 m_DeviceOpened = false ;
@@ -477,7 +495,7 @@ namespace pcpp
477495 return " " ;
478496 }
479497
480- light_pcapng_file_info* fileInfo = light_pcang_get_file_info (( light_pcapng_t *) m_LightPcapNg);
498+ light_pcapng_file_info* fileInfo = light_pcang_get_file_info (toLightPcapNgT ( m_LightPcapNg) );
481499 if (fileInfo == nullptr )
482500 return " " ;
483501 char * res = fileInfo->os_desc ;
@@ -496,7 +514,7 @@ namespace pcpp
496514 return " " ;
497515 }
498516
499- light_pcapng_file_info* fileInfo = light_pcang_get_file_info (( light_pcapng_t *) m_LightPcapNg);
517+ light_pcapng_file_info* fileInfo = light_pcang_get_file_info (toLightPcapNgT ( m_LightPcapNg) );
500518 if (fileInfo == nullptr )
501519 return " " ;
502520 char * res = fileInfo->hardware_desc ;
@@ -515,7 +533,7 @@ namespace pcpp
515533 return " " ;
516534 }
517535
518- light_pcapng_file_info* fileInfo = light_pcang_get_file_info (( light_pcapng_t *) m_LightPcapNg);
536+ light_pcapng_file_info* fileInfo = light_pcang_get_file_info (toLightPcapNgT ( m_LightPcapNg) );
519537 if (fileInfo == nullptr )
520538 return " " ;
521539 char * res = fileInfo->user_app_desc ;
@@ -534,7 +552,7 @@ namespace pcpp
534552 return " " ;
535553 }
536554
537- light_pcapng_file_info* fileInfo = light_pcang_get_file_info (( light_pcapng_t *) m_LightPcapNg);
555+ light_pcapng_file_info* fileInfo = light_pcang_get_file_info (toLightPcapNgT ( m_LightPcapNg) );
538556 if (fileInfo == nullptr )
539557 return " " ;
540558 char * res = fileInfo->file_comment ;
@@ -846,7 +864,7 @@ namespace pcpp
846864 light_pcapng_file_info* info =
847865 light_create_file_info (os.c_str (), hardware.c_str (), captureApp.c_str (), fileComment.c_str ());
848866
849- m_LightPcapNg = light_pcapng_open_write (m_FileName.c_str (), info, m_CompressionLevel);
867+ m_LightPcapNg = toLightPcapNgHandle ( light_pcapng_open_write (m_FileName.c_str (), info, m_CompressionLevel) );
850868 if (m_LightPcapNg == nullptr )
851869 {
852870 PCPP_LOG_ERROR (" Error opening file writer device for file '"
@@ -896,7 +914,7 @@ namespace pcpp
896914
897915 const uint8_t * pktData = ((RawPacket&)packet).getRawData ();
898916
899- light_write_packet (( light_pcapng_t *) m_LightPcapNg, &pktHeader, pktData);
917+ light_write_packet (toLightPcapNgT ( m_LightPcapNg) , &pktHeader, pktData);
900918 m_NumOfPacketsWritten++;
901919 return true ;
902920 }
@@ -930,7 +948,7 @@ namespace pcpp
930948
931949 light_pcapng_file_info* info = light_create_default_file_info ();
932950
933- m_LightPcapNg = light_pcapng_open_write (m_FileName.c_str (), info, m_CompressionLevel);
951+ m_LightPcapNg = toLightPcapNgHandle ( light_pcapng_open_write (m_FileName.c_str (), info, m_CompressionLevel) );
934952 if (m_LightPcapNg == nullptr )
935953 {
936954 PCPP_LOG_ERROR (" Error opening file writer device for file '"
@@ -955,7 +973,7 @@ namespace pcpp
955973 m_NumOfPacketsNotWritten = 0 ;
956974 m_NumOfPacketsWritten = 0 ;
957975
958- m_LightPcapNg = light_pcapng_open_append (m_FileName.c_str ());
976+ m_LightPcapNg = toLightPcapNgHandle ( light_pcapng_open_append (m_FileName.c_str () ));
959977 if (m_LightPcapNg == nullptr )
960978 {
961979 PCPP_LOG_ERROR (" Error opening file writer device in append mode for file '"
@@ -974,7 +992,7 @@ namespace pcpp
974992 if (!m_DeviceOpened || m_LightPcapNg == nullptr )
975993 return ;
976994
977- light_pcapng_flush (( light_pcapng_t *) m_LightPcapNg);
995+ light_pcapng_flush (toLightPcapNgT ( m_LightPcapNg) );
978996 PCPP_LOG_DEBUG (" File writer flushed to file '" << m_FileName << " '" );
979997 }
980998
@@ -983,7 +1001,7 @@ namespace pcpp
9831001 if (m_LightPcapNg == nullptr )
9841002 return ;
9851003
986- light_pcapng_close (( light_pcapng_t *) m_LightPcapNg);
1004+ light_pcapng_close (toLightPcapNgT ( m_LightPcapNg) );
9871005 m_LightPcapNg = nullptr ;
9881006
9891007 m_DeviceOpened = false ;
0 commit comments