diff --git a/source/controler.c b/source/controler.c index 5d4cd42..62b21a1 100644 --- a/source/controler.c +++ b/source/controler.c @@ -256,10 +256,11 @@ void device_remove() { if (index!=-1) { index_selected = -1; disk_status* _config = (disk_status*)all_config.v_disk_status.pfVectorGet(&all_config.v_disk_status, index); + all_config.v_disk_remove.pfVectorAdd(&all_config.v_disk_status, yon_char_new(_config->device)); del_disk_to_vector_device(&all_config.v_user, _config->device); del_disk_to_vector_device(&all_config.v_group, _config->device); del_disk_to_vector_device(&all_config.v_general, _config->device); - model_clear_cfg_device(_config); + //model_clear_cfg_device(_config); all_config.v_disk_status.pfVectorDelete(&all_config.v_disk_status, index); all_config.flag_save = 1; } diff --git a/source/model/load.c b/source/model/load.c index d79ce28..33bb98b 100644 --- a/source/model/load.c +++ b/source/model/load.c @@ -10,11 +10,13 @@ void load_template_load_cfg(config_all* _all_config, char* cmd) { load_free_vector(_all_config, &_all_config->v_group); load_free_vector(_all_config, &_all_config->v_project); free_remove_vector(_all_config, &_all_config->v_remove); + model_free_vector_string(&_all_config->v_disk_remove); vector_init(&_all_config->v_user); vector_init(&_all_config->v_group); vector_init(&_all_config->v_project); vector_init(&_all_config->v_disk_status); vector_init(&_all_config->v_remove); + vector_init(&_all_config->v_disk_remove); for (int index = 0; index < size; index++) { char* str_key_value = yon_char_new(cfg[index]); char* str_key = yon_char_divide_search(str_key_value, "=",-1); diff --git a/source/model/model.h b/source/model/model.h index fbcca55..ee0e126 100644 --- a/source/model/model.h +++ b/source/model/model.h @@ -35,6 +35,7 @@ typedef struct { vector v_group; vector v_project; vector v_disk_status; + vector v_disk_remove; vector v_remove; int flag_set_data; int flag_save; diff --git a/source/model/save.c b/source/model/save.c index 50f34af..326ca56 100644 --- a/source/model/save.c +++ b/source/model/save.c @@ -108,10 +108,10 @@ char* template_format_remove_save(config_all* _all_config, char* source_remove_c } char* template_format_remove_save_device(config_all* _all_config, char* source_remove_cmd) { - if (_all_config->v_disk_status.vectorList.total > 0) { - char* cmd = NULL; - for (int i=0; i < _all_config->v_disk_status.vectorList.total; i++) { - disk_status* _config = (disk_status*)_all_config->v_disk_status.pfVectorGet(&_all_config->v_disk_status, i); + char* cmd = NULL; + if (_all_config->v_disk_remove.vectorList.total > 0) { + for (int i=0; i < _all_config->v_disk_remove.vectorList.total; i++) { + disk_status* _config = (disk_status*)_all_config->v_disk_remove.pfVectorGet(&_all_config->v_disk_remove, i); if (_config->status == 0) { cmd = yon_char_unite(cmd, " DISK_QUOTA[usrquota:" , _config->device, "] ", NULL); cmd = yon_char_unite(cmd, " DISK_QUOTA[grpquota:" , _config->device, "] ", NULL); @@ -119,7 +119,7 @@ char* template_format_remove_save_device(config_all* _all_config, char* source_r } } } - return NULL; + return cmd; } @@ -134,12 +134,13 @@ int wrapper_template_save(config_all* _all_config, char* source_set_cmd, char* s if (str_cmd_remove != NULL) { philos_config_save(str_cmd_remove); } - if (str_cmd_set != NULL) { - philos_config_save(str_cmd_set); - } if (str_cmd_remove_device != NULL) { philos_config_save(yon_char_unite(source_remove_cmd, " " , str_cmd_remove_device, NULL)); } + if (str_cmd_set != NULL) { + philos_config_save(str_cmd_set); + } + } if (str_cmd_remove != NULL) {