示例#1
0
static void free_chip(sensors_chip *chip)
{
	int i;

	for (i = 0; i < chip->chips.fits_count; i++)
		free_chip_name(&chip->chips.fits[i]);
	free(chip->chips.fits);
	chip->chips.fits_count = chip->chips.fits_max = 0;

	for (i = 0; i < chip->labels_count; i++)
		free_label(&chip->labels[i]);
	free(chip->labels);
	chip->labels_count = chip->labels_max = 0;

	for (i = 0; i < chip->sets_count; i++)
		free_set(&chip->sets[i]);
	free(chip->sets);
	chip->sets_count = chip->sets_max = 0;

	for (i = 0; i < chip->computes_count; i++)
		free_compute(&chip->computes[i]);
	free(chip->computes);
	chip->computes_count = chip->computes_max = 0;

	for (i = 0; i < chip->ignores_count; i++)
		free_ignore(&chip->ignores[i]);
	free(chip->ignores);
	chip->ignores_count = chip->ignores_max = 0;
}
示例#2
0
int FSScan_ReloadConfig( void *module_config )
{
    fs_scan_config_t *conf = ( fs_scan_config_t * ) module_config;

    /* Parameters that can be modified dynamically */

    if ( conf->min_scan_interval != fs_scan_config.min_scan_interval )
    {
        DisplayLog( LVL_EVENT, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK "::min_scan_interval updated: %u->%u",
                    fs_scan_config.min_scan_interval, conf->min_scan_interval );
        fs_scan_config.min_scan_interval = conf->min_scan_interval;
    }

    if ( conf->max_scan_interval != fs_scan_config.max_scan_interval )
    {
        DisplayLog( LVL_EVENT, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK "::max_scan_interval updated: %u->%u",
                    fs_scan_config.max_scan_interval, conf->max_scan_interval );
        fs_scan_config.max_scan_interval = conf->max_scan_interval;
    }

    if ( conf->scan_retry_delay != fs_scan_config.scan_retry_delay )
    {
        DisplayLog( LVL_EVENT, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK "::scan_retry_delay updated: %u->%u",
                    fs_scan_config.scan_retry_delay, conf->scan_retry_delay );
        fs_scan_config.scan_retry_delay = conf->scan_retry_delay;
    }

    if ( conf->scan_op_timeout != fs_scan_config.scan_op_timeout )
    {
        DisplayLog( LVL_EVENT, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK "::scan_op_timeout updated: %u->%u",
                    fs_scan_config.scan_op_timeout, conf->scan_op_timeout );
        fs_scan_config.scan_op_timeout = conf->scan_op_timeout;
    }

    if ( conf->exit_on_timeout != fs_scan_config.exit_on_timeout )
    {
        DisplayLog( LVL_EVENT, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK "::exit_on_timeout updated: %s->%s",
                    bool2str(fs_scan_config.exit_on_timeout),
                    bool2str(conf->exit_on_timeout) );
        fs_scan_config.exit_on_timeout = conf->exit_on_timeout;
    }

    if ( conf->spooler_check_interval != fs_scan_config.spooler_check_interval )
    {
        DisplayLog( LVL_EVENT, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK "::spooler_check_interval updated: %u->%u",
                    fs_scan_config.spooler_check_interval, conf->spooler_check_interval );
        fs_scan_config.spooler_check_interval = conf->spooler_check_interval;
    }

    if ( strcmp( conf->completion_command, fs_scan_config.completion_command ) )
    {   
        DisplayLog( LVL_EVENT, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK "::completion_command updated: '%s'->'%s'",
                    fs_scan_config.completion_command, conf->completion_command );
        strcpy( fs_scan_config.completion_command, conf->completion_command);
    }


    /* Parameters that canNOT be modified dynamically */

    if ( conf->nb_threads_scan != fs_scan_config.nb_threads_scan )
        DisplayLog( LVL_MAJOR, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK
                    "::nb_threads_scan changed in config file, but cannot be modified dynamically" );


    if ( conf->nb_prealloc_tasks != fs_scan_config.nb_prealloc_tasks )
        DisplayLog( LVL_MAJOR, "FS_Scan_Config",
                    FSSCAN_CONFIG_BLOCK
                    "::nb_prealloc_tasks changed in config file, but cannot be modified dynamically" );

    /* compare ignore list */
    update_ignore( fs_scan_config.ignore_list, fs_scan_config.ignore_count,
                   conf->ignore_list, conf->ignore_count, FSSCAN_CONFIG_BLOCK );

    /* free conf structure */
    free_ignore( conf->ignore_list, conf->ignore_count ); 

    return 0;
}