annotate libpurple/protocols/yahoo/yahoo_aliases.c @ 22818:0d7ceae153bd

Leak fixes.
author Daniel Atallah <daniel.atallah@gmail.com>
date Fri, 02 May 2008 22:01:01 +0000
parents 3225c99785b8
children 0b11895cc564
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
1 /*
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
2 * purple
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
3 *
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
6 * source distribution.
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
7 *
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
8 * This program is free software; you can redistribute it and/or modify
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
9 * it under the terms of the GNU General Public License as published by
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
11 * (at your option) any later version.
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
12 *
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
13 * This program is distributed in the hope that it will be useful,
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
16 * GNU General Public License for more details.
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
17 *
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
18 * You should have received a copy of the GNU General Public License
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
19 * along with this program; if not, write to the Free Software
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
21 *
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
22 */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
23
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
24
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
25 #include "internal.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
26
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
27 #include "account.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
28 #include "accountopt.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
29 #include "blist.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
30 #include "debug.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
31 #include "util.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
32 #include "version.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
33 #include "yahoo.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
34 #include "yahoo_aliases.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
35 #include "yahoo_packet.h"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
36
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
37 /* I hate hardcoding this stuff, but Yahoo never sends us anything to use. Someone in the know may be able to tweak this URL */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
38 #define YAHOO_ALIAS_FETCH_URL "http://address.yahoo.com/yab/us?v=XM&prog=ymsgr&.intl=us&diffs=1&t=0&tags=short&rt=0&prog-ver=8.1.0.249&useutf8=1&legenc=codepage-1252"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
39 #define YAHOO_ALIAS_UPDATE_URL "http://address.yahoo.com/yab/us?v=XM&prog=ymsgr&.intl=us&sync=1&tags=short&noclear=1&useutf8=1&legenc=codepage-1252"
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
40 #define YAHOOJP_ALIAS_FETCH_URL "http://address.yahoo.co.jp/yab/jp?v=XM&prog=ymsgr&.intl=jp&diffs=1&t=0&tags=short&rt=0&prog-ver=7.0.0.7"
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
41 #define YAHOOJP_ALIAS_UPDATE_URL "http://address.yahoo.co.jp/yab/jp?v=XM&prog=ymsgr&.intl=jp&sync=1&tags=short&noclear=1"
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
42
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
43 void yahoo_update_alias(PurpleConnection *gc, const char *who, const char *alias);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
44
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
45 /**
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
46 * Stuff we want passed to the callback function
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
47 */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
48 struct callback_data {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
49 PurpleConnection *gc;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
50 char *id;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
51 };
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
52
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
53
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
54 /**************************************************************************
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
55 * Alias Fetch Functions
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
56 **************************************************************************/
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
57
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
58 static void
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
59 yahoo_fetch_aliases_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data,const gchar *url_text, size_t len, const gchar *error_message)
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
60 {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
61 struct callback_data *cb = user_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
62 PurpleConnection *gc = cb->gc;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
63 struct yahoo_data *yd = gc->proto_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
64
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
65 yd->url_datas = g_slist_remove(yd->url_datas, url_data);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
66
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
67 if (len == 0) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
68 purple_debug_info("yahoo", "No Aliases to process.%s%s\n",
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
69 error_message ? " Error:" : "", error_message ? error_message : "");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
70 } else {
22818
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
71 gchar *full_name, *nick_name, *alias;
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
72 const char *yid, *id, *fn, *ln, *nn;
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
73 PurpleBuddy *b = NULL;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
74 xmlnode *item, *contacts;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
75
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
76 /* Put our web response into a xmlnode for easy management */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
77 contacts = xmlnode_from_str(url_text, -1);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
78
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
79 if (contacts == NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
80 purple_debug_error("yahoo_aliases","Badly formed XML\n");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
81 return;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
82 }
22486
3225c99785b8 Fix a bunch of compiler warnings caused by my addition of G_GNUC_PRINTF()
Mark Doliner <mark@kingant.net>
parents: 22330
diff changeset
83 purple_debug_info("yahoo", "Fetched %" G_GSIZE_FORMAT
3225c99785b8 Fix a bunch of compiler warnings caused by my addition of G_GNUC_PRINTF()
Mark Doliner <mark@kingant.net>
parents: 22330
diff changeset
84 " bytes of alias data\n", len);
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
85
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
86 /* Loop around and around and around until we have gone through all the received aliases */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
87 for(item = xmlnode_get_child(contacts, "ct"); item; item = xmlnode_get_next_twin(item)) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
88 /* Yahoo replies with two types of contact (ct) record, we are only interested in the alias ones */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
89 if ((yid = xmlnode_get_attrib(item, "yi"))) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
90 /* Grab all the bits of information we can */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
91 fn = xmlnode_get_attrib(item,"fn");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
92 ln = xmlnode_get_attrib(item,"ln");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
93 nn = xmlnode_get_attrib(item,"nn");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
94 id = xmlnode_get_attrib(item,"id");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
95
22818
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
96 full_name = nick_name = alias = NULL;
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
97
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
98 /* Yahoo stores first and last names separately, lets put them together into a full name */
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
99 if (yd->jp)
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
100 full_name = g_strstrip(g_strdup_printf("%s %s", (ln != NULL ? ln : "") , (fn != NULL ? fn : "")));
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
101 else
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
102 full_name = g_strstrip(g_strdup_printf("%s %s", (fn != NULL ? fn : "") , (ln != NULL ? ln : "")));
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
103 nick_name = (nn != NULL ? g_strstrip(g_strdup_printf("%s", nn)) : NULL);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
104
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
105 if (nick_name != NULL)
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
106 alias = nick_name; /* If we have a nickname from Yahoo, let's use it */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
107 else if (strlen(full_name) != 0)
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
108 alias = full_name; /* If no Yahoo nickname, we can use the full_name created above */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
109
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
110 /* Find the local buddy that matches */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
111 b = purple_find_buddy(cb->gc->account, yid);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
112
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
113 /* If we don't find a matching buddy, ignore the alias !! */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
114 if (b != NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
115 /* Create an object that we can attach to the buddies proto_data pointer */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
116 struct YahooUser *yu;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
117 yu = g_new0(struct YahooUser, 1);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
118 yu->id = g_strdup(id);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
119 yu->firstname = g_strdup(fn);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
120 yu->lastname = g_strdup(ln);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
121 yu->nickname = g_strdup(nn);
22818
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
122 /* TODO: Isn't there a possiblity that b->proto_data is already set? */
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
123 b->proto_data=yu;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
124
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
125 /* Finally, if we received an alias, we better update the buddy list */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
126 if (alias != NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
127 serv_got_alias(cb->gc, yid, alias);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
128 purple_debug_info("yahoo","Fetched alias '%s' (%s)\n",alias,id);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
129 } else if (b->alias != alias && strcmp(b->alias, "") != 0) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
130 /* Or if we have an alias that Yahoo doesn't, send it up */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
131 yahoo_update_alias(cb->gc, yid, b->alias);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
132 purple_debug_info("yahoo","Sent alias '%s'\n", b->alias);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
133 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
134 } else {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
135 purple_debug_info("yahoo", "Bizarre, received alias for %s, but they are not on your list...\n", yid);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
136 }
22818
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
137
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
138 g_free(full_name);
0d7ceae153bd Leak fixes.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22486
diff changeset
139 g_free(nick_name);
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
140 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
141 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
142 xmlnode_free(contacts);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
143 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
144 g_free(cb->id);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
145 g_free(cb);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
146 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
147
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
148 void
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
149 yahoo_fetch_aliases(PurpleConnection *gc)
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
150 {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
151 struct yahoo_data *yd = gc->proto_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
152 struct callback_data *cb;
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
153 const char *url;
21016
abd768f06e7b Another patch from Andrew Gaul that plugs a leak:
Ka-Hing Cheung <khc@hxbc.us>
parents: 21013
diff changeset
154 char *request, *webpage, *webaddress;
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
155 PurpleUtilFetchUrlData *url_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
156
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
157 gboolean use_whole_url = FALSE;
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
158
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
159 /* use whole URL if using HTTP Proxy */
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
160 if ((gc->account->proxy_info) && (gc->account->proxy_info->type == PURPLE_PROXY_HTTP))
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
161 use_whole_url = TRUE;
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
162
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
163 /* Using callback_data so I have access to gc in the callback function */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
164 cb = g_new0(struct callback_data, 1);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
165 cb->gc = gc;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
166
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
167 /* Build all the info to make the web request */
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
168 url = yd->jp ? YAHOOJP_ALIAS_FETCH_URL : YAHOO_ALIAS_FETCH_URL;
21016
abd768f06e7b Another patch from Andrew Gaul that plugs a leak:
Ka-Hing Cheung <khc@hxbc.us>
parents: 21013
diff changeset
169 purple_url_parse(url, &webaddress, NULL, &webpage, NULL, NULL);
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
170 request = g_strdup_printf("GET %s%s/%s HTTP/1.1\r\n"
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
171 "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
172 "Cookie: T=%s; Y=%s\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
173 "Host: %s\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
174 "Cache-Control: no-cache\r\n\r\n",
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
175 use_whole_url ? "http://" : "", use_whole_url ? webaddress : "", webpage, yd->cookie_t,yd->cookie_y, webaddress);
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
176
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
177 /* We have a URL and some header information, let's connect and get some aliases */
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
178 url_data = purple_util_fetch_url_request(url, use_whole_url, NULL, TRUE, request, FALSE, yahoo_fetch_aliases_cb, cb);
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
179 if (url_data != NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
180 yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
181 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
182
21016
abd768f06e7b Another patch from Andrew Gaul that plugs a leak:
Ka-Hing Cheung <khc@hxbc.us>
parents: 21013
diff changeset
183 g_free(webaddress);
abd768f06e7b Another patch from Andrew Gaul that plugs a leak:
Ka-Hing Cheung <khc@hxbc.us>
parents: 21013
diff changeset
184 g_free(webpage);
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
185 g_free(request);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
186 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
187
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
188 /**************************************************************************
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
189 * Alias Update Functions
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
190 **************************************************************************/
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
191
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
192 static void
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
193 yahoo_update_alias_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data,const gchar *url_text, size_t len, const gchar *error_message)
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
194 {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
195 xmlnode *node, *result;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
196 struct callback_data *cb = user_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
197 PurpleConnection *gc = cb->gc;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
198 struct yahoo_data *yd;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
199
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
200 yd = gc->proto_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
201 yd->url_datas = g_slist_remove(yd->url_datas, url_data);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
202
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
203 if (len == 0 || error_message != NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
204 purple_debug_info("yahoo", "Error updating alias: %s\n",
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
205 error_message ? error_message : "");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
206 g_free(cb->id);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
207 g_free(cb);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
208 return;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
209 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
210
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
211 result = xmlnode_from_str(url_text, -1);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
212
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
213 purple_debug_info("yahoo", "ID: %s, Return data: %s\n",cb->id, url_text);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
214
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
215 if (result == NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
216 purple_debug_error("yahoo","Alias update failed: Badly formed response\n");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
217 g_free(cb->id);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
218 g_free(cb);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
219 return;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
220 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
221
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
222 if ((node = xmlnode_get_child(result, "ct"))) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
223 if (g_ascii_strncasecmp(xmlnode_get_attrib(node, "id"), cb->id, strlen(cb->id))==0)
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
224 purple_debug_info("yahoo", "Alias update succeeded\n");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
225 else
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
226 purple_debug_error("yahoo", "Alias update failed (Contact record return mismatch)\n");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
227 } else {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
228 purple_debug_info("yahoo", "Alias update failed (No contact record returned)\n");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
229 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
230
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
231 g_free(cb->id);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
232 g_free(cb);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
233 xmlnode_free(result);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
234 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
235
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
236 void
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
237 yahoo_update_alias(PurpleConnection *gc, const char *who, const char *alias)
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
238 {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
239 struct yahoo_data *yd;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
240 struct YahooUser *yu;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
241 char *content, *url, *request, *webpage, *webaddress, *strtmp;
22135
3550c5d7c493 Plug a leak.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22123
diff changeset
242 char *escaped_alias, *alias_jp, *converted_alias_jp;
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
243 int inttmp;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
244 struct callback_data *cb;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
245 PurpleBuddy *buddy;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
246 PurpleUtilFetchUrlData *url_data;
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
247 gboolean use_whole_url = FALSE;
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
248
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
249 /* use whole URL if using HTTP Proxy */
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
250 if ((gc->account->proxy_info) && (gc->account->proxy_info->type == PURPLE_PROXY_HTTP))
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
251 use_whole_url = TRUE;
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
252
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
253 g_return_if_fail(alias != NULL);
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
254 g_return_if_fail(who != NULL);
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
255 g_return_if_fail(gc != NULL);
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
256
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
257 purple_debug_info("yahoo", "Sending '%s' as new alias for user '%s'.\n",alias, who);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
258
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
259 buddy = purple_find_buddy(gc->account, who);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
260 if (buddy == NULL || buddy->proto_data == NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
261 purple_debug_info("yahoo", "Missing proto_data (get_yahoo_aliases must have failed), bailing out\n");
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
262 return;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
263 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
264
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
265 yd = gc->proto_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
266 yu = buddy->proto_data;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
267
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
268 /* Using callback_data so I have access to gc in the callback function */
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
269 cb = g_new0(struct callback_data, 1);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
270 cb->id = g_strdup(yu->id);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
271 cb->gc = gc;
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
272
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
273 /* Build all the info to make the web request */
22123
840e7e1b6dac disapproval of revision '947ccb889812585e6d53eac13fc12734d8481e33'
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22121
diff changeset
274 url = yd->jp? YAHOOJP_ALIAS_UPDATE_URL: YAHOO_ALIAS_UPDATE_URL;
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
275 purple_url_parse(url, &webaddress, &inttmp, &webpage, &strtmp, &strtmp);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
276
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
277 if (yd->jp) {
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
278 alias_jp = g_convert(alias, strlen(alias), "EUC-JP", "UTF-8", NULL, NULL, NULL);
22123
840e7e1b6dac disapproval of revision '947ccb889812585e6d53eac13fc12734d8481e33'
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22121
diff changeset
279 converted_alias_jp = yahoo_convert_to_numeric(alias_jp);
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
280 content = g_strdup_printf("<ab k=\"%s\" cc=\"1\">\n"
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
281 "<ct e=\"1\" yi='%s' id='%s' nn='%s' pr='0' />\n</ab>\r\n",
22123
840e7e1b6dac disapproval of revision '947ccb889812585e6d53eac13fc12734d8481e33'
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22121
diff changeset
282 gc->account->username, who, yu->id, converted_alias_jp);
840e7e1b6dac disapproval of revision '947ccb889812585e6d53eac13fc12734d8481e33'
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22121
diff changeset
283 free(converted_alias_jp);
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
284 g_free(alias_jp);
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
285 }
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
286 else {
22135
3550c5d7c493 Plug a leak.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22123
diff changeset
287 escaped_alias = g_markup_escape_text(alias, strlen(alias));
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
288 content = g_strdup_printf("<?xml version=\"1.0\" encoding=\"utf-8\"?><ab k=\"%s\" cc=\"1\">\n"
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
289 "<ct e=\"1\" yi='%s' id='%s' nn='%s' pr='0' />\n</ab>\r\n",
22135
3550c5d7c493 Plug a leak.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22123
diff changeset
290 gc->account->username, who, yu->id, escaped_alias);
3550c5d7c493 Plug a leak.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22123
diff changeset
291 g_free(escaped_alias);
22115
4ab154a14e55 Patch from Yusuke Odate, modified by me, to support retrieving the full
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
292 }
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
293
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
294 request = g_strdup_printf("POST %s%s/%s HTTP/1.1\r\n"
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
295 "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
296 "Cookie: T=%s; Y=%s\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
297 "Host: %s\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
298 "Content-Length: %" G_GSIZE_FORMAT "\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
299 "Cache-Control: no-cache\r\n\r\n"
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
300 "%s",
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
301 use_whole_url ? "http://" : "", use_whole_url ? webaddress : "", webpage, yd->cookie_t,yd->cookie_y, webaddress,
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
302 strlen(content), content);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
303
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
304 /* We have a URL and some header information, let's connect and update the alias */
22056
b0ed2ce8514d A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21284
diff changeset
305 url_data = purple_util_fetch_url_request(url, use_whole_url, NULL, TRUE, request, FALSE, yahoo_update_alias_cb, cb);
21013
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
306 if (url_data != NULL) {
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
307 yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
308 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
309
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
310 g_free(content);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
311 g_free(request);
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
312 }
32e3d45aa1b2 Fix a crash that occurs when the HTTP call to set/get yahoo aliases fails. When purple_util_fetch_url_request() returns NULL, it has already triggered the callback. Fixes #3668.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20336
diff changeset
313