Forum: CFEngine Help
Subject: Re: Odd behaviour of splitstring
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,25023,25025#msg-25025

Back to splitstring.  It seems that duplicate lines are skipped suggesting 
there is some associative array being used in the source code.

 -> Edited file /tmp/ipnow
R: raw: # Generated by iptables-save v1.4.8 on Fri Feb 24 17:32:10 2012
*raw
:PREROUTING ACCEPT [377:34237]
:OUTPUT ACCEPT [159:45044]
COMMIT
# Completed on Fri Feb 24 17:32:10 2012
# Generated by iptables-save v1.4.8 on Fri Feb 24 17:32:10 2012
*nat
neil
:PREROUTING ACCEPT [14:982]
:POSTROUTING ACCEPT [15:1058]
:OUTPUT ACCEPT [1:76]
neil
:br0_masq - [0:0]
-A POSTROUTING -o br0 -j br0_masq 
-A br0_masq -s 192.168.122.0/24 -j SNAT --to-source 46.21.99.2 
COMMIT
R:      EOF1
R: lines: # Generated by iptables-save v1.4.8 on Fri Feb 24 17:32:10 2012
R: lines: *raw
R: lines: :PREROUTING ACCEPT [377:34237]
R: lines: :OUTPUT ACCEPT [159:45044]
R: lines: COMMIT
R: lines: # Completed on Fri Feb 24 17:32:10 2012
R: lines: *nat
R: lines: neil
R: lines: :PREROUTING ACCEPT [14:982]
R: lines: :POSTROUTING ACCEPT [15:1058]
R: lines: :OUTPUT ACCEPT [1:76]
R: lines: :br0_masq - [0:0]
R: lines: -A POSTROUTING -o br0 -j br0_masq
R: lines: -A br0_masq -s 192.168.122.0/24 -j SNAT --to-source 46.21.99.2
R:      EOF2
R: rules: *raw
R: rules: :PREROUTING ACCEPT [377:34237]
R: rules: :OUTPUT ACCEPT [159:45044]
R: rules: COMMIT
R: rules: *nat
R: rules: neil
R: rules: :PREROUTING ACCEPT [14:982]
R: rules: :POSTROUTING ACCEPT [15:1058]
R: rules: :OUTPUT ACCEPT [1:76]
R: rules: :br0_masq - [0:0]
R: rules: -A POSTROUTING -o br0 -j br0_masq
R: rules: -A br0_masq -s 192.168.122.0/24 -j SNAT --to-source 46.21.99.2
R:      EOF3


See how the duplicate lines in raw, neil and COMMIT, are lost lines and rules.


bundle agent iptables_save{

        vars:

                "raw" string => execresult( "/bin/cat /root/inputs/now", 
"noshell");

                "lines" slist => splitstring( "${raw}", "\n", "100000");

                "rules" slist => grep( ".*?[^#]*", "lines" );

       reports:

                cfengine::

                        "raw: ${raw}";
                        "       EOF1";
                        "lines: ${lines}";
                        "       EOF2";
                        "rules: ${rules}";
                        "       EOF3";

}


_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to