redis {
  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
}
lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
options = {
	filters = "fuzzy_check";
	pidfile = "{= env.TMPDIR =}/rspamd.pid";
	control_socket = "{= env.TMPDIR =}/rspamd.sock mode=0600";
	url_tld = "{= env.TESTDIR =}/../lua/unit/test_tld.dat";
	dns {
		retransmits = 10;
		timeout = 2s;
	}
}
logging = {
	type = "file",
	level = "debug"
	filename = "{= env.TMPDIR =}/rspamd.log"
}
metric = {
	name = "default",
	actions = {
		reject = 100500,
	}
	unknown_weight = 1
        symbol {
            weight = 10.0;
            name = "{= env.FLAG1_SYMBOL =}";
        }
        symbol {
            weight = -1.0;
            name = "{= env.FLAG2_SYMBOL =}";
        }
}

worker {
	type = normal
	bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}";
	count = 1
	task_timeout = 60s;
}

worker {
        type = controller
        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}";
        count = 1
        secure_ip = ["{= env.LOCAL_ADDR =}"];
        stats_path = "{= env.TMPDIR =}/stats.ucl";
}

worker {
	count = 1;
        backend = "{= env.FUZZY_BACKEND =}";
	bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_FUZZY =}";
	type = "fuzzy";
	hashfile = "{= env.TMPDIR =}/fuzzy.db";
	allow_update = ["{= env.LOCAL_ADDR =}"];
	encrypted_only = {= env.FUZZY_ENCRYPTED_ONLY =};
	keypair {
		privkey = "{= env.KEY_PVT1 =}";
		pubkey = "{= env.KEY_PUB1 =}";
	}
	dynamic_keys_map = "{= env.TESTDIR =}/configs/maps/fuzzy_keymap.map";
	{= env.SETTINGS_FUZZY_WORKER =}
}

fuzzy_check {
	min_bytes = 100;
	timeout = 1s;
	retransmits = 10;

	rule {
	  min_bytes = 0;
	  min_length = 0;
		algorithm = "{= env.FUZZY_ALGORITHM =}";
		servers = "{= env.LOCAL_ADDR =}:{= env.PORT_FUZZY =}";
		symbol = "R_TEST_FUZZY";
		max_score = 10.0;
		mime_types = ["application/*"];
		read_only = false;
		skip_unknown = true;
		skip_hashes = "{= env.TMPDIR =}/skip_hash.map";
		fuzzy_key = {= env.FUZZY_KEY =};
		fuzzy_shingles_key = {= env.FUZZY_SHINGLES_KEY =};
		{= env.SETTINGS_FUZZY_CHECK =}
.include "{= env.FUZZY_INCLUDE =}";
		fuzzy_map = {
			R_TEST_FUZZY_DENIED {
				max_score = 10.0;
				flag = {= env.FLAG1_NUMBER =};
			}
			R_TEST_FUZZY_WHITE {
				max_score = 1.0;
				flag = {= env.FLAG2_NUMBER =};
			}
		}
	}
}
