|
|
@ -275,12 +275,12 @@ void load_global_cfg() {
|
|
|
|
void clear_array() {
|
|
|
|
void clear_array() {
|
|
|
|
philos_free_string_array(&main_config.type_quota, main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.type_quota, main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.quota_volume , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.quota_volume , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.soft_raw_limit , main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.soft_raw_limit, main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.hard_raw_limit , main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.hard_raw_limit, main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.swap , main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.swap , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.cpu_limit, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.cpu_limit, main_config.size_tree_view);
|
|
|
|
philos_free_string_array_n3(&main_config.i_o_limit_read, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_read, main_config.size_tree_view);
|
|
|
|
philos_free_string_array_n3(&main_config.i_o_limit_write, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_write, main_config.size_tree_view);
|
|
|
|
philos_free_string_array_n3(&main_config.disk, main_config.size_tree_view);
|
|
|
|
philos_free_string_array_n3(&main_config.disk, main_config.size_tree_view);
|
|
|
|
|
|
|
|
|
|
|
|
philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line);
|
|
|
|
philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line);
|
|
|
@ -335,13 +335,10 @@ void init_cfg_array(int index) {
|
|
|
|
//main_config.disk = yon_char_parsed_append(main_config.disk, &index, "-");
|
|
|
|
//main_config.disk = yon_char_parsed_append(main_config.disk, &index, "-");
|
|
|
|
//index--;
|
|
|
|
//index--;
|
|
|
|
set_pow_size_memory("-", &main_config.type_quota_size, index);
|
|
|
|
set_pow_size_memory("-", &main_config.type_quota_size, index);
|
|
|
|
set_size_memory_integer("-", &main_config.type_quota, index);
|
|
|
|
set_size_memory_integer_char("-", &main_config.type_quota, index);
|
|
|
|
|
|
|
|
|
|
|
|
set_pow_size_memory("-", &main_config.quota_volume_size, index);
|
|
|
|
set_pow_size_memory("-", &main_config.quota_volume_size, index);
|
|
|
|
set_size_memory_integer("-", &main_config.quota_volume, index);
|
|
|
|
set_size_memory_integer_char("-", &main_config.quota_volume, index);
|
|
|
|
|
|
|
|
|
|
|
|
set_pow_size_memory("-", &main_config.quota_volume_size, index);
|
|
|
|
|
|
|
|
set_size_memory_integer("-", &main_config.quota_volume, index);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set_pow_size_memory("-", &main_config.cpu_limit_size, index);
|
|
|
|
set_pow_size_memory("-", &main_config.cpu_limit_size, index);
|
|
|
|
set_size_memory_integer("-", &main_config.cpu_limit, index);
|
|
|
|
set_size_memory_integer("-", &main_config.cpu_limit, index);
|
|
|
@ -454,7 +451,7 @@ void str_split_value(char* values, int index) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void get_param_io_limit(char** arr_values, int index_start, int size, int index_n1, char *key_find) {
|
|
|
|
void get_param_io_limit(char** arr_values, int index_start, int size, int index_n1, char *key_find) {
|
|
|
|
char** array_limit = NULL;
|
|
|
|
int* array_limit = NULL;
|
|
|
|
char** array_disk = NULL;
|
|
|
|
char** array_disk = NULL;
|
|
|
|
int* array_limit_size = NULL;
|
|
|
|
int* array_limit_size = NULL;
|
|
|
|
int index_n2 = 0;
|
|
|
|
int index_n2 = 0;
|
|
|
@ -495,40 +492,61 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (index_n2 != 0) {
|
|
|
|
if (index_n2 != 0) {
|
|
|
|
array_limit = yon_char_parsed_append(array_limit, &index_n2, NULL);
|
|
|
|
array_limit = philos_int_append(array_limit, &index_n2, -2);
|
|
|
|
index_n2--;
|
|
|
|
index_n2--;
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, NULL);
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, NULL);
|
|
|
|
index_n2--;
|
|
|
|
index_n2--;
|
|
|
|
array_limit_size = philos_int_append(array_limit_size, &index_n2, -2);
|
|
|
|
array_limit_size = philos_int_append(array_limit_size, &index_n2, -2);
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index_n1 + 1) * sizeof(char**));
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index_n1 + 1) * sizeof(int));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
yon_char_parsed_copy(&main_config.i_o_limit_read[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index_n1], &array_limit_size);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index_n1], &array_limit_size);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (index_n1 + 1) * sizeof(char**));
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (index_n1 + 1) * sizeof(int));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
yon_char_parsed_copy(&main_config.i_o_limit_write[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index_n1], &array_limit_size);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index_n1], &array_limit_size);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
philos_free_string_array(&array_limit, index_n2);
|
|
|
|
philos_free_int_array(&array_limit, index_n2);
|
|
|
|
philos_free_string_array(&array_disk, index_n2);
|
|
|
|
philos_free_string_array(&array_disk, index_n2);
|
|
|
|
philos_free_int_array(&array_limit_size, index_n2);
|
|
|
|
philos_free_int_array(&array_limit_size, index_n2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void set_size_memory_integer(char* str_find, char*** array_data, int index) {
|
|
|
|
void set_size_memory_integer(char* str_find, int** array_data, int index) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (strstr(str_find, " ")) {
|
|
|
|
|
|
|
|
yon_char_divide_search(str_find, " ", -1);
|
|
|
|
|
|
|
|
}
|
|
|
|
char* simv_del_array[9] = {"K","M","G","T","k","m","g","t","%"};
|
|
|
|
char* simv_del_array[9] = {"K","M","G","T","k","m","g","t","%"};
|
|
|
|
for (size_t i = 0; i < 9; i++) {
|
|
|
|
for (size_t i = 0; i < 9; i++) {
|
|
|
|
if (strstr(str_find, simv_del_array[i])) {
|
|
|
|
if (strstr(str_find, simv_del_array[i])) {
|
|
|
|
str_find = yon_char_divide_search(str_find, simv_del_array[i], -1);
|
|
|
|
str_find = yon_char_divide_search(str_find, simv_del_array[i], -1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr(str_find, "-")==NULL) {
|
|
|
|
|
|
|
|
// Todo: Баг
|
|
|
|
|
|
|
|
puts(str_find);
|
|
|
|
|
|
|
|
printf("%d\n", strlen(str_find));
|
|
|
|
|
|
|
|
*array_data = philos_int_append(*array_data, &index, atoi(str_find));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void set_size_memory_integer_char(char* str_find, char*** array_data, int index) {
|
|
|
|
|
|
|
|
char* simv_del_array[10] = {"K","M","G","T","k","m","g","t"," ","%"};
|
|
|
|
|
|
|
|
for (size_t i = 0; i < 10; i++) {
|
|
|
|
|
|
|
|
if (strstr(str_find, simv_del_array[i])) {
|
|
|
|
|
|
|
|
str_find = yon_char_divide_search(str_find, simv_del_array[i], -1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
if (strstr(str_find, " ") != NULL) {
|
|
|
|
if (strstr(str_find, " ") != NULL) {
|
|
|
|
char* mem_s = yon_char_new(str_find);
|
|
|
|
char* mem_s = yon_char_new(str_find);
|
|
|
|
yon_char_divide_search(mem_s, " ", -1);
|
|
|
|
yon_char_divide_search(mem_s, " ", -1);
|
|
|
@ -549,7 +567,6 @@ void set_size_memory_integer(char* str_find, char*** array_data, int index) {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void set_pow_size_memory(char* str_find, int** array_size,int index) {
|
|
|
|
void set_pow_size_memory(char* str_find, int** array_size,int index) {
|
|
|
|
size_t length = strlen(str_find);
|
|
|
|
size_t length = strlen(str_find);
|
|
|
|
if (strstr(str_find,"K") != NULL) {
|
|
|
|
if (strstr(str_find,"K") != NULL) {
|
|
|
@ -628,26 +645,26 @@ void tree_view_add(int index) {
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.quota_volume = yon_char_parsed_append(main_config.quota_volume, &main_config.size_tree_view, add_get_select_device_to_level_2());
|
|
|
|
main_config.quota_volume = yon_char_parsed_append(main_config.quota_volume, &main_config.size_tree_view, add_get_select_device_to_level_2());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.soft_raw_limit = yon_char_parsed_append(main_config.soft_raw_limit, &main_config.size_tree_view, add_get_soft());
|
|
|
|
main_config.soft_raw_limit = philos_int_append(main_config.soft_raw_limit, &main_config.size_tree_view, add_get_soft());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.hard_raw_limit = yon_char_parsed_append(main_config.hard_raw_limit, &main_config.size_tree_view, add_get_hard());
|
|
|
|
main_config.hard_raw_limit = philos_int_append(main_config.hard_raw_limit, &main_config.size_tree_view, add_get_hard());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.swap = yon_char_parsed_append(main_config.swap, &main_config.size_tree_view, add_get_limit_swap());
|
|
|
|
main_config.swap = philos_int_append(main_config.swap, &main_config.size_tree_view, add_get_limit_swap());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.cpu_limit = yon_char_parsed_append(main_config.cpu_limit, &main_config.size_tree_view, add_get_limit_cpu());
|
|
|
|
main_config.cpu_limit = philos_int_append(main_config.cpu_limit, &main_config.size_tree_view, add_get_limit_cpu());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
|
|
|
|
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (main_config.size_tree_view + 1) * sizeof(int));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
yon_char_parsed_copy(&main_config.i_o_limit_read[main_config.size_tree_view], add_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[main_config.size_tree_view], add_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[main_config.size_tree_view], add_get_read_device_size_pow());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[main_config.size_tree_view], add_get_read_device_size_pow());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[main_config.size_tree_view], add_get_select_device());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[main_config.size_tree_view], add_get_select_device());
|
|
|
|
|
|
|
|
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (main_config.size_tree_view + 1) * sizeof(int));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
yon_char_parsed_copy(&main_config.i_o_limit_write[main_config.size_tree_view], add_get_write_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[main_config.size_tree_view], add_get_write_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[main_config.size_tree_view], add_get_write_device_size_pow());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[main_config.size_tree_view], add_get_write_device_size_pow());
|
|
|
|
|
|
|
|
|
|
|
|
main_config.type_quota_size = philos_int_append(main_config.type_quota_size, &main_config.size_tree_view, add_get_quota_object_size());
|
|
|
|
main_config.type_quota_size = philos_int_append(main_config.type_quota_size, &main_config.size_tree_view, add_get_quota_object_size());
|
|
|
@ -697,16 +714,16 @@ void fill_tree_view(int start, int size, int flag_gui_add) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
char* format_io_limit_in_tree_view(config_str* disk, config_str* i_o_limit, int** i_o_limit_size, int index) {
|
|
|
|
char* format_io_limit_in_tree_view(config_str* disk, int** i_o_limit, int** i_o_limit_size, int index) {
|
|
|
|
int index_to_n2 = 0;
|
|
|
|
int index_to_n2 = 0;
|
|
|
|
char* str = "";
|
|
|
|
char* str = "";
|
|
|
|
while (1) {
|
|
|
|
while (1) {
|
|
|
|
if (i_o_limit[index]!= NULL) {
|
|
|
|
if (i_o_limit[index]!= NULL) {
|
|
|
|
if (i_o_limit[index][index_to_n2] != NULL) {
|
|
|
|
if (i_o_limit[index][index_to_n2] != -2) {
|
|
|
|
if (index_to_n2!=0) {
|
|
|
|
if (index_to_n2!=0) {
|
|
|
|
str = yon_char_unite(str, ",",
|
|
|
|
str = yon_char_unite(str, ",",
|
|
|
|
disk[index][index_to_n2], " ",
|
|
|
|
disk[index][index_to_n2], " ",
|
|
|
|
philos_format_cfg_str_size_memory(" ", i_o_limit[index][index_to_n2], i_o_limit_size[index][index_to_n2]), NULL);
|
|
|
|
philos_format_cfg_str_size_memory(" ", i_o_limit[index][index_to_n2] , i_o_limit_size[index][index_to_n2]), NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (strstr(disk[index][index_to_n2], "-")){
|
|
|
|
else if (strstr(disk[index][index_to_n2], "-")){
|
|
|
|
str = yon_char_unite(str, ",", NULL);
|
|
|
|
str = yon_char_unite(str, ",", NULL);
|
|
|
@ -758,11 +775,11 @@ int tree_view_edit() {
|
|
|
|
// philos_free_int_array(&main_config.i_o_limit_write_size[index], index);
|
|
|
|
// philos_free_int_array(&main_config.i_o_limit_write_size[index], index);
|
|
|
|
// philos_free_string_array(&main_config.disk[index], index);
|
|
|
|
// philos_free_string_array(&main_config.disk[index], index);
|
|
|
|
|
|
|
|
|
|
|
|
yon_char_parsed_copy(&main_config.i_o_limit_read[index], edit_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index], edit_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index], edit_get_read_device_size_pow());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index], edit_get_read_device_size_pow());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index], edit_get_select_device());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index], edit_get_select_device());
|
|
|
|
|
|
|
|
|
|
|
|
yon_char_parsed_copy(&main_config.i_o_limit_write[index], edit_get_write_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index], edit_get_write_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index], edit_get_write_device_size_pow());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index], edit_get_write_device_size_pow());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index], edit_get_select_device());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index], edit_get_select_device());
|
|
|
|
|
|
|
|
|
|
|
@ -876,11 +893,11 @@ void wrapper_edit_show() {
|
|
|
|
int index = atoi(str_iter);
|
|
|
|
int index = atoi(str_iter);
|
|
|
|
edit_show(NULL, glade_path);
|
|
|
|
edit_show(NULL, glade_path);
|
|
|
|
edit_set_select_device(&main_config.disk[index]);
|
|
|
|
edit_set_select_device(&main_config.disk[index]);
|
|
|
|
edit_set_read_device(&main_config.i_o_limit_read[index], &main_config.i_o_limit_read_size[index]);
|
|
|
|
edit_set_read_device(main_config.i_o_limit_read[index], main_config.i_o_limit_read_size[index]);
|
|
|
|
edit_set_hard(main_config.hard_raw_limit[index], main_config.hard_raw_limit_size[index]);
|
|
|
|
edit_set_hard(main_config.hard_raw_limit[index], main_config.hard_raw_limit_size[index]);
|
|
|
|
edit_set_limit_cpu(main_config.cpu_limit[index], main_config.cpu_limit_size[index]);
|
|
|
|
edit_set_limit_cpu(main_config.cpu_limit[index], main_config.cpu_limit_size[index]);
|
|
|
|
edit_set_soft(main_config.soft_raw_limit[index], main_config.soft_raw_limit_size[index]);
|
|
|
|
edit_set_soft(main_config.soft_raw_limit[index], main_config.soft_raw_limit_size[index]);
|
|
|
|
edit_set_write_device(&main_config.i_o_limit_write[index], &main_config.i_o_limit_write_size[index]);
|
|
|
|
edit_set_write_device(main_config.i_o_limit_write[index], main_config.i_o_limit_write_size[index]);
|
|
|
|
edit_init_windows();
|
|
|
|
edit_init_windows();
|
|
|
|
edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]);
|
|
|
|
edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]);
|
|
|
|
edit_event(get_widget_edit());
|
|
|
|
edit_event(get_widget_edit());
|
|
|
@ -916,19 +933,19 @@ void tree_view_del_line() {
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.quota_volume = yon_char_parsed_shrink(main_config.quota_volume, &main_config.size_tree_view,index);
|
|
|
|
main_config.quota_volume = yon_char_parsed_shrink(main_config.quota_volume, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.soft_raw_limit = yon_char_parsed_shrink(main_config.soft_raw_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.soft_raw_limit = remove_element_int_array(main_config.soft_raw_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.hard_raw_limit = yon_char_parsed_shrink(main_config.hard_raw_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.hard_raw_limit = remove_element_int_array(main_config.hard_raw_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.swap = yon_char_parsed_shrink(main_config.swap, &main_config.size_tree_view,index);
|
|
|
|
main_config.swap = remove_element_int_array(main_config.swap, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.cpu_limit = yon_char_parsed_shrink(main_config.cpu_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.cpu_limit = remove_element_int_array(main_config.cpu_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.i_o_limit_read = yon_char_parsed_shrink_n3(main_config.i_o_limit_read, &main_config.size_tree_view,index);
|
|
|
|
main_config.i_o_limit_read = remove_element_int_array_n3(main_config.i_o_limit_read, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.i_o_limit_write = yon_char_parsed_shrink_n3(main_config.i_o_limit_write, &main_config.size_tree_view,index);
|
|
|
|
main_config.i_o_limit_write = remove_element_int_array_n3(main_config.i_o_limit_write, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.i_o_limit_write = yon_char_parsed_shrink_n3(main_config.disk, &main_config.size_tree_view,index);
|
|
|
|
main_config.disk = yon_char_parsed_shrink_n3(main_config.disk, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
|
|
|
|
|
|
|
|
main_config.i_o_limit_read_size = remove_element_int_array_n3(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.i_o_limit_read_size = remove_element_int_array_n3(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
|
|
|
@ -1005,22 +1022,22 @@ char* save_format_value(int index) {
|
|
|
|
char split_simvol[2] = {0};
|
|
|
|
char split_simvol[2] = {0};
|
|
|
|
split_simvol[0] = 0;
|
|
|
|
split_simvol[0] = 0;
|
|
|
|
split_simvol[1] = 0;
|
|
|
|
split_simvol[1] = 0;
|
|
|
|
if (strstr(main_config.soft_raw_limit[index], "-") == NULL) {
|
|
|
|
if (main_config.soft_raw_limit[index]==0) {
|
|
|
|
value = yon_char_unite(philos_format_cfg_str_size_memory("MemoryHigh=", main_config.soft_raw_limit[index],main_config.soft_raw_limit_size[index]),NULL);
|
|
|
|
value = yon_char_unite(philos_format_cfg_str_size_memory("MemoryHigh=", main_config.soft_raw_limit[index],main_config.soft_raw_limit_size[index]),NULL);
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (strstr(main_config.hard_raw_limit[index], "-") == NULL) {
|
|
|
|
if (main_config.hard_raw_limit[index]==0) {
|
|
|
|
value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemoryMax=", main_config.hard_raw_limit[index],main_config.hard_raw_limit_size[index]), NULL);
|
|
|
|
value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemoryMax=", main_config.hard_raw_limit[index],main_config.hard_raw_limit_size[index]), NULL);
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (strstr(main_config.swap[index], "-") == NULL) {
|
|
|
|
if (main_config.swap[index]==0) {
|
|
|
|
value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemorySwapMax=", main_config.swap[index],main_config.swap_size[index]), NULL);
|
|
|
|
value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("MemorySwapMax=", main_config.swap[index],main_config.swap_size[index]), NULL);
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (strstr(main_config.cpu_limit[index], "-") == NULL) {
|
|
|
|
if (main_config.cpu_limit[index]==0) {
|
|
|
|
value = yon_char_unite(value ,split_simvol,"CPUQuota=", main_config.cpu_limit[index], NULL);
|
|
|
|
value = yon_char_unite(value ,split_simvol,"CPUQuota=", main_config.cpu_limit[index], NULL);
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
@ -1029,18 +1046,18 @@ char* save_format_value(int index) {
|
|
|
|
value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk, index);
|
|
|
|
value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk, index);
|
|
|
|
return value;
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, char*** disk, int index) {
|
|
|
|
char* add_io_str_format_ubconfig(char* cmd_io, char* key, int** i_o_limit, char*** disk, int index) {
|
|
|
|
char split_simvol[2] = {0};
|
|
|
|
char split_simvol[2] = {0};
|
|
|
|
if (i_o_limit != NULL) {
|
|
|
|
if (i_o_limit != NULL) {
|
|
|
|
if (i_o_limit[index] != NULL) {
|
|
|
|
if (i_o_limit[index] != NULL) {
|
|
|
|
if (i_o_limit[index] != NULL) {
|
|
|
|
if (i_o_limit[index] != NULL) {
|
|
|
|
for (int i = 0;i_o_limit[index][i] != NULL; i++) {
|
|
|
|
for (int i = 0;i_o_limit[index][i] != -2; i++) {
|
|
|
|
if (i==0) {
|
|
|
|
if (i==0) {
|
|
|
|
cmd_io = yon_char_unite(cmd_io, ",", key, "=");
|
|
|
|
cmd_io = yon_char_unite(cmd_io, ",", key, "=");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
char* read_limit = i_o_limit[index][i];
|
|
|
|
int read_limit = i_o_limit[index][i];
|
|
|
|
char* read_limit_disk = disk[index][i];
|
|
|
|
char* read_limit_disk = disk[index][i];
|
|
|
|
cmd_io = yon_char_unite(cmd_io, split_simvol, read_limit_disk, " ", read_limit);
|
|
|
|
cmd_io = yon_char_unite(cmd_io, split_simvol, read_limit_disk, " ", yon_char_from_int(read_limit));
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|