void ircnet_create(IRC_CHATNET_REC *rec) { g_return_if_fail(rec != NULL); rec->chat_type = IRC_PROTOCOL; ircnet_save(rec); chatnet_create((CHATNET_REC *) rec); }
static void network_save(GObject *obj, NetworkConfig *network) { ChatProtocol *proto; GtkEntry *entry; const char *name, *proto_name; entry = g_object_get_data(obj, "name"); name = gtk_entry_get_text(entry); if (*name == '\0') { /* name can't be empty */ gui_popup_error("Network name can't be empty"); return; } if (network == NULL) { /* create network */ entry = g_object_get_data(obj, "protocol"); proto_name = gtk_entry_get_text(entry); proto = chat_protocol_find(proto_name); if (proto == NULL) proto = chat_protocol_get_unknown(proto_name); network = proto->create_chatnet(); network->chat_type = proto->id; } g_free(network->name); network->name = g_strdup(name); gui_entry_update(obj, "nick", &network->nick); gui_entry_update(obj, "username", &network->username); gui_entry_update(obj, "realname", &network->realname); gui_entry_update(obj, "own_host", &network->own_host); gui_entry_update(obj, "autosendcmd", &network->autosendcmd); chatnet_create(network); }
static SERVER_SETUP_REC *server_setup_read(CONFIG_NODE *node) { SERVER_SETUP_REC *rec; CHATNET_REC *chatnetrec; char *server, *chatnet, *family; int port; g_return_val_if_fail(node != NULL, NULL); server = config_node_get_str(node, "address", NULL); if (server == NULL) return NULL; port = config_node_get_int(node, "port", 0); chatnet = config_node_get_str(node, "chatnet", NULL); if (server_setup_find(server, port, chatnet) != NULL) { return NULL; } rec = NULL; chatnetrec = chatnet == NULL ? NULL : chatnet_find(chatnet); if (chatnetrec == NULL && chatnet != NULL) { /* chat network not found, create it. */ chatnetrec = chat_protocol_get_default()->create_chatnet(); chatnetrec->chat_type = chat_protocol_get_default()->id; chatnetrec->name = g_strdup(chatnet); chatnet_create(chatnetrec); } family = config_node_get_str(node, "family", ""); rec = CHAT_PROTOCOL(chatnetrec)->create_server_setup(); rec->type = module_get_uniq_id("SERVER SETUP", 0); rec->chat_type = CHAT_PROTOCOL(chatnetrec)->id; rec->chatnet = chatnetrec == NULL ? NULL : g_strdup(chatnetrec->name); rec->family = g_ascii_strcasecmp(family, "inet6") == 0 ? AF_INET6 : (g_ascii_strcasecmp(family, "inet") == 0 ? AF_INET : 0); rec->address = g_strdup(server); rec->password = g_strdup(config_node_get_str(node, "password", NULL)); rec->use_ssl = config_node_get_bool(node, "use_ssl", FALSE); rec->ssl_cert = g_strdup(config_node_get_str(node, "ssl_cert", NULL)); rec->ssl_pkey = g_strdup(config_node_get_str(node, "ssl_pkey", NULL)); rec->ssl_verify = config_node_get_bool(node, "ssl_verify", FALSE); rec->ssl_cafile = g_strdup(config_node_get_str(node, "ssl_cafile", NULL)); rec->ssl_capath = g_strdup(config_node_get_str(node, "ssl_capath", NULL)); if (rec->ssl_cafile || rec->ssl_capath) rec->ssl_verify = TRUE; if (rec->ssl_cert != NULL || rec->ssl_verify) rec->use_ssl = TRUE; rec->port = port; rec->autoconnect = config_node_get_bool(node, "autoconnect", FALSE); rec->no_proxy = config_node_get_bool(node, "no_proxy", FALSE); rec->own_host = g_strdup(config_node_get_str(node, "own_host", NULL)); signal_emit("server setup read", 2, rec, node); setupservers = g_slist_append(setupservers, rec); return rec; }