Fixed saving of parameter when old and new values are same, but target configuration is local, what means it never contains 6th section - password

pull/133/head
parent 758fd4565a
commit 56f3b77f39

@ -309,8 +309,60 @@ void on_config_save(GtkWidget *self, main_window *widgets){
yon_samba_sync_proceed();
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_BOTH,"users", "DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERSHADOW[*] GROUPADD[*]",NULL);
if (window){
yon_hide_passwords(window);
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_save_window_close_update),widgets);
if (main_config.load_mode==0){
GtkTreeIter iter;
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter);
for(;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){
char *parameter,*old_value, *new_value;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,1,&parameter,2,&old_value,3,&new_value,-1);
int old_size, new_size;
config_str old_parsed = yon_char_parse(old_value,&old_size,":");
config_str new_parsed = yon_char_parse(new_value,&new_size,":");
if (old_parsed&&new_parsed){
char *parameter_type = yon_char_divide_search(parameter,"[",-1);
if (!strcmp(parameter_type,"USERADD")){
if (old_size>5){
old_parsed = yon_char_parsed_rip(old_parsed,&old_size,5);
}
if (new_size>5){
new_parsed = yon_char_parsed_rip(new_parsed,&new_size,5);
}
char *old_final = yon_char_parsed_to_string(old_parsed,old_size,":");
char *new_final = yon_char_parsed_to_string(new_parsed,new_size,":");
if (!strcmp(old_final,new_final)){
gtk_list_store_set(window->list,&iter,5,0,-1);
}
free(old_final);
free(new_final);
yon_char_parsed_free(old_parsed,old_size);
yon_char_parsed_free(new_parsed,new_size);
} else if (!strcmp(parameter_type,"GROUPADD")){
if (old_size>3){
old_parsed = yon_char_parsed_rip(old_parsed,&old_size,3);
}
if (new_size>3){
new_parsed = yon_char_parsed_rip(new_parsed,&new_size,3);
}
char *old_final = yon_char_parsed_to_string(old_parsed,old_size,":");
char *new_final = yon_char_parsed_to_string(new_parsed,new_size,":");
if (!strcmp(old_final,new_final)){
gtk_list_store_set(window->list,&iter,5,0,-1);
}
free(old_final);
free(new_final);
yon_char_parsed_free(old_parsed,old_size);
yon_char_parsed_free(new_parsed,new_size);
}
}
}
} else {
yon_hide_passwords(window);
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_save_window_close_update),widgets);
}
}
}

Loading…
Cancel
Save