def initialize(*args)
zone = args[0]
conf_file = args[1]
kasp_file = args[2]
config = args[3]
working_folder = args[4]
syslog = args[5]
return if args.length > 6
tracker_folder = (working_folder + File::SEPARATOR +
"tracker").untaint
begin
Dir.mkdir(tracker_folder) unless File.directory?(tracker_folder)
rescue Errno::ENOENT
syslog.log(LOG_ERR, "Can't create working folder : #{tracker_folder}")
KASPAuditor.exit("Can't create working folder : #{tracker_folder}", 1)
end
tracker_filename = tracker_folder + File::SEPARATOR + zone + ".config"
tracker_filename = (tracker_filename.to_s + "").untaint
if !(load_last_config_changes(tracker_filename))
reset_elements(config, conf_file, kasp_file)
end
kasp_file = (kasp_file.to_s + "").untaint
conf_file = (conf_file.to_s + "").untaint
conf_timestamp = File.mtime(conf_file).to_i
kasp_timestamp = File.mtime(kasp_file).to_i
@conf_timestamp = conf_timestamp
@kasp_timestamp = kasp_timestamp
new_enforcer_interval = load_enforcer_interval(conf_file)
if !(new_enforcer_interval == @enforcer_interval.value)
@enforcer_interval = Element.new(new_enforcer_interval, conf_timestamp)
end
timestamp = kasp_timestamp
if (kasp_file != @kasp_filename.value)
@kasp_filename = Element.new(kasp_file, conf_timestamp)
if (conf_timestamp < timestamp)
timestamp = conf_timestamp
end
end
check_kasp_config(config, timestamp)
write_config_changes(tracker_filename)
end