@@ -823,13 +823,31 @@ LOCAL void moloch_rules_check_rule_fields(MolochSession_t * const session, Moloc
823
823
LOCAL void moloch_rules_match (MolochSession_t * const session , MolochRule_t * const rule )
824
824
{
825
825
if (rule -> log ) {
826
- char logStr [10000 ];
826
+ char ipStr [200 ];
827
+ char logStr [5000 ];
827
828
BSB bsb ;
829
+
830
+
831
+ BSB_INIT (bsb , ipStr , sizeof (ipStr ));
832
+
833
+ if (IN6_IS_ADDR_V4MAPPED (& session -> addr1 )) {
834
+ uint32_t ip1 = MOLOCH_V6_TO_V4 (session -> addr1 );
835
+ uint32_t ip2 = MOLOCH_V6_TO_V4 (session -> addr2 );
836
+ BSB_EXPORT_sprintf (bsb , "%u.%u.%u.%u => %u.%u.%u.%u:%u" , ip1 & 0xff , (ip1 >> 8 ) & 0xff , (ip1 >> 16 ) & 0xff , (ip1 >> 24 ) & 0xff ,
837
+ ip2 & 0xff , (ip2 >> 8 ) & 0xff , (ip2 >> 16 ) & 0xff , (ip2 >> 24 ) & 0xff , session -> port2 );
838
+ } else {
839
+ BSB_EXPORT_inet_ntop (bsb , AF_INET6 , & session -> addr1 );
840
+ BSB_EXPORT_cstr (bsb , " => " );
841
+ BSB_EXPORT_inet_ntop (bsb , AF_INET6 , & session -> addr2 );
842
+ BSB_EXPORT_sprintf (bsb , ".%u" , session -> port2 );
843
+ }
844
+
828
845
BSB_INIT (bsb , logStr , sizeof (logStr ));
829
846
830
847
moloch_rules_check_rule_fields (session , rule , -1 , & bsb );
848
+
831
849
if (BSB_LENGTH (bsb ) > 2 ) {
832
- LOG ("%s - %.*s" ,rule -> name , (int )BSB_LENGTH (bsb ) - 2 , logStr );
850
+ LOG ("%s - %s - % .*s" ,rule -> name , ipStr , (int )BSB_LENGTH (bsb ) - 2 , logStr );
833
851
}
834
852
}
835
853
MOLOCH_THREAD_INCR (rule -> matched );
0 commit comments