void gfire_update_games_list_cb(PurpleUtilFetchUrlData *p_url_data, gpointer p_data, const gchar *p_buf, gsize p_len, const gchar *p_error_message) { gfire_games_update_done(); if (!p_data || !p_buf || !p_len) purple_debug_error("gfire", "An error occured while updating the games list. Website down?\n"); else if(purple_util_write_data_to_file("gfire_games.xml", p_buf, p_len)) { gfire_game_load_games_xml(); gchar *version = gfire_game_get_version_str(); gchar *msg = g_strdup_printf(_("The Games List has been updated to version: %s."), version); g_free(version); #ifdef USE_NOTIFICATIONS if(purple_account_get_bool(purple_connection_get_account(p_data), "use_notify", TRUE)) gfire_notify_system(_("New Gfire Game List Version"), msg); else #endif // USE_NOTIFICATIONS purple_notify_message(NULL, PURPLE_NOTIFY_MSG_INFO, _("New Gfire Game List Version"), _("New Gfire Game List Version"), msg, NULL, NULL); g_free(msg); } else purple_debug_error("gfire", "An error occured while updating the games list. Website down?\n"); }
static void purplerc_write(GtkWidget *widget, gpointer data) { GString *str = make_gtkrc_string(); str = g_string_prepend(str, "# This file automatically written by the Pidgin GTK+ Theme Control plugin.\n# Any changes to this file will be overwritten by the plugin when told to\n# write the settings again.\n# The FAQ (http://developer.pidgin.im/wiki/FAQ) contains some further examples\n# of possible pidgin gtkrc settings.\n"); purple_util_write_data_to_file("gtkrc-2.0", str->str, -1); g_string_free(str, TRUE); }
static void sync_pounces(void) { PurpleXmlNode *node; char *data; if (!pounces_loaded) { purple_debug_error("pounce", "Attempted to save buddy pounces before " "they were read!\n"); return; } node = pounces_to_xmlnode(); data = purple_xmlnode_to_formatted_str(node, NULL); purple_util_write_data_to_file("pounces.xml", data, -1); g_free(data); purple_xmlnode_free(node); }
static void sync_smileys(void) { xmlnode *root_node; char *data; if (!smileys_loaded) { purple_debug_error(SMILEYS_LOG_ID, "Attempted to save smileys before it " "was read!\n"); return; } root_node = smileys_to_xmlnode(); data = xmlnode_to_formatted_str(root_node, NULL); purple_util_write_data_to_file(XML_FILE_NAME, data, -1); g_free(data); xmlnode_free(root_node); }
static void gfire_game_save_config_xml() { xmlnode *game_config = xmlnode_new("game_config"); xmlnode_set_attrib(game_config, "version", "2"); GList *cur = gfire_games_config; while(cur) { xmlnode_insert_child(game_config, gfire_game_configuration_to_xmlnode((gfire_game_configuration*)cur->data)); cur = g_list_next(cur); } gchar *xml_str = xmlnode_to_formatted_str(game_config, NULL); purple_util_write_data_to_file("gfire_game_config.xml", xml_str, -1); g_free(xml_str); xmlnode_free(game_config); }
static void sync_prefs(void) { xmlnode *node; char *data; if (!prefs_loaded) { /* * TODO: Call schedule_prefs_save()? Ideally we wouldn't need to. * (prefs.xml should be loaded when purple_prefs_init is called) */ purple_debug_error("prefs", "Attempted to save prefs before " "they were read!\n"); return; } node = prefs_to_xmlnode(); data = xmlnode_to_formatted_str(node, NULL); purple_util_write_data_to_file("prefs.xml", data, -1); g_free(data); xmlnode_free(node); }
void RetriveSysCfg_cb(gpointer sodata, gint source, const gchar * error_message) { gchar buf[10240]; gchar *cur, *tail; gchar *msg_server, *ssic_server, *por_server, *upload_server; gchar *cfg_size = NULL; gchar *cfg_filename = NULL; struct fetion_account_data *sip = sodata; gint len, rcv_len; xmlnode *root, *son_node, *item; memset(buf, 0, 10240); rcv_len = read(source, buf, 10240); if (rcv_len > 0) { if ((cur = strstr(buf, "\r\n\r\n"))) { if (strncmp(buf, "HTTP/1.1 200 OK\r\n", 17) != 0) purple_connection_error_reason(sip->gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _ ("Invalid Password or Mobileno")); cfg_size = get_token(buf, "Content-Length: ", "\r\n"); if (cfg_size == NULL) return; cur += 4; sip->SysCfg.size = atoi(cfg_size); sip->SysCfg.buf = g_malloc(sip->SysCfg.size); len = rcv_len - (cur - buf); sip->SysCfg.rcv_len = len; memcpy((sip->SysCfg.buf), cur, len); } else { cur = sip->SysCfg.buf + sip->SysCfg.rcv_len; if ((sip->SysCfg.rcv_len) + rcv_len > (sip->SysCfg.size)) memcpy(cur, buf, (sip->SysCfg.size) - (sip->SysCfg.rcv_len)); else memcpy(cur, buf, rcv_len); sip->SysCfg.rcv_len += rcv_len; } } else { purple_input_remove(sip->SysCfg.inpa); if (sip->mobileno != NULL) cfg_filename = g_strdup_printf("%s-SysCfg.xml", sip->mobileno); else if (sip->username != NULL) cfg_filename = g_strdup_printf("%s-SysCfg.xml", sip->username); else cfg_filename = g_strdup_printf("SysCfg.xml"); root = xmlnode_from_str(sip->SysCfg.buf, sip->SysCfg.size); g_return_if_fail(root != NULL); son_node = xmlnode_get_child(root, "servers"); if (son_node == NULL) { LoginToSsiPortal(sip); //fixme return; } purple_debug_info("fetion", "systemconfig:after servers[%s]", sip->SysCfg.buf); item = xmlnode_get_child(son_node, "sipc-proxy"); g_return_if_fail(item != NULL); msg_server = g_strdup(xmlnode_get_data(item)); item = xmlnode_get_child(son_node, "ssi-app-sign-in"); g_return_if_fail(item != NULL); ssic_server = g_strdup(xmlnode_get_data(item)); item = xmlnode_get_child(root, "http-applications/get-portrait"); g_return_if_fail(item != NULL); por_server = g_strdup(xmlnode_get_data(item)); item = xmlnode_get_child(root, "http-applications/set-portrait"); g_return_if_fail(item != NULL); upload_server = g_strdup(xmlnode_get_data(item)); cur = strstr(msg_server, ":"); *cur = '\0'; cur++; sip->MsgServer = g_strdup(msg_server); sip->MsgPort = atoi(cur); cur = strstr(ssic_server, "/ssiportal"); *cur = '\0'; cur = ssic_server + 8; sip->SsicServer = g_strdup(cur); cur = strstr(por_server, "/HDS"); *cur = '\0'; tail = cur + 1; cur = por_server + 7; sip->PortraitServer = g_strdup(cur); cur = strstr(por_server, "/"); *cur = '\0'; sip->PortraitPrefix = g_strdup(tail); cur = strstr(upload_server, "/HDS"); *cur = '\0'; tail = cur + 1; cur = upload_server + 7; sip->UploadServer = g_strdup(cur); cur = strstr(upload_server, "/"); *cur = '\0'; sip->UploadPrefix = g_strdup(tail); LoginToSsiPortal(sip); purple_util_write_data_to_file(cfg_filename, sip->SysCfg.buf, sip->SysCfg.size); g_free(msg_server); g_free(ssic_server); g_free(por_server); g_free(upload_server); } }