bneradt commented on issue #6405:
URL: https://github.com/apache/trafficserver/issues/6405#issuecomment-898539171


   Stepping through with a debugger, it looks like the marshaled `value` from 
the field has the expected value:
   
   ```
   (gdb) f
   #0  LogFilterIP::is_match (this=0x30c7ec0, lad=0x7ff4a6b6af40) at 
LogFilter.cc:840
   840         zret = m_map.contains(reinterpret_cast<IpAddr &>(value));
   (gdb) l
   835       if (m_field && lad) {
   836         LogFieldIpStorage value;
   837         m_field->marshal(lad, reinterpret_cast<char *>(&value));
   838         // This is bad, we abuse the fact that the initial layout of 
LogFieldIpStorage and IpAddr
   839         // are identical. We should look at converting the log stuff to 
use IpAddr directly.
   840         zret = m_map.contains(reinterpret_cast<IpAddr &>(value));
   841       }
   842
   843       return zret;
   844     }
   (gdb) p value
   $11 = {
     _ip = {
       _family = 2
     }, 
     _ip4 = {
       <LogFieldIp> = {
         _family = 2
       }, 
       members of LogFieldIp4: 
       _addr = 16777343  // <--- This corresponds to 127.0.0.1
     }, 
     _ip6 = {
       <LogFieldIp> = {
         _family = 2
       }, 
       members of LogFieldIp6: 
       _addr = {
         __in6_u = {
           __u6_addr8 = 
"\177\000\000\001@\000\000\000\000\000\000\000@\000\000", 
           __u6_addr16 = {127, 256, 64, 0, 0, 0, 64, 0}, 
           __u6_addr32 = {16777343, 64, 0, 64}
         }
       }
     }
   }
   ```
   
   But the m_map of the local LogFilterIP is empty:
   
   ```
   (gdb) p m_map
   $12 = {
     static RAW_IP4_MIN_ADDR = 0, 
     static IP4_MIN_ADDR = {
       _family = 2, 
       _addr = {
         _ip4 = 0, 
         _ip6 = {
           __in6_u = {
             __u6_addr8 = '\000' <repeats 15 times>, 
             __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, 
             __u6_addr32 = {0, 0, 0, 0}
           }
         }, 
         _byte = '\000' <repeats 15 times>, 
         _u32 = {0, 0, 0, 0}, 
         _u64 = {0, 0}
       }, 
       static INVALID = {
         _family = 0, 
         _addr = {
           _ip4 = 0, 
           _ip6 = {
             __in6_u = {
               __u6_addr8 = '\000' <repeats 15 times>, 
               __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, 
               __u6_addr32 = {0, 0, 0, 0}
             }
           }, 
           _byte = '\000' <repeats 15 times>, 
           _u32 = {0, 0, 0, 0}, 
           _u64 = {0, 0}
         }, 
         static INVALID = <same as static member of an already seen type>
       }
     }, 
     static RAW_IP4_MAX_ADDR = 4294967295, 
     static IP4_MAX_ADDR = <same as static member of an already seen type>, 
     static RAW_IP6_MIN_ADDR = <same as static member of an already seen type>, 
     static IP6_MIN_ADDR = <same as static member of an already seen type>, 
     static RAW_IP6_MAX_ADDR = <same as static member of an already seen type>, 
     static IP6_MAX_ADDR = <same as static member of an already seen type>, 
     _m4 = 0x30c7f60, 
     _m6 = 0x0
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to