LCOV - code coverage report
Current view: top level - util/net - fd_ip6.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 21 21 100.0 %
Date: 2025-07-01 05:00:49 Functions: 3 9 33.3 %

          Line data    Source code
       1             : #ifndef HEADER_fd_src_util_net_fd_ip6_h
       2             : #define HEADER_fd_src_util_net_fd_ip6_h
       3             : 
       4             : #include "../bits/fd_bits.h"
       5             : 
       6             : static inline void
       7             : fd_ip6_addr_ip4_mapped( uchar      ip6_addr[16],
       8           3 :                         uint const ip4_addr ) {
       9           3 :   memset( ip6_addr, 0, 10 );
      10           3 :   ip6_addr[ 10 ] = (uchar)0xff;
      11           3 :   ip6_addr[ 11 ] = (uchar)0xff;
      12           3 :   memcpy( ip6_addr+12, &ip4_addr, 4 );
      13           3 : }
      14             : 
      15             : static inline int
      16         243 : fd_ip6_addr_is_ip4_mapped( uchar const ip6_addr[16] ) {
      17         243 :   return (
      18         243 :     (ip6_addr[  0 ]==0x00) & (ip6_addr[  1 ]==0x00) &
      19         243 :     (ip6_addr[  2 ]==0x00) & (ip6_addr[  3 ]==0x00) &
      20         243 :     (ip6_addr[  4 ]==0x00) & (ip6_addr[  5 ]==0x00) &
      21         243 :     (ip6_addr[  6 ]==0x00) & (ip6_addr[  7 ]==0x00) &
      22         243 :     (ip6_addr[  8 ]==0x00) & (ip6_addr[  9 ]==0x00) &
      23         243 :     (ip6_addr[ 10 ]==0xff) & (ip6_addr[ 11 ]==0xff)
      24         243 :   );
      25         243 : }
      26             : 
      27             : static inline uint
      28           3 : fd_ip6_addr_to_ip4( uchar const ip6_addr[16] ) {
      29           3 :   uint ip4_addr;
      30           3 :   memcpy( &ip4_addr, ip6_addr+12, 4 );
      31           3 :   return ip4_addr;
      32           3 : }
      33             : 
      34             : #endif /* HEADER_fd_src_util_net_fd_ip6_h */

Generated by: LCOV version 1.14