示例#1
0
Clamd_Stat clamd_prepare(void) {
    debug_print("Creating socket\n");
    if (!config.clamd_config_type || (config.clamd_host != NULL && config.clamd_port > 0)) {
        if (config.clamd_host == NULL || config.clamd_port < 1) {
            /* error */
            return NO_SOCKET;
        }
        /* Manual configuration has highest priority */
        debug_print("Using user input: %s:%d\n",
                    config.clamd_host, config.clamd_port);
        clamd_create_config_manual(config.clamd_host, config.clamd_port);
    }
    else if (config.clamd_config_type || config.clamd_config_folder != NULL) {
        if (config.clamd_config_folder == NULL) {
            /* error */
            return NO_SOCKET;
        }
        debug_print("Using clamd.conf: %s\n", config.clamd_config_folder);
        clamd_create_config_automatic(config.clamd_config_folder);
    }
    else {
        /* Fall back. Try enable anyway */
        if (! clamd_find_socket())
            return NO_SOCKET;
    }

    return clamd_init(NULL);
}
示例#2
0
gboolean clamd_find_socket() {
	const gchar** config_dir = config_dirs;
	gchar *clamd_conf = NULL;
	
	while (*config_dir) {
		clamd_conf = g_strdup_printf("%s/clamd.conf", *config_dir++);
		debug_print("Looking for %s\n", clamd_conf);
		if (g_file_test(clamd_conf, G_FILE_TEST_EXISTS))
			break;
		g_free(clamd_conf);
		clamd_conf = NULL;
	}
	if (! clamd_conf)
		return FALSE;

	debug_print("Using %s to find configuration\n", clamd_conf);
	clamd_create_config_automatic(clamd_conf);
	g_free(clamd_conf);

	return TRUE;
}