|
|
|
|
@ -210,6 +210,24 @@ int yon_network_save(main_window *widgets){
|
|
|
|
|
} else {
|
|
|
|
|
yon_config_remove_by_key(NTPSERVERS_parameter);
|
|
|
|
|
}
|
|
|
|
|
if (gtk_switch_get_active(GTK_SWITCH(widgets->HostnameSensitiveSwitch))){
|
|
|
|
|
int autohostname = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck));
|
|
|
|
|
char *hostname = NULL;
|
|
|
|
|
if (autohostname) {
|
|
|
|
|
hostname = "auto";
|
|
|
|
|
} else {
|
|
|
|
|
hostname = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry));
|
|
|
|
|
}
|
|
|
|
|
if (yon_char_is_empty(hostname)){
|
|
|
|
|
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(widgets->HotnameEntry);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
yon_config_register(hostname_parameter,hostname_parameter_command,hostname);
|
|
|
|
|
} else {
|
|
|
|
|
yon_config_remove_by_key(hostname_parameter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->NetworkConnectionsBox));
|
|
|
|
|
GList *iter;
|
|
|
|
|
for (iter=list;iter;iter=iter->next){
|
|
|
|
|
@ -284,36 +302,90 @@ void yon_network_init(main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(network_types,size);
|
|
|
|
|
|
|
|
|
|
char *domain = config(DOMAIN_parameter);
|
|
|
|
|
char *domain_admanger = config(DOMAIN_admanger_parameter);
|
|
|
|
|
char *ntp = config(NTPSERVERS_parameter);
|
|
|
|
|
char *hostname = config(hostname_parameter);
|
|
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(domain)){
|
|
|
|
|
gtk_switch_set_active(GTK_SWITCH(widgets->NetworkDomainSwitch),1);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkDomainNameEntry),domain);
|
|
|
|
|
if (!yon_char_is_empty(domain_admanger)){
|
|
|
|
|
char *domain_password = yon_char_new(domain_admanger);
|
|
|
|
|
char *domain_admin = yon_char_divide_search(domain_password,":",-1);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkDomainAdminEntry),domain_admin);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkDomainPasswordEntry),domain_password);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(ntp)){
|
|
|
|
|
gtk_switch_set_active(GTK_SWITCH(widgets->NetworkNTPServerSwitch),1);
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NetworkNTPEntry,0);
|
|
|
|
|
if (!strcmp(ntp,"dhcp")){
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo),1);
|
|
|
|
|
} else if (!strcmp(ntp,"default")){
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo),2);
|
|
|
|
|
} else if (!strcmp(ntp,"ntp-ru")){
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo),3);
|
|
|
|
|
} else if (!strcmp(ntp,"no")||!strcmp(ntp,"disable")){
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo),5);
|
|
|
|
|
} else if (!strcmp(ntp,"stop")){
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo),6);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo),4);
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NetworkNTPEntry,1);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),ntp);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NetworkNTPEntry,0);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NetworkNTPEntry),"");
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NetworkNTPCombo),0);
|
|
|
|
|
}
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),"");
|
|
|
|
|
if (!yon_char_is_empty(hostname)){
|
|
|
|
|
gtk_switch_set_active(GTK_SWITCH(widgets->HostnameSensitiveSwitch),1);
|
|
|
|
|
if (!strcmp(hostname,"auto")){
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),1);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),hostname);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
config_str parameters = yon_config_get_all_by_key(NETWORK_parameter_search,&size);
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
char *parameter = yon_char_new(parameters[i]);
|
|
|
|
|
char *parameter_name = yon_char_divide_search(parameter,"=",-1);
|
|
|
|
|
char *key = yon_config_parameter_get_key(parameter_name);
|
|
|
|
|
char *key_type = yon_char_divide_search(key,"@",-1);
|
|
|
|
|
char *key_sub = key+yon_char_find_last(key,'[');
|
|
|
|
|
char *subkey = yon_config_parameter_get_key(key_sub);
|
|
|
|
|
char *key_type = yon_char_divide_search(subkey,"@",-1);
|
|
|
|
|
|
|
|
|
|
if (!strcmp(key_type,"connmod")){
|
|
|
|
|
if (!strcmp(subkey,"connmod")){
|
|
|
|
|
network_info *info = yon_network_info_new();
|
|
|
|
|
gtk_box_pack_start(GTK_BOX(widgets->NetworkConnectionsBox),info->MainBox,0,0,0);
|
|
|
|
|
gtk_widget_show(info->MainBox);
|
|
|
|
|
|
|
|
|
|
int connection_size;
|
|
|
|
|
config_str connection = yon_char_parse(parameter,&connection_size," ");
|
|
|
|
|
for (int k=0;k<connection_size;k++){
|
|
|
|
|
if (!strcmp(connection[k],"ipv4.method")){
|
|
|
|
|
gtk_switch_set_active(GTK_SWITCH(info->AutoGetIPSwitch),0);
|
|
|
|
|
} else if (!strcmp(connection[k],"ipv4.addr")){
|
|
|
|
|
char *mask = yon_char_new(connection[++k]);
|
|
|
|
|
char *ip = yon_char_divide_search(mask,"/",-1);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->MaskEntry),mask);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->IpAdressEntry),ip);
|
|
|
|
|
free(mask);
|
|
|
|
|
free(ip);
|
|
|
|
|
|
|
|
|
|
} else if (!strcmp(connection[k],"ipv4.gateway")){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->GatewayEntry),connection[++k]);
|
|
|
|
|
if (yon_char_parsed_check_exist(connection,connection_size,"ipv4.method")>-1){
|
|
|
|
|
gtk_switch_set_active(GTK_SWITCH(info->AutoGetIPSwitch),1);
|
|
|
|
|
} else {
|
|
|
|
|
int addr_active = yon_char_parsed_check_exist(connection,connection_size,"ipv4.addr");
|
|
|
|
|
if (addr_active>-1){
|
|
|
|
|
char *mask = yon_char_new(connection[addr_active+1]);
|
|
|
|
|
char *ip = yon_char_divide_search(mask,"/",-1);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->MaskEntry),mask);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->IpAdressEntry),ip);
|
|
|
|
|
free(mask);
|
|
|
|
|
free(ip);
|
|
|
|
|
}
|
|
|
|
|
addr_active = yon_char_parsed_check_exist(connection,connection_size,"ipv4.gateway");
|
|
|
|
|
if (addr_active>-1){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->GatewayEntry),connection[addr_active+1]);
|
|
|
|
|
|
|
|
|
|
} else if (!strcmp(connection[k],"ipv4.dns")){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->DNSEntry),connection[++k]);
|
|
|
|
|
}
|
|
|
|
|
addr_active = yon_char_parsed_check_exist(connection,connection_size,"ipv4.dns");
|
|
|
|
|
if (addr_active>-1){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(info->DNSEntry),connection[addr_active+1]);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -321,9 +393,9 @@ void yon_network_init(main_window *widgets){
|
|
|
|
|
GList *list = g_hash_table_get_keys(main_config.network_types);
|
|
|
|
|
GList *iter;
|
|
|
|
|
for (iter=list;iter;iter=iter->next){
|
|
|
|
|
if (g_hash_table_contains(g_hash_table_lookup(main_config.network_types,(char*)iter->data),key)){
|
|
|
|
|
if (g_hash_table_contains(g_hash_table_lookup(main_config.network_types,(char*)iter->data),key_type)){
|
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(info->TypeCombo),(char*)iter->data);
|
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(info->ConnectionCombo),key);
|
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(info->ConnectionCombo),key_type);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|