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; }
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; }