|
|
@ -352,9 +352,12 @@ void init_cfg_array(int index) {
|
|
|
|
int* array_limit = NULL;
|
|
|
|
int* array_limit = NULL;
|
|
|
|
char** array_disk = NULL;
|
|
|
|
char** array_disk = NULL;
|
|
|
|
int index_n2 = 0;
|
|
|
|
int index_n2 = 0;
|
|
|
|
array_limit = philos_int_append(array_limit, &index_n2, -3);
|
|
|
|
for (int index = 0; index < get_device_cfg()->size_disk; index++) {
|
|
|
|
index_n2--;
|
|
|
|
array_limit = philos_int_append(array_limit, &index_n2, -3);
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, "-");
|
|
|
|
index_n2--;
|
|
|
|
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, "-");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
array_limit = philos_int_append(array_limit, &index_n2, -2);
|
|
|
|
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);
|
|
|
@ -460,13 +463,22 @@ void str_split_value(char* values, int index) {
|
|
|
|
set_size_memory_integer(yon_char_new(value), &main_config.cpu_limit, index);
|
|
|
|
set_size_memory_integer(yon_char_new(value), &main_config.cpu_limit, 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) {
|
|
|
|
int* 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;
|
|
|
|
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
|
|
|
|
array_limit = main_config.i_o_limit_read[index_n1];
|
|
|
|
|
|
|
|
array_limit_size = main_config.i_o_limit_read_size[index_n1];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
array_limit = main_config.i_o_limit_write[index_n1];
|
|
|
|
|
|
|
|
array_limit_size = main_config.i_o_limit_write_size[index_n1];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
array_disk = main_config.disk[index_n1];
|
|
|
|
int index_n2 = 0;
|
|
|
|
int index_n2 = 0;
|
|
|
|
int flag_parsed = 0;
|
|
|
|
int flag_parsed = 0;
|
|
|
|
int flag_exit = 0;
|
|
|
|
int flag_exit = 0;
|
|
|
@ -477,10 +489,10 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
|
|
|
|
if (strstr(arr_values[i], key_find)!=NULL) {
|
|
|
|
if (strstr(arr_values[i], key_find)!=NULL) {
|
|
|
|
// Найден ключ в массив
|
|
|
|
// Найден ключ в массив
|
|
|
|
char* disk = yon_char_divide_search(yon_char_new(value), " ", -1);
|
|
|
|
char* disk = yon_char_divide_search(yon_char_new(value), " ", -1);
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, disk);
|
|
|
|
philos_array_char_pars_to(&array_disk, disk);
|
|
|
|
index_n2--;
|
|
|
|
index_n2--;
|
|
|
|
philos_set_pow_size_memory(yon_char_new(value), &array_limit_size, index_n2, array_size_pow);
|
|
|
|
philos_set_pow_size_memory(yon_char_new(value), &array_limit_size, -1, array_size_pow);
|
|
|
|
set_size_memory_integer(yon_char_new(value), &array_limit, index_n2);
|
|
|
|
set_size_memory_integer(yon_char_new(value), &array_limit, -1);
|
|
|
|
flag_parsed = 1;
|
|
|
|
flag_parsed = 1;
|
|
|
|
index_n2++;
|
|
|
|
index_n2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -493,10 +505,10 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (flag_parsed == 1) {
|
|
|
|
else if (flag_parsed == 1) {
|
|
|
|
char* disk = yon_char_divide_search(yon_char_new(arr_values[i]), " ", -1);
|
|
|
|
char* disk = yon_char_divide_search(yon_char_new(arr_values[i]), " ", -1);
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, disk);
|
|
|
|
philos_array_char_pars_to(&array_disk, disk);
|
|
|
|
index_n2--;
|
|
|
|
index_n2--;
|
|
|
|
philos_set_pow_size_memory(yon_char_new(arr_values[i]), &array_limit_size, index_n2, array_size_pow);
|
|
|
|
philos_set_pow_size_memory(yon_char_new(arr_values[i]), &array_limit_size, -1, array_size_pow);
|
|
|
|
set_size_memory_integer(yon_char_new(arr_values[i]), &array_limit, index_n2);
|
|
|
|
set_size_memory_integer(yon_char_new(arr_values[i]), &array_limit, -1);
|
|
|
|
index_n2++;
|
|
|
|
index_n2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (flag_exit == 1) {
|
|
|
|
else if (flag_exit == 1) {
|
|
|
@ -504,26 +516,17 @@ 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 = philos_int_append(array_limit, &index_n2, -2);
|
|
|
|
if (strstr(key_find, "BandwidthMax")!=NULL) {
|
|
|
|
index_n2--;
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, NULL);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index_n1], &array_limit);
|
|
|
|
index_n2--;
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index_n1], &array_limit_size);
|
|
|
|
array_limit_size = philos_int_append(array_limit_size, &index_n2, -2);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
}
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index_n1 + 1) * sizeof(int*));
|
|
|
|
else {
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index_n1], &array_limit);
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
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_read[index_n1], &array_limit);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
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.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
philos_free_int_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);
|
|
|
@ -532,6 +535,7 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void set_size_memory_integer(char* str_find, int** array_data, int index) {
|
|
|
|
void set_size_memory_integer(char* str_find, int** array_data, int index) {
|
|
|
@ -545,10 +549,20 @@ void set_size_memory_integer(char* str_find, int** array_data, int index) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (strstr(str_find, "-")==NULL) {
|
|
|
|
if (strstr(str_find, "-")==NULL) {
|
|
|
|
*array_data = philos_int_append(*array_data, &index, atoi(str_find));
|
|
|
|
if (index!=-1) {
|
|
|
|
|
|
|
|
*array_data = philos_int_append(*array_data, &index, atoi(str_find));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
philos_array_int_pars_to(array_data,atoi(str_find));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
*array_data = philos_int_append(*array_data, &index, -1);
|
|
|
|
if (index!=-1) {
|
|
|
|
|
|
|
|
*array_data = philos_int_append(*array_data, &index, -1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
philos_array_int_pars_to(array_data,atoi(str_find));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -696,11 +710,12 @@ char* format_io_limit_in_tree_view(config_str* disk, int** i_o_limit, int** i_o_
|
|
|
|
free(num_and_pow_size);
|
|
|
|
free(num_and_pow_size);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
index_to_n2++;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
index_to_n2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -1278,6 +1293,7 @@ int main(int argc, char *argv[]){
|
|
|
|
yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel);
|
|
|
|
yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel);
|
|
|
|
if (getuid()!=0) {
|
|
|
|
if (getuid()!=0) {
|
|
|
|
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
|
|
|
load_system_cfg();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
yon_ubl_status_box_render(LOAD_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LOAD_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|