+void fillcfw(void)
+{
+ struct cfvar *var;
+
+ for(var = config; var->name != NULL; var++) {
+ if(var->cfww != NULL)
+ gtk_entry_set_text(GTK_ENTRY(*(var->cfww)), var->val);
+ }
+ if(atoi(findcfvar("dc.tcpport")->val) || atoi(findcfvar("dc.udpport")->val))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_orport), TRUE);
+ else
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_orport), FALSE);
+ if(strcmp(findcfvar("net.visibleipv4")->val, "0.0.0.0"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_oraddr), TRUE);
+ else
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_oraddr), FALSE);
+ if(strcmp(findcfvar("ui.port")->val, "-1")) {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_uinet), TRUE);
+ if(strcmp(findcfvar("auth.authless")->val, "1"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_authless), FALSE);
+ else
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_authless), TRUE);
+ } else {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_uinet), FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cfw_authless), FALSE);
+ }
+}
+
+void ast2conf(void)
+{
+ setcfvar("cli.defnick", gtk_entry_get_text(GTK_ENTRY(ast_nick)));
+ setcfvar("dc.desc", gtk_entry_get_text(GTK_ENTRY(ast_desc)));
+ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ast_mode_psv))) {
+ setcfvar("net.mode", "1");
+ } else {
+ setcfvar("net.mode", "0");
+ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ast_mode_nat))) {
+ setcfvar("net.visibleipv4", gtk_entry_get_text(GTK_ENTRY(ast_extip)));
+ setcfvar("dc.tcpport", gtk_entry_get_text(GTK_ENTRY(ast_udpport)));
+ setcfvar("dc.udpport", gtk_entry_get_text(GTK_ENTRY(ast_tcpport)));
+ } else {
+ setcfvar("net.visibleipv4", "0.0.0.0");
+ setcfvar("dc.tcpport", "0");
+ setcfvar("dc.udpport", "0");
+ }
+ }
+}
+
+void cfw2conf(void)
+{
+ struct cfvar *var;
+
+ for(var = config; var->name != NULL; var++) {
+ if(var->cfww != NULL) {
+ free(var->val);
+ var->val = sstrdup(gtk_entry_get_text(GTK_ENTRY(*(var->cfww))));
+ }
+ }
+ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cfw_mode_act))) {
+ setcfvar("net.mode", "0");
+ if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cfw_orport))) {
+ setcfvar("dc.tcpport", "0");
+ setcfvar("dc.udpport", "0");
+ }
+ if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cfw_oraddr))) {
+ setcfvar("net.visibleipv4", "0.0.0.0");
+ }
+ } else {
+ setcfvar("net.mode", "1");
+ }
+ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cfw_uinet))) {
+ setcfvar("ui.port", "1500");
+ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cfw_authless)))
+ setcfvar("auth.authless", "1");
+ else
+ setcfvar("auth.authless", "0");
+ } else {
+ setcfvar("ui.port", "-1");
+ setcfvar("auth.authless", "0");
+ }
+}
+