# File ../../auditor/lib/kasp_auditor/changed_config.rb, line 93
    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
      
      # Now get the timestamps for the conf and kasp files
      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)
      # Has the enforcer interval changed?
      if !(new_enforcer_interval == @enforcer_interval.value)
        # If so, then store it along with the timestamp
        @enforcer_interval = Element.new(new_enforcer_interval, conf_timestamp)
      end
      # If the kasp_filename hasn't changed, then we can simply use the kasp_timestamp
      # for all KASP config items.
      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