@ -1505,17 +1505,17 @@ START_TEST(set_filter_rule_08)
" keyword_filter_substr-> \n "
" keyword_filter_substr-> \n "
" all_user_filter-> \n "
" all_user_filter-> \n "
" ip_filter_exact-> \n "
" ip_filter_exact-> \n "
" ip 0 192.168.0. 2 (exact)= \n "
" ip 0 192.168.0. 1 (exact)= \n "
" ip exact: \n "
" ip exact: \n "
" 0: 192.168.0.3 (exact, action=||||match, log=|||||, precedence=1) \n "
" 0: 192.168.0.2 (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=2) \n "
" 1: 192.168.0.1 (exact, action=||||match, log=|||||, precedence=1) \n "
" 1: 192.168.0.3 (exact, action=||||match, log=|||||, precedence=1) \n "
" ip 1 192.168.0.2 (exact)= \n "
" ip exact: \n "
" 0: 192.168.0.1 (exact, action=||||match, log=|||||, precedence=1) \n "
" 1: 192.168.0.3 (exact, action=||||match, log=|||||, precedence=1) \n "
" ip substring: \n "
" ip substring: \n "
" 0: 192.168.0. (substring, action=||||match, log=|||||, precedence=1) \n "
" 0: 192.168.0. (substring, action=||||match, log=|||||, precedence=1) \n "
" 1: (all_sites, substring, action=||||match, log=|||||, precedence=1) \n "
" 1: (all_sites, substring, action=||||match, log=|||||, precedence=1) \n "
" ip 1 192.168.0.1 (exact)= \n "
" ip exact: \n "
" 0: 192.168.0.3 (exact, action=||||match, log=|||||, precedence=1) \n "
" 1: 192.168.0.2 (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=2) \n "
" ip_filter_substr-> \n "
" ip_filter_substr-> \n "
" all_filter-> \n " ) , " failed to translate rule: %s " , s ) ;
" all_filter-> \n " ) , " failed to translate rule: %s " , s ) ;
free ( s ) ;
free ( s ) ;
@ -1615,7 +1615,16 @@ START_TEST(set_filter_rule_09)
" keyword_filter_substr-> \n "
" keyword_filter_substr-> \n "
" all_user_filter-> \n "
" all_user_filter-> \n "
" ip_filter_exact-> \n "
" ip_filter_exact-> \n "
" ip 0 192.168.0.2 (exact)= \n "
" ip 0 192.168.0.1 (exact)= \n "
" ip exact: \n "
" 0: 192.168.0.2 (exact, action=||||, log=|||||, precedence=0) \n "
" port exact: \n "
" 0: 443 (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=3) \n "
" 1: 192.168.0.3 (exact, action=||||match, log=|||||!mirror, precedence=2) \n "
" port exact: \n "
" 0: 443 (exact, action=||||match, log=|||||, precedence=2) \n "
" 1: 80 (exact, action=||||match, log=|||||, precedence=2) \n "
" ip 1 192.168.0.2 (exact)= \n "
" ip exact: \n "
" ip exact: \n "
" 0: 192.168.0.1 (exact, action=||||, log=|||||, precedence=0) \n "
" 0: 192.168.0.1 (exact, action=||||, log=|||||, precedence=0) \n "
" port exact: \n "
" port exact: \n "
@ -1623,15 +1632,6 @@ START_TEST(set_filter_rule_09)
" port substring: \n "
" port substring: \n "
" 0: 80 (substring, action=||||match, log=|||||, precedence=2) \n "
" 0: 80 (substring, action=||||match, log=|||||, precedence=2) \n "
" 1: (all_ports, substring, action=||||match, log=|||||, precedence=2) \n "
" 1: (all_ports, substring, action=||||match, log=|||||, precedence=2) \n "
" ip 1 192.168.0.1 (exact)= \n "
" ip exact: \n "
" 0: 192.168.0.3 (exact, action=||||match, log=|||||!mirror, precedence=2) \n "
" port exact: \n "
" 0: 80 (exact, action=||||match, log=|||||, precedence=2) \n "
" 1: 443 (exact, action=||||match, log=|||||, precedence=2) \n "
" 1: 192.168.0.2 (exact, action=||||, log=|||||, precedence=0) \n "
" port exact: \n "
" 0: 443 (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=3) \n "
" ip_filter_substr-> \n "
" ip_filter_substr-> \n "
" all_filter-> \n " ) , " failed to translate rule: %s " , s ) ;
" all_filter-> \n " ) , " failed to translate rule: %s " , s ) ;
free ( s ) ;
free ( s ) ;
@ -1721,17 +1721,17 @@ START_TEST(set_filter_rule_10)
" userkeyword_filter_exact-> \n "
" userkeyword_filter_exact-> \n "
" userkeyword_filter_substr-> \n "
" userkeyword_filter_substr-> \n "
" user_filter_exact-> \n "
" user_filter_exact-> \n "
" user 0 root (exact)= \n "
" user 0 daemon (exact)= \n "
" sni exact: \n "
" sni exact: \n "
" 0: example2.com (exact, action=||||match, log=|||||, precedence=3) \n "
" 0: example.com (exact, action=||||match, log=|||||, precedence=3) \n "
" 1: example.com (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=4) \n "
" 1: example3.com (exact, action=||||match, log=|||||, precedence=3) \n "
" user 1 daemon (exact)= \n "
" sni exact: \n "
" 0: example3.com (exact, action=||||match, log=|||||, precedence=3) \n "
" 1: example.com (exact, action=||||match, log=|||||, precedence=3) \n "
" sni substring: \n "
" sni substring: \n "
" 0: .example.com (substring, action=||||match, log=|||||, precedence=3) \n "
" 0: .example.com (substring, action=||||match, log=|||||, precedence=3) \n "
" 1: (all_sites, substring, action=||||match, log=|||||, precedence=3) \n "
" 1: (all_sites, substring, action=||||match, log=|||||, precedence=3) \n "
" user 1 root (exact)= \n "
" sni exact: \n "
" 0: example.com (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=4) \n "
" 1: example2.com (exact, action=||||match, log=|||||, precedence=3) \n "
" user_filter_substr-> \n "
" user_filter_substr-> \n "
" keyword_filter_exact-> \n "
" keyword_filter_exact-> \n "
" keyword_filter_substr-> \n "
" keyword_filter_substr-> \n "
@ -1852,36 +1852,36 @@ START_TEST(set_filter_rule_11)
s = filter_str ( opts - > filter ) ;
s = filter_str ( opts - > filter ) ;
fail_unless ( ! strcmp ( s , " filter=> \n "
fail_unless ( ! strcmp ( s , " filter=> \n "
" userkeyword_filter_exact-> \n "
" userkeyword_filter_exact-> \n "
" user 0 root (exact)=\n "
" user 0 daemon (exact)=\n "
" keyword exact: \n "
" keyword exact: \n "
" keyword 0 desc (exact)= \n "
" keyword 0 desc (exact)= \n "
" cn exact: \n "
" cn exact: \n "
" 0: example2.com (exact, action=||||match, log=|||||, precedence=4) \n "
" 0: example.com (exact, action=||||match, log=|||||, precedence=4) \n "
" 1: example.com (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=5) \n "
" 1: example3.com (exact, action=||||match, log=|||||, precedence=4) \n "
" user 1 daemon (exact)= \n "
" keyword exact: \n "
" keyword 0 desc2 (exact)= \n "
" cn exact: \n "
" 0: example4.com (exact, action=||||match, log=|||||, precedence=4) \n "
" keyword 1 desc (exact)= \n "
" cn exact: \n "
" 0: example3.com (exact, action=||||match, log=|||||, precedence=4) \n "
" 1: example.com (exact, action=||||match, log=|||||, precedence=4) \n "
" cn substring: \n "
" cn substring: \n "
" 0: .example.com (substring, action=||||match, log=|||||, precedence=4) \n "
" 0: .example.com (substring, action=||||match, log=|||||, precedence=4) \n "
" 1: (all_sites, substring, action=||||match, log=|||||, precedence=4) \n "
" 1: (all_sites, substring, action=||||match, log=|||||, precedence=4) \n "
" keyword 1 desc2 (exact)= \n "
" cn exact: \n "
" 0: example4.com (exact, action=||||match, log=|||||, precedence=4) \n "
" user 1 root (exact)= \n "
" keyword exact: \n "
" keyword 0 desc (exact)= \n "
" cn exact: \n "
" 0: example.com (exact, action=divert|split|pass||, log=!connect|master|!cert|content|!pcap|mirror, precedence=5) \n "
" 1: example2.com (exact, action=||||match, log=|||||, precedence=4) \n "
" userkeyword_filter_substr-> \n "
" userkeyword_filter_substr-> \n "
" user_filter_exact-> \n "
" user_filter_exact-> \n "
" user_filter_substr-> \n "
" user_filter_substr-> \n "
" keyword_filter_exact-> \n "
" keyword_filter_exact-> \n "
" keyword 0 desc3 (exact)= \n "
" keyword 0 desc (exact)= \n "
" uri exact: \n "
" 0: example6.com (exact, action=||||match, log=|||||, precedence=3) \n "
" keyword 1 desc (exact)= \n "
" cn exact: \n "
" cn exact: \n "
" 0: example5.com (exact, action=||||match, log=|||||, precedence=3) \n "
" 0: example5.com (exact, action=||||match, log=|||||, precedence=3) \n "
" host substring: \n "
" host substring: \n "
" 0: (all_sites, substring, action=||||match, log=|||||, precedence=3) \n "
" 0: (all_sites, substring, action=||||match, log=|||||, precedence=3) \n "
" keyword 1 desc3 (exact)= \n "
" uri exact: \n "
" 0: example6.com (exact, action=||||match, log=|||||, precedence=3) \n "
" keyword_filter_substr-> \n "
" keyword_filter_substr-> \n "
" all_user_filter-> \n "
" all_user_filter-> \n "
" ip_filter_exact-> \n "
" ip_filter_exact-> \n "
@ -1958,26 +1958,26 @@ START_TEST(set_filter_rule_12)
" keyword_filter_substr-> \n "
" keyword_filter_substr-> \n "
" all_user_filter-> \n "
" all_user_filter-> \n "
" ip_filter_exact-> \n "
" ip_filter_exact-> \n "
" ip 0 192.168.0. 2 (exact)= \n "
" ip 0 192.168.0. 1 (exact)= \n "
" ip exact: \n "
" ip exact: \n "
" 0: 192.168.0. 4 (exact, action=||||, log=|||||, precedence=0)\n "
" 0: 192.168.0. 3 (exact, action=||||, log=|||||, precedence=0)\n "
" port exact: \n "
" port exact: \n "
" 0: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 0: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 192.168.0. 3 (exact, action=||||, log=|||||, precedence=0)\n "
" 1: 192.168.0. 4 (exact, action=||||, log=|||||, precedence=0)\n "
" port exact: \n "
" port exact: \n "
" 0: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 0: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" ip 1 192.168.0. 1 (exact)= \n "
" ip 1 192.168.0. 2 (exact)= \n "
" ip exact: \n "
" ip exact: \n "
" 0: 192.168.0. 4 (exact, action=||||, log=|||||, precedence=0)\n "
" 0: 192.168.0. 3 (exact, action=||||, log=|||||, precedence=0)\n "
" port exact: \n "
" port exact: \n "
" 0: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 0: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 192.168.0. 3 (exact, action=||||, log=|||||, precedence=0)\n "
" 1: 192.168.0. 4 (exact, action=||||, log=|||||, precedence=0)\n "
" port exact: \n "
" port exact: \n "
" 0: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 0: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 443 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" 1: 80 (exact, action=||||match, log=|!master|||!pcap|, precedence=3)\n "
" ip_filter_substr-> \n "
" ip_filter_substr-> \n "
" all_filter-> \n " ) , " failed to translate rule: %s " , s ) ;
" all_filter-> \n " ) , " failed to translate rule: %s " , s ) ;
free ( s ) ;
free ( s ) ;
@ -2051,26 +2051,26 @@ START_TEST(set_filter_rule_13)
s = filter_str ( opts - > filter ) ;
s = filter_str ( opts - > filter ) ;
fail_unless ( ! strcmp ( s , " filter=> \n "
fail_unless ( ! strcmp ( s , " filter=> \n "
" userkeyword_filter_exact-> \n "
" userkeyword_filter_exact-> \n "
" user 0 root (exact)=\n "
" user 0 daemon (exact)=\n "
" keyword exact: \n "
" keyword exact: \n "
" keyword 0 desc 2 (exact)= \n "
" keyword 0 desc 1 (exact)= \n "
" sni exact: \n "
" sni exact: \n "
" 0: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 0: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" keyword 1 desc 1 (exact)= \n "
" keyword 1 desc 2 (exact)= \n "
" sni exact: \n "
" sni exact: \n "
" 0: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 0: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" user 1 daemon (exact)=\n "
" user 1 root (exact)=\n "
" keyword exact: \n "
" keyword exact: \n "
" keyword 0 desc 2 (exact)= \n "
" keyword 0 desc 1 (exact)= \n "
" sni exact: \n "
" sni exact: \n "
" 0: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 0: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" keyword 1 desc 1 (exact)= \n "
" keyword 1 desc 2 (exact)= \n "
" sni exact: \n "
" sni exact: \n "
" 0: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 0: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 1 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" 1: site 2 (exact, action=||||match, log=connect|||content||, precedence=5)\n "
" userkeyword_filter_substr-> \n "
" userkeyword_filter_substr-> \n "
" user_filter_exact-> \n "
" user_filter_exact-> \n "
" user_filter_substr-> \n "
" user_filter_substr-> \n "