Example #1
0
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");
}
Example #2
0
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);
}
Example #3
0
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);
}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
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);
}
Example #7
0
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);

    }

}