8e1f92ef7e91b141ce738a10592e0ba53591043d
[tests.git] / system / template-qemu / iptables.py
1 #!/usr/bin/python
2
3 import sys
4 import re
5
6 def main ():
7     fin=open(sys.argv[1])
8     fou=open(sys.argv[2],"w")
9     ip=sys.argv[3]
10     
11     found=False
12     lo_matcher=re.compile("\A(?P<left>.+)\s+-i\s+lo\s+-j\s+ACCEPT")
13     # what comes out of iptables-save has short-options syntax
14     ip_matcher=re.compile(".*-(s|d) %s"%ip)
15     for line in fin.readlines():
16         attempt=lo_matcher.match(line)
17         if attempt:
18             fou.write(line)
19             # open-up for this IP
20             fou.write("%s -s %s -j ACCEPT\n"%(attempt.group('left'),ip))
21             fou.write("%s -d %s -j ACCEPT\n"%(attempt.group('left'),ip))
22             found=True
23         else:
24             attempt = ip_matcher.match(line)
25             # do not rewrite old lines for this ip
26             if not attempt:
27                 fou.write(line)
28
29     fin.close()
30     fou.close()
31     if found : return 0
32     else : return 1
33
34 if __name__ == '__main__':
35     main()
36