if (number>last_rule_number):
last_rule_number = number
- return "sfatables-%d-%s"%(last_rule_number,type)
+ return "sfatables-%d-%s"%(last_rule_number+1,type)
-
-
- def call(self, command_options, match_options, target_options):
- filename = match_dir + "/"+match_options.match_name+".xml"
+ def call_gen(self, dir, options):
+ filename = dir + "/"+options.name+".xml"
xmldoc = libxml2.parseFile(filename)
p = xmldoc.xpathNewContext()
- supplied_arguments = match_options.arguments
+ supplied_arguments = options.arguments
for option in supplied_arguments:
option_name = option['name']
- option_value = getattr(match_options,option_name)
+ option_value = getattr(options,option_name)
- if (hasattr(match_options,option_name)):
+ if (hasattr(options,option_name)):
context = p.xpathEval("//rule/argument[name='%s']"%option_name)
if (not context):
raise Exception('Unknown option %s for match %s'%(option,option['name']))
chain = command_options.args[0]
filename = self.getnextfilename('match',chain)
- xmldoc.saveFile(filename)
+ file_path = sfatables_config + '/' + chain + '/' + filename
+ xmldoc.saveFile(file_path)
p.xpathFreeContext()
xmldoc.freeDoc()
-
return True
+ def call(self, command_options, match_options, target_options):
+ ret = self.call_gen(match_dir, match_options)
+ if (ret):
+ ret = self.call_gen(target_dir, target_options)
+
+ return ret