annotate libpurple/protocols/myspace/user.c @ 29191:10df4b6b149c

Two changes: 1. If we're about to make another request to fetch an icon then cancel the first one (if it exists) 2. When freeing a buddy, only attempt to cancel a url request if it is non-NULL
author Mark Doliner <mark@kingant.net>
date Sat, 19 Dec 2009 02:33:53 +0000
parents 57612c4d495b
children 94a88e5bd3fc 356d1f40a56d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
1 /* MySpaceIM Protocol Plugin, header file
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
2 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
3 * Copyright (C) 2007, Jeff Connelly <jeff2@soc.pidgin.im>
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
4 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
5 * This program is free software; you can redistribute it and/or modify
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
6 * it under the terms of the GNU General Public License as published by
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
8 * (at your option) any later version.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
9 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
10 * This program is distributed in the hope that it will be useful,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
13 * GNU General Public License for more details.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
14 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
15 * You should have received a copy of the GNU General Public License
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
16 * along with this program; if not, write to the Free Software
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
18 */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
19
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
20 #include "myspace.h"
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
21
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
22 static void msim_check_username_availability_cb(PurpleConnection *gc, const char *username_to_check);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
23
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
24 static char *msim_username_to_set;
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
25
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
26 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
27 * Format the "now playing" indicator, showing the artist and song.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
28 *
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
29 * @return Return a new string (must be g_free()'d), or NULL.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
30 */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
31 static gchar *
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
32 msim_format_now_playing(const gchar *band, const gchar *song)
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
33 {
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
34 if ((band && *band) || (song && *song)) {
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
35 return g_strdup_printf("%s - %s",
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
36 (band && *band) ? band : "Unknown Artist",
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
37 (song && *song) ? song : "Unknown Song");
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
38 } else {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
39 return NULL;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
40 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
41 }
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
42
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
43 /**
25005
401f548e3544 propagate from branch 'im.pidgin.pidgin' (head df6eba32e5b6b34d7483cbfb7e9f2e4c836ac35f)
Paul Aurich <paul@darkrain42.org>
parents: 24509 24770
diff changeset
44 * Get the MsimUser from a PurpleBuddy, optionally creating it if needed.
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
45 */
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
46 MsimUser *
24509
125cac3e24ee The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents: 23376
diff changeset
47 msim_get_user_from_buddy(PurpleBuddy *buddy, gboolean create)
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
48 {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
49 MsimUser *user;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
50
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
51 if (!buddy) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
52 return NULL;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
53 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
54
25465
9ea3474065dc propagate from branch 'im.pidgin.pidgin' (head 303af74a38e7b313d4fb0be4d4054a16cb13d819)
Paul Aurich <paul@darkrain42.org>
parents: 25382 25011
diff changeset
55 user = purple_buddy_get_protocol_data(buddy);
9ea3474065dc propagate from branch 'im.pidgin.pidgin' (head 303af74a38e7b313d4fb0be4d4054a16cb13d819)
Paul Aurich <paul@darkrain42.org>
parents: 25382 25011
diff changeset
56 if (create && !user) {
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
57 /* No MsimUser for this buddy; make one. */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
58
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
59 user = g_new0(MsimUser, 1);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
60 user->buddy = buddy;
27234
324cc0d6ca0a As far as I can tell this line was accidentally removed in an explicit merge
Mark Doliner <mark@kingant.net>
parents: 25465
diff changeset
61 user->id = purple_blist_node_get_int(&buddy->node, "UserID");
25368
1260a3fb60f4 propagate from branch 'im.pidgin.pidgin' (head b8d6086aef6b2e65d86e8ce60220ab7f460d5079)
Richard Laager <rlaager@wiktel.com>
parents: 24632 25290
diff changeset
62 purple_buddy_set_protocol_data(buddy, user);
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
63 }
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
64
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
65 return user;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
66 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
67
24853
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
68 void msim_user_free(MsimUser *user)
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
69 {
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
70 if (!user)
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
71 return;
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
72
29191
10df4b6b149c Two changes:
Mark Doliner <mark@kingant.net>
parents: 29187
diff changeset
73 if (user->url_data != NULL)
10df4b6b149c Two changes:
Mark Doliner <mark@kingant.net>
parents: 29187
diff changeset
74 purple_util_fetch_url_cancel(user->url_data);
29187
57612c4d495b Fix a crash when disconnecting with a pending buddy icon fetch request.
Mark Doliner <mark@kingant.net>
parents: 27463
diff changeset
75
24853
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
76 g_free(user->client_info);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
77 g_free(user->gender);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
78 g_free(user->location);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
79 g_free(user->headline);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
80 g_free(user->display_name);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
81 g_free(user->username);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
82 g_free(user->band_name);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
83 g_free(user->song_name);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
84 g_free(user->image_url);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
85 g_free(user);
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
86 }
c6cadb7bdcf7 A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24832
diff changeset
87
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
88 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
89 * Find and return an MsimUser * representing a user on the buddy list, or NULL.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
90 */
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
91 MsimUser *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
92 msim_find_user(MsimSession *session, const gchar *username)
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
93 {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
94 PurpleBuddy *buddy;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
95 MsimUser *user;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
96
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
97 buddy = purple_find_buddy(session->account, username);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
98 if (!buddy) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
99 return NULL;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
100 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
101
24509
125cac3e24ee The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents: 23376
diff changeset
102 user = msim_get_user_from_buddy(buddy, TRUE);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
103
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
104 return user;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
105 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
106
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
107 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
108 * Append user information to a PurpleNotifyUserInfo, given an MsimUser.
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
109 * Used by msim_tooltip_text() and msim_get_info_cb() to show a user's profile.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
110 */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
111 void
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
112 msim_append_user_info(MsimSession *session, PurpleNotifyUserInfo *user_info, MsimUser *user, gboolean full)
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
113 {
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
114 PurplePresence *presence;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
115 gchar *str;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
116 guint cv;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
117
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
118 /* Useful to identify the account the tooltip refers to.
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
119 * Other prpls show this. */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
120 if (user->username) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
121 purple_notify_user_info_add_pair(user_info, _("User"), user->username);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
122 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
123
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
124 /* a/s/l...the vitals */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
125 if (user->age) {
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
126 char age[16];
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
127 g_snprintf(age, sizeof(age), "%d", user->age);
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
128 purple_notify_user_info_add_pair(user_info, _("Age"), age);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
129 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
130
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
131 if (user->gender && *user->gender) {
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
132 purple_notify_user_info_add_pair(user_info, _("Gender"), user->gender);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
133 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
134
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
135 if (user->location && *user->location) {
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
136 purple_notify_user_info_add_pair(user_info, _("Location"), user->location);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
137 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
138
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
139 /* Other information */
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
140 if (user->headline && *user->headline) {
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
141 purple_notify_user_info_add_pair(user_info, _("Headline"), user->headline);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
142 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
143
24631
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
144 if (user->buddy != NULL) {
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
145 presence = purple_buddy_get_presence(user->buddy);
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
146
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
147 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_TUNE)) {
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
148 PurpleStatus *status;
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
149 const char *artist, *title;
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
150
24631
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
151 status = purple_presence_get_status(presence, "tune");
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
152 title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE);
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
153 artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST);
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
154
24631
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
155 str = msim_format_now_playing(artist, title);
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
156 if (str && *str) {
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
157 purple_notify_user_info_add_pair(user_info, _("Song"), str);
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
158 }
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
159 g_free(str);
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
160 }
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
161 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
162
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
163 /* Note: total friends only available if looked up by uid, not username. */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
164 if (user->total_friends) {
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
165 char friends[16];
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
166 g_snprintf(friends, sizeof(friends), "%d", user->total_friends);
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
167 purple_notify_user_info_add_pair(user_info, _("Total Friends"), friends);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
168 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
169
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
170 if (full) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
171 /* Client information */
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
172 char *client = NULL;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
173
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
174 str = user->client_info;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
175 cv = user->client_cv;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
176
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
177 if (str && cv != 0) {
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
178 client = g_strdup_printf("%s (build %d)", str, cv);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
179 } else if (str) {
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
180 client = g_strdup(str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
181 } else if (cv) {
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
182 client = g_strdup_printf("Build %d", cv);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
183 }
20753
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
184 if (client && *client)
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
185 purple_notify_user_info_add_pair(user_info, _("Client Version"), client);
61045691aa72 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20689
diff changeset
186 g_free(client);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
187 }
24615
9fc3f5bf4455 Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents: 23376
diff changeset
188
24632
128a77f3b3c4 Keep track of the user ID in the MsimUser struct so that we have a copy
Mark Doliner <mark@kingant.net>
parents: 24631
diff changeset
189 if (full && user->id) {
24615
9fc3f5bf4455 Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents: 23376
diff changeset
190 /* TODO: link to username, if available */
9fc3f5bf4455 Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents: 23376
diff changeset
191 char *profile;
9fc3f5bf4455 Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents: 23376
diff changeset
192 purple_notify_user_info_add_section_break(user_info);
24726
694591875bc9 Use the friendly/vanity url when it's available in myspace
Mark Doliner <mark@kingant.net>
parents: 24632
diff changeset
193 if (user->buddy != NULL)
694591875bc9 Use the friendly/vanity url when it's available in myspace
Mark Doliner <mark@kingant.net>
parents: 24632
diff changeset
194 profile = g_strdup_printf("<a href=\"http://myspace.com/%s\">%s</a>",
694591875bc9 Use the friendly/vanity url when it's available in myspace
Mark Doliner <mark@kingant.net>
parents: 24632
diff changeset
195 purple_buddy_get_name(user->buddy), _("View web profile"));
694591875bc9 Use the friendly/vanity url when it's available in myspace
Mark Doliner <mark@kingant.net>
parents: 24632
diff changeset
196 else
694591875bc9 Use the friendly/vanity url when it's available in myspace
Mark Doliner <mark@kingant.net>
parents: 24632
diff changeset
197 profile = g_strdup_printf("<a href=\"http://myspace.com/%d\">%s</a>",
694591875bc9 Use the friendly/vanity url when it's available in myspace
Mark Doliner <mark@kingant.net>
parents: 24632
diff changeset
198 user->id, _("View web profile"));
24615
9fc3f5bf4455 Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents: 23376
diff changeset
199 purple_notify_user_info_add_pair(user_info, NULL, profile);
9fc3f5bf4455 Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents: 23376
diff changeset
200 g_free(profile);
9fc3f5bf4455 Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents: 23376
diff changeset
201 }
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
202 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
203
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
204 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
205 * Callback for when a buddy icon finished being downloaded.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
206 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
207 static void
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
208 msim_downloaded_buddy_icon(PurpleUtilFetchUrlData *url_data,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
209 gpointer user_data,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
210 const gchar *url_text,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
211 gsize len,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
212 const gchar *error_message)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
213 {
25374
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
214 MsimUser *user = (MsimUser *)user_data;
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
215 const char *name = purple_buddy_get_name(user->buddy);
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
216 PurpleAccount *account;
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
217
29187
57612c4d495b Fix a crash when disconnecting with a pending buddy icon fetch request.
Mark Doliner <mark@kingant.net>
parents: 27463
diff changeset
218 user->url_data = NULL;
57612c4d495b Fix a crash when disconnecting with a pending buddy icon fetch request.
Mark Doliner <mark@kingant.net>
parents: 27463
diff changeset
219
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
220 purple_debug_info("msim_downloaded_buddy_icon",
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
221 "Downloaded %" G_GSIZE_FORMAT " bytes\n", len);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
222
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
223 if (!url_text) {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
224 purple_debug_info("msim_downloaded_buddy_icon",
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
225 "failed to download icon for %s",
25374
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
226 name);
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
227 return;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
228 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
229
25374
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
230 account = purple_buddy_get_account(user->buddy);
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
231 purple_buddy_icons_set_for_user(account, name,
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
232 g_memdup((gchar *)url_text, len), len,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
233 /* Use URL itself as buddy icon "checksum" (TODO: ETag) */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
234 user->image_url); /* checksum */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
235 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
236
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
237 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
238 * Set the currently playing song artist and or title.
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
239 *
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
240 * @param user User associated with the now playing information.
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
241 *
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
242 * @param new_artist New artist to set, or NULL/empty to not change artist.
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
243 *
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
244 * @param new_title New title to set, or NULL/empty to not change title.
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
245 *
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
246 * If new_artist and new_title are NULL/empty, deactivate PURPLE_STATUS_TUNE.
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
247 *
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
248 * This function is useful because it lets you set the artist or title
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
249 * individually, which purple_prpl_got_user_status() doesn't do.
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
250 */
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
251 static void msim_set_artist_or_title(MsimUser *user, const char *new_artist, const char *new_title)
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
252 {
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
253 PurplePresence *presence;
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
254 PurpleAccount *account;
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
255 const char *prev_artist, *prev_title;
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
256 const char *name;
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
257
24631
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
258 if (user->buddy == NULL)
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
259 /* User not on buddy list so nothing to do */
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
260 return;
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
261
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
262 prev_artist = NULL;
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
263 prev_title = NULL;
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
264
24631
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
265 if (new_artist && !*new_artist)
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
266 new_artist = NULL;
24631
1af3baa61c9f Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents: 24615
diff changeset
267 if (new_title && !*new_title)
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
268 new_title = NULL;
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
269
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
270 account = purple_buddy_get_account(user->buddy);
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
271 name = purple_buddy_get_name(user->buddy);
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
272
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
273 if (!new_artist && !new_title) {
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
274 purple_prpl_got_user_status_deactive(account, name, "tune");
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
275 return;
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
276 }
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
277
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
278 presence = purple_buddy_get_presence(user->buddy);
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
279
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
280 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_TUNE)) {
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
281 PurpleStatus *status;
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
282
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
283 status = purple_presence_get_status(presence, "tune");
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
284 prev_title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE);
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
285 prev_artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST);
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
286 }
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
287
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
288 if (!new_artist)
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
289 new_artist = prev_artist;
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
290
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
291 if (!new_title)
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
292 new_title = prev_title;
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
293
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
294 purple_prpl_got_user_status(account, name, "tune",
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
295 PURPLE_TUNE_TITLE, new_title,
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
296 PURPLE_TUNE_ARTIST, new_artist,
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
297 NULL);
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
298 }
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
299
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
300 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
301 * Store a field of information about a buddy.
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
302 *
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
303 * @param key_str Key to store.
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
304 * @param value_str Value string, either user takes ownership of this string
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
305 * or it is freed if MsimUser doesn't store the string.
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
306 * @param user User to store data in. Existing data will be replaced.
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
307 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
308 static void
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
309 msim_store_user_info_each(const gchar *key_str, gchar *value_str, MsimUser *user)
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
310 {
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
311 const char *name = user->buddy ? purple_buddy_get_name(user->buddy) : NULL;
25374
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
312
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
313 if (g_str_equal(key_str, "UserID") || g_str_equal(key_str, "ContactID")) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
314 /* Save to buddy list, if it exists, for quick cached uid lookup with msim_uid2username_from_blist(). */
24632
128a77f3b3c4 Keep track of the user ID in the MsimUser struct so that we have a copy
Mark Doliner <mark@kingant.net>
parents: 24631
diff changeset
315 user->id = atol(value_str);
24770
22fd7467f0cc Fix a few small memleaks
Mark Doliner <mark@kingant.net>
parents: 24764
diff changeset
316 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
317 if (user->buddy)
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
318 {
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
319 purple_debug_info("msim", "associating uid %s with username %s\n", key_str, name);
25374
e22bc87b758b explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
parents: 24731 25373
diff changeset
320 purple_blist_node_set_int(PURPLE_BLIST_NODE(user->buddy), "UserID", user->id);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
321 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
322 /* Need to store in MsimUser, too? What if not on blist? */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
323 } else if (g_str_equal(key_str, "Age")) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
324 user->age = atol(value_str);
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
325 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
326 } else if (g_str_equal(key_str, "Gender")) {
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
327 g_free(user->gender);
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
328 user->gender = value_str;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
329 } else if (g_str_equal(key_str, "Location")) {
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
330 g_free(user->location);
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
331 user->location = value_str;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
332 } else if (g_str_equal(key_str, "TotalFriends")) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
333 user->total_friends = atol(value_str);
24770
22fd7467f0cc Fix a few small memleaks
Mark Doliner <mark@kingant.net>
parents: 24764
diff changeset
334 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
335 } else if (g_str_equal(key_str, "DisplayName")) {
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
336 g_free(user->display_name);
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
337 user->display_name = value_str;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
338 } else if (g_str_equal(key_str, "BandName")) {
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
339 msim_set_artist_or_title(user, value_str, NULL);
24770
22fd7467f0cc Fix a few small memleaks
Mark Doliner <mark@kingant.net>
parents: 24764
diff changeset
340 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
341 } else if (g_str_equal(key_str, "SongName")) {
22264
e808d83d797e In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 21022
diff changeset
342 msim_set_artist_or_title(user, NULL, value_str);
24770
22fd7467f0cc Fix a few small memleaks
Mark Doliner <mark@kingant.net>
parents: 24764
diff changeset
343 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
344 } else if (g_str_equal(key_str, "UserName") || g_str_equal(key_str, "IMName") || g_str_equal(key_str, "NickName")) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
345 /* Ignore because PurpleBuddy knows this already */
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
346 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
347 } else if (g_str_equal(key_str, "ImageURL") || g_str_equal(key_str, "AvatarURL")) {
20995
87c9d114864b Fix a warning
Kevin Stange <kevin@simguy.net>
parents: 20982
diff changeset
348 const gchar *previous_url;
87c9d114864b Fix a warning
Kevin Stange <kevin@simguy.net>
parents: 20982
diff changeset
349
20982
aee8d876fed1 When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evan.s@dreskin.net>
parents: 20753
diff changeset
350 if (user->temporary_user) {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
351 /* This user will be destroyed soon; don't try to look up its image or avatar,
20982
aee8d876fed1 When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evan.s@dreskin.net>
parents: 20753
diff changeset
352 * since that won't return immediately and we will end up accessing freed data.
aee8d876fed1 When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evan.s@dreskin.net>
parents: 20753
diff changeset
353 */
aee8d876fed1 When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evan.s@dreskin.net>
parents: 20753
diff changeset
354 g_free(value_str);
aee8d876fed1 When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evan.s@dreskin.net>
parents: 20753
diff changeset
355 return;
aee8d876fed1 When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evan.s@dreskin.net>
parents: 20753
diff changeset
356 }
21022
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
357
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
358 if (user->temporary_user) {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
359 /* This user will be destroyed soon; don't try to look up its image or avatar,
21022
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
360 * since that won't return immediately and we will end up accessing freed data.
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
361 */
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
362 g_free(value_str);
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
363 return;
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
364 }
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
365
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
366 g_free(user->image_url);
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
367
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
368 user->image_url = value_str;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
369
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
370 /* Instead of showing 'no photo' picture, show nothing. */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
371 if (g_str_equal(user->image_url, "http://x.myspace.com/images/no_pic.gif"))
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
372 {
24120
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
373 purple_buddy_icons_set_for_user(purple_buddy_get_account(user->buddy),
16734635febf Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23376
diff changeset
374 name, NULL, 0, NULL);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
375 return;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
376 }
21022
3f8b32a4786c Fix this warning:
Stu Tomlinson <stu@nosnilmot.com>
parents: 21000
diff changeset
377
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
378 /* TODO: use ETag for checksum */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
379 previous_url = purple_buddy_icons_get_checksum_for_user(user->buddy);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
380
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
381 /* Only download if URL changed */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
382 if (!previous_url || !g_str_equal(previous_url, user->image_url)) {
29191
10df4b6b149c Two changes:
Mark Doliner <mark@kingant.net>
parents: 29187
diff changeset
383 if (user->url_data != NULL)
10df4b6b149c Two changes:
Mark Doliner <mark@kingant.net>
parents: 29187
diff changeset
384 purple_util_fetch_url_cancel(user->url_data);
29187
57612c4d495b Fix a crash when disconnecting with a pending buddy icon fetch request.
Mark Doliner <mark@kingant.net>
parents: 27463
diff changeset
385 user->url_data = purple_util_fetch_url(user->image_url, TRUE, NULL, TRUE, msim_downloaded_buddy_icon, (gpointer)user);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
386 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
387 } else if (g_str_equal(key_str, "LastImageUpdated")) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
388 /* TODO: use somewhere */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
389 user->last_image_updated = atol(value_str);
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
390 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
391 } else if (g_str_equal(key_str, "Headline")) {
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
392 g_free(user->headline);
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
393 user->headline = value_str;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
394 } else {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
395 /* TODO: other fields in MsimUser */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
396 gchar *msg;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
397
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
398 msg = g_strdup_printf("msim_store_user_info_each: unknown field %s=%s",
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
399 key_str, value_str);
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
400 g_free(value_str);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
401
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
402 msim_unrecognized(NULL, NULL, msg);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
403
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
404 g_free(msg);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
405 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
406 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
407
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
408 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
409 * Save buddy information to the buddy list from a user info reply message.
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
410 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
411 * @param session
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
412 * @param msg The user information reply, with any amount of information.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
413 * @param user The structure to save to, or NULL to save in PurpleBuddy->proto_data.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
414 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
415 * Variable information is saved to the passed MsimUser structure. Permanent
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
416 * information (UserID) is stored in the blist node of the buddy list (and
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
417 * ends up in blist.xml, persisted to disk) if it exists.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
418 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
419 * If the function has no buddy information, this function
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
420 * is a no-op (and returns FALSE).
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
421 */
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
422 gboolean
24764
c044eb54b7ac Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24746
diff changeset
423 msim_store_user_info(MsimSession *session, const MsimMessage *msg, MsimUser *user)
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
424 {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
425 gchar *username;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
426 MsimMessage *body, *body_node;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
427
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
428 g_return_val_if_fail(MSIM_SESSION_VALID(session), FALSE);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
429 g_return_val_if_fail(msg != NULL, FALSE);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
430
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
431 body = msim_msg_get_dictionary(msg, "body");
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
432 if (!body) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
433 return FALSE;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
434 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
435
24746
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
436 if (msim_msg_get_integer(msg, "dsn") == MG_OWN_IM_INFO_DSN &&
24827
a9b4599a5367 Fix a typo in a comment
Mark Doliner <mark@kingant.net>
parents: 24770
diff changeset
437 msim_msg_get_integer(msg, "lid") == MG_OWN_IM_INFO_LID)
a9b4599a5367 Fix a typo in a comment
Mark Doliner <mark@kingant.net>
parents: 24770
diff changeset
438 {
24746
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
439 /*
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
440 * Some of this info will be available on the buddy list if the
24827
a9b4599a5367 Fix a typo in a comment
Mark Doliner <mark@kingant.net>
parents: 24770
diff changeset
441 * user has themselves as their own buddy.
24746
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
442 *
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
443 * Much of the info is already available in MsimSession,
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
444 * stored in msim_we_are_logged_on().
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
445 */
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
446 gchar *tmpstr;
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
447
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
448 tmpstr = msim_msg_get_string(body, "ShowOnlyToList");
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
449 if (tmpstr != NULL) {
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
450 session->show_only_to_list = g_str_equal(tmpstr, "True");
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
451 g_free(tmpstr);
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
452 }
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
453
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
454 session->privacy_mode = msim_msg_get_integer(body, "PrivacyMode");
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
455 session->offline_message_mode = msim_msg_get_integer(body, "OfflineMessageMode");
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
456
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
457 msim_send(session,
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
458 "blocklist", MSIM_TYPE_BOOLEAN, TRUE,
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
459 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
460 "idlist", MSIM_TYPE_STRING,
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
461 g_strdup_printf("w%d|c%d",
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
462 session->show_only_to_list ? 1 : 0,
24832
1d77f138847b This is a bitmask, and the "c" value here should be the least significant
Mark Doliner <mark@kingant.net>
parents: 24827
diff changeset
463 session->privacy_mode & 1),
24746
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
464 NULL);
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
465 } else if (msim_msg_get_integer(msg, "dsn") == MG_OWN_MYSPACE_INFO_DSN &&
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
466 msim_msg_get_integer(msg, "lid") == MG_OWN_MYSPACE_INFO_LID) {
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
467 /* TODO: same as above, but for MySpace info. */
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
468 }
8e75a1525156 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents: 24743
diff changeset
469
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
470 username = msim_msg_get_string(body, "UserName");
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
471
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
472 if (!username) {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
473 purple_debug_info("msim",
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
474 "msim_process_reply: not caching body, no UserName\n");
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
475 msim_msg_free(body);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
476 g_free(username);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
477 return FALSE;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
478 }
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
479
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
480 /* Null user = find and store in PurpleBuddy's proto_data */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
481 if (!user) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
482 user = msim_find_user(session, username);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
483 if (!user) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
484 msim_msg_free(body);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
485 g_free(username);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
486 return FALSE;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
487 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
488 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
489
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
490 /* TODO: make looping over MsimMessage's easier. */
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
491 for (body_node = body;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
492 body_node != NULL;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
493 body_node = msim_msg_get_next_element_node(body_node))
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
494 {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
495 const gchar *key_str;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
496 gchar *value_str;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
497 MsimMessageElement *elem;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
498
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
499 elem = (MsimMessageElement *)body_node->data;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
500 key_str = elem->name;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
501
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
502 value_str = msim_msg_get_string_from_element(elem);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
503 msim_store_user_info_each(key_str, value_str, user);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
504 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
505
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
506 msim_msg_free(body);
20150
52dce2882c03 Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 20147
diff changeset
507 g_free(username);
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
508
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
509 return TRUE;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
510 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
511
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
512 #if 0
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
513 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
514 * Return whether a given username is syntactically valid.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
515 * Note: does not actually check that the user exists.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
516 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
517 static gboolean
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
518 msim_is_valid_username(const gchar *user)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
519 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
520 return !msim_is_userid(user) && /* Not all numeric */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
521 strlen(user) <= MSIM_MAX_USERNAME_LENGTH
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
522 && strspn(user, "0123456789"
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
523 "abcdefghijklmnopqrstuvwxyz"
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
524 "_"
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
525 "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == strlen(user);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
526 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
527 #endif
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
528
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
529 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
530 * Check if a string is a userid (all numeric).
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
531 *
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
532 * @param user The user id, email, or name.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
533 *
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
534 * @return TRUE if is userid, FALSE if not.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
535 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
536 gboolean
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
537 msim_is_userid(const gchar *user)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
538 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
539 g_return_val_if_fail(user != NULL, FALSE);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
540
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
541 return strspn(user, "0123456789") == strlen(user);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
542 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
543
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
544 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
545 * Check if a string is an email address (contains an @).
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
546 *
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
547 * @param user The user id, email, or name.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
548 *
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
549 * @return TRUE if is an email, FALSE if not.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
550 *
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
551 * This function is not intended to be used as a generic
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
552 * means of validating email addresses, but to distinguish
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
553 * between a user represented by an email address from
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
554 * other forms of identification.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
555 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
556 static gboolean
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
557 msim_is_email(const gchar *user)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
558 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
559 g_return_val_if_fail(user != NULL, FALSE);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
560
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
561 return strchr(user, '@') != NULL;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
562 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
563
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
564 /**
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
565 * Asynchronously lookup user information, calling callback when receive result.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
566 *
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
567 * @param session
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
568 * @param user The user id, email address, or username. Not freed.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
569 * @param cb Callback, called with user information when available.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
570 * @param data An arbitray data pointer passed to the callback.
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
571 */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
572 /* TODO: change to not use callbacks */
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
573 void
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
574 msim_lookup_user(MsimSession *session, const gchar *user, MSIM_USER_LOOKUP_CB cb, gpointer data)
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
575 {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
576 MsimMessage *body;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
577 gchar *field_name;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
578 guint rid, cmd, dsn, lid;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
579
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
580 g_return_if_fail(MSIM_SESSION_VALID(session));
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
581 g_return_if_fail(user != NULL);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
582 /* Callback can be null to not call anything, just lookup & store information. */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
583 /*g_return_if_fail(cb != NULL);*/
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
584
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
585 purple_debug_info("msim", "msim_lookup_userid: "
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
586 "asynchronously looking up <%s>\n", user);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
587
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
588 /* Setup callback. Response will be associated with request using 'rid'. */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
589 rid = msim_new_reply_callback(session, cb, data);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
590
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
591 /* Send request */
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
592
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
593 cmd = MSIM_CMD_GET;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
594
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
595 if (msim_is_userid(user)) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
596 field_name = "UserID";
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
597 dsn = MG_MYSPACE_INFO_BY_ID_DSN;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
598 lid = MG_MYSPACE_INFO_BY_ID_LID;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
599 } else if (msim_is_email(user)) {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
600 field_name = "Email";
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
601 dsn = MG_MYSPACE_INFO_BY_STRING_DSN;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
602 lid = MG_MYSPACE_INFO_BY_STRING_LID;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
603 } else {
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
604 field_name = "UserName";
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
605 dsn = MG_MYSPACE_INFO_BY_STRING_DSN;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
606 lid = MG_MYSPACE_INFO_BY_STRING_LID;
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
607 }
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
608
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
609 body = msim_msg_new(
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
610 field_name, MSIM_TYPE_STRING, g_strdup(user),
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
611 NULL);
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
612
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
613 g_return_if_fail(msim_send(session,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
614 "persist", MSIM_TYPE_INTEGER, 1,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
615 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
616 "cmd", MSIM_TYPE_INTEGER, 1,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
617 "dsn", MSIM_TYPE_INTEGER, dsn,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
618 "uid", MSIM_TYPE_INTEGER, session->userid,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
619 "lid", MSIM_TYPE_INTEGER, lid,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
620 "rid", MSIM_TYPE_INTEGER, rid,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
621 "body", MSIM_TYPE_DICTIONARY, body,
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
622 NULL));
22305
bf4902fce6e4 In msimprpl, add msim_is_valid_username() to check whether a username
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22304
diff changeset
623 }
bf4902fce6e4 In msimprpl, add msim_is_valid_username() to check whether a username
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22304
diff changeset
624
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
625 /**
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
626 * Called after username is set.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
627 */
24764
c044eb54b7ac Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24746
diff changeset
628 static void msim_username_is_set_cb(MsimSession *session, const MsimMessage *userinfo, gpointer data)
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
629 {
24764
c044eb54b7ac Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24746
diff changeset
630 gchar *username;
c044eb54b7ac Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24746
diff changeset
631 const gchar *errmsg;
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
632 MsimMessage *body;
20257
1141d47b162c Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
633
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
634 guint rid;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
635 gint cmd,dsn,uid,lid,code;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
636 /* \persistr\\cmd\258\dsn\9\uid\204084363\lid\14\rid\369\body\UserName=TheAlbinoRhino1.Code=0\final\ */
22303
1097406c8f6c In msimprpl, change to patch from Jaywalker regarding setting
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22302
diff changeset
637
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
638 purple_debug_info("msim","username_is_set made\n");
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
639
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
640 g_return_if_fail(MSIM_SESSION_VALID(session));
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
641
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
642 cmd = msim_msg_get_integer(userinfo, "cmd");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
643 dsn = msim_msg_get_integer(userinfo, "dsn");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
644 uid = msim_msg_get_integer(userinfo, "uid");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
645 lid = msim_msg_get_integer(userinfo, "lid");
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
646 body = msim_msg_get_dictionary(userinfo, "body");
27463
f541583e31bd More uniformity among disconnect error messages
Mark Doliner <mark@kingant.net>
parents: 27235
diff changeset
647 errmsg = _("An error occurred while trying to set the username. "
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
648 "Please try again, or visit http://editprofile.myspace.com/index.cfm?"
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
649 "fuseaction=profile.username to set your username.");
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
650
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
651 if (!body) {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
652 purple_debug_info("msim_username_is_set_cb", "No body");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
653 /* Error: No body! */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
654 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
655 }
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
656 username = msim_msg_get_string(body, "UserName");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
657 code = msim_msg_get_integer(body,"Code");
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
658
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
659 msim_msg_free(body);
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
660
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
661 purple_debug_info("msim_username_is_set_cb",
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
662 "cmd = %d, dsn = %d, lid = %d, code = %d, username = %s\n",
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
663 cmd, dsn, lid, code, username);
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
664
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
665 if (cmd == (MSIM_CMD_BIT_REPLY | MSIM_CMD_PUT)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
666 && dsn == MC_SET_USERNAME_DSN
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
667 && lid == MC_SET_USERNAME_LID)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
668 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
669 purple_debug_info("msim_username_is_set_cb", "Proper cmd,dsn,lid for username_is_set!\n");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
670 purple_debug_info("msim_username_is_set_cb", "Username Set with return code %d\n",code);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
671 if (code == 0) {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
672 /* Good! */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
673 session->username = username;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
674 msim_we_are_logged_on(session);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
675 } else {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
676 purple_debug_info("msim_username_is_set", "code is %d",code);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
677 /* TODO: what to do here? */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
678 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
679 } else if (cmd == (MSIM_CMD_BIT_REPLY | MSIM_CMD_GET)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
680 && dsn == MG_MYSPACE_INFO_BY_STRING_DSN
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
681 && lid == MG_MYSPACE_INFO_BY_STRING_LID) {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
682 /* Not quite done... ONE MORE STEP :) */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
683 rid = msim_new_reply_callback(session, msim_username_is_set_cb, data);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
684 body = msim_msg_new("UserName", MSIM_TYPE_STRING, g_strdup(username), NULL);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
685 if (!msim_send(session, "persist", MSIM_TYPE_INTEGER, 1,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
686 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
687 "cmd", MSIM_TYPE_INTEGER, MSIM_CMD_PUT,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
688 "dsn", MSIM_TYPE_INTEGER, MC_SET_USERNAME_DSN,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
689 "uid", MSIM_TYPE_INTEGER, session->userid,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
690 "lid", MSIM_TYPE_INTEGER, MC_SET_USERNAME_LID,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
691 "rid", MSIM_TYPE_INTEGER, rid,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
692 "body", MSIM_TYPE_DICTIONARY, body,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
693 NULL)) {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
694 /* Error! */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
695 /* Can't set... Disconnect */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
696 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
697 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
698
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
699 } else {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
700 /* Error! */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
701 purple_debug_info("msim","username_is_set Error: Invalid cmd/dsn/lid combination");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
702 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
703 }
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
704 }
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
705
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
706 /**
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
707 * Asynchronously set new username, calling callback when receive result.
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
708 *
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
709 * @param session
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
710 * @param username The username we're setting for ourselves. Not freed.
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
711 * @param cb Callback, called with user information when available.
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
712 * @param data An arbitray data pointer passed to the callback.
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
713 */
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
714 static void
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
715 msim_set_username(MsimSession *session, const gchar *username,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
716 MSIM_USER_LOOKUP_CB cb, gpointer data)
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
717 {
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
718 MsimMessage *body;
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
719 guint rid;
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
720
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
721 g_return_if_fail(MSIM_SESSION_VALID(session));
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
722 g_return_if_fail(username != NULL);
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
723 g_return_if_fail(cb != NULL);
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
724
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
725 purple_debug_info("msim", "msim_set_username: "
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
726 "Setting username %s\n", username);
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
727
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
728 /* Setup callback. Response will be associated with request using 'rid'. */
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
729 rid = msim_new_reply_callback(session, cb, data);
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
730
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
731 /* TODO: I dont know if the ContactType is -/ALWAYS/- 1 */
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
732
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
733 body = msim_msg_new("UserName", MSIM_TYPE_STRING, g_strdup(username),NULL);
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
734 /* \setinfo\\sesskey\469958979\info\Age=21.AvatarUrl=.BandName=.ContactType=1.DisplayName=Msim.Gender=M.ImageURL=http:/1/1x.myspace.com/1images/1no_pic.gif.LastLogin=128335268400000000.Location=US.ShowAvatar=False.SongName=.TotalFriends=1.UserName=msimprpl2\final\
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
735 */
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
736
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
737 /* Send request */
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
738 g_return_if_fail(msim_send(session,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
739 "setinfo", MSIM_TYPE_BOOLEAN, TRUE,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
740 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
741 "info", MSIM_TYPE_DICTIONARY, body,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
742 NULL));
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
743 body = msim_msg_new("UserName", MSIM_TYPE_STRING, g_strdup(username),NULL);
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
744 g_return_if_fail(msim_send(session,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
745 "persist", MSIM_TYPE_INTEGER, 1,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
746 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
22304
c3dc9e0d2c08 In msimprpl, define a new set of symbolic constants for the command to
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22303
diff changeset
747 "cmd", MSIM_TYPE_INTEGER, MSIM_CMD_GET,
c3dc9e0d2c08 In msimprpl, define a new set of symbolic constants for the command to
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22303
diff changeset
748 "dsn", MSIM_TYPE_INTEGER, MG_MYSPACE_INFO_BY_STRING_DSN,
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
749 "uid", MSIM_TYPE_INTEGER, session->userid,
22304
c3dc9e0d2c08 In msimprpl, define a new set of symbolic constants for the command to
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22303
diff changeset
750 "lid", MSIM_TYPE_INTEGER, MG_MYSPACE_INFO_BY_STRING_LID,
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
751 "rid", MSIM_TYPE_INTEGER, rid,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
752 "body", MSIM_TYPE_DICTIONARY, body,
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
753 NULL));
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
754 }
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
755
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
756 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
757 * They've confirmed that username that was available, Lets make the call to set it
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
758 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
759 static void msim_set_username_confirmed_cb(PurpleConnection *gc)
22303
1097406c8f6c In msimprpl, change to patch from Jaywalker regarding setting
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22302
diff changeset
760 {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
761 MsimMessage *user_msg;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
762 MsimSession *session;
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
763
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
764 g_return_if_fail(gc != NULL);
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
765
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
766 session = (MsimSession *)gc->proto_data;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
767
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
768 g_return_if_fail(MSIM_SESSION_VALID(session));
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
769
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
770
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
771 user_msg = msim_msg_new(
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
772 "user", MSIM_TYPE_STRING, g_strdup(msim_username_to_set),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
773 NULL);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
774
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
775 purple_debug_info("msim_set_username_confirmed_cb", "Setting username to %s\n", msim_username_to_set);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
776
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
777 /* Sets our username... keep your fingers crossed :) */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
778 msim_set_username(session, msim_username_to_set, msim_username_is_set_cb, user_msg);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
779 g_free(msim_username_to_set);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
780 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
781
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
782 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
783 * This is where we do a bit more than merely prompt the user.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
784 * Now we have some real data to tell us the state of their requested username
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
785 * \persistr\\cmd\257\dsn\5\uid\204084363\lid\7\rid\367\body\UserName=TheAlbinoRhino1\final\
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
786 */
24764
c044eb54b7ac Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24746
diff changeset
787 static void msim_username_is_available_cb(MsimSession *session, const MsimMessage *userinfo, gpointer data)
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
788 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
789 MsimMessage *msg;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
790 gchar *username;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
791 MsimMessage *body;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
792 gint userid;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
793
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
794 purple_debug_info("msim_username_is_available_cb", "Look up username callback made\n");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
795
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
796 msg = (MsimMessage *)data;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
797 g_return_if_fail(MSIM_SESSION_VALID(session));
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
798 g_return_if_fail(msg != NULL);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
799
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
800 username = msim_msg_get_string(msg, "user");
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
801 body = msim_msg_get_dictionary(userinfo, "body");
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
802
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
803 if (!body) {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
804 purple_debug_info("msim_username_is_available_cb", "No body for %s?!\n", username);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
805 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR,
27463
f541583e31bd More uniformity among disconnect error messages
Mark Doliner <mark@kingant.net>
parents: 27235
diff changeset
806 _("An error occurred while trying to set the username. "
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
807 "Please try again, or visit http://editprofile.myspace.com/index.cfm?"
27463
f541583e31bd More uniformity among disconnect error messages
Mark Doliner <mark@kingant.net>
parents: 27235
diff changeset
808 "fuseaction=profile.username to set your username."));
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
809 return;
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
810 }
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
811
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
812 userid = msim_msg_get_integer(body, "UserID");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
813
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
814 purple_debug_info("msim_username_is_available_cb", "Returned username is %s and userid is %d\n", username, userid);
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
815 msim_msg_free(body);
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
816 msim_msg_free(msg);
22304
c3dc9e0d2c08 In msimprpl, define a new set of symbolic constants for the command to
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22303
diff changeset
817
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
818 /* The response for a free username will ONLY have the UserName in it..
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
819 * thus making UserID return 0 when we msg_get_integer it */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
820 if (userid == 0) {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
821 /* This username is currently unused */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
822 purple_debug_info("msim_username_is_available_cb", "Username available. Prompting to Confirm.\n");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
823 msim_username_to_set = g_strdup(username);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
824 g_free(username);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
825 purple_request_yes_no(session->gc,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
826 _("MySpaceIM - Username Available"),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
827 _("This username is available. Would you like to set it?"),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
828 _("ONCE SET, THIS CANNOT BE CHANGED!"),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
829 0,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
830 session->account,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
831 NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
832 NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
833 session->gc,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
834 G_CALLBACK(msim_set_username_confirmed_cb),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
835 G_CALLBACK(msim_do_not_set_username_cb));
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
836 } else {
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
837 /* Looks like its in use or we have an invalid response */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
838 purple_debug_info("msim_username_is_available_cb", "Username unavaiable. Prompting for new entry.\n");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
839 purple_request_input(session->gc, _("MySpaceIM - Please Set a Username"),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
840 _("This username is unavailable."),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
841 _("Please try another username:"),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
842 "", FALSE, FALSE, NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
843 _("OK"), G_CALLBACK(msim_check_username_availability_cb),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
844 _("Cancel"), G_CALLBACK(msim_do_not_set_username_cb),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
845 session->account,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
846 NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
847 NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
848 session->gc);
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
849 }
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
850 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
851
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
852 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
853 * Once they've submitted their desired new username,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
854 * check if it is available here.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
855 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
856 static void msim_check_username_availability_cb(PurpleConnection *gc, const char *username_to_check)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
857 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
858 MsimMessage *user_msg;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
859 MsimSession *session;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
860
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
861 g_return_if_fail(gc != NULL);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
862
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
863 session = (MsimSession *)gc->proto_data;
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
864
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
865 g_return_if_fail(MSIM_SESSION_VALID(session));
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
866
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
867 purple_debug_info("msim_check_username_availability_cb", "Checking username: %s\n", username_to_check);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
868
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
869 user_msg = msim_msg_new(
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
870 "user", MSIM_TYPE_STRING, g_strdup(username_to_check),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
871 NULL);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
872
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
873 /* 25 characters: letters, numbers, underscores */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
874 /* TODO: VERIFY ABOVE */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
875
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
876 /* \persist\1\sesskey\288500516\cmd\1\dsn\5\uid\204084363\lid\7\rid\367\body\UserName=Jaywalker\final\ */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
877 /* Official client uses a standard lookup... So do we! */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
878 msim_lookup_user(session, username_to_check, msim_username_is_available_cb, user_msg);
22302
0e2207b46080 In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents: 22264
diff changeset
879 }
24731
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
880
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
881 /***
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
882 * If they hit cancel or no at any point in the Setting Username process,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
883 * we come here. Currently we're safe letting them get by without
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
884 * setting it, unless we hear otherwise. So for now give them a menu.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
885 * If this becomes an issue with the official client then boot them here.
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
886 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
887 void msim_do_not_set_username_cb(PurpleConnection *gc)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
888 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
889 purple_debug_info("msim", "Don't set username");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
890
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
891 /* Protocol won't log in now without a username set.. Disconnect */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
892 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _("No username set"));
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
893 }
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
894
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
895 /**
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
896 * They've decided to set a username! Yay!
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
897 */
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
898 void msim_set_username_cb(PurpleConnection *gc)
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
899 {
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
900 g_return_if_fail(gc != NULL);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
901 purple_debug_info("msim","Set username\n");
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
902 purple_request_input(gc, _("MySpaceIM - Please Set a Username"),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
903 _("Please enter a username to check its availability:"),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
904 NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
905 "", FALSE, FALSE, NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
906 _("OK"), G_CALLBACK(msim_check_username_availability_cb),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
907 _("Cancel"), G_CALLBACK(msim_do_not_set_username_cb),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
908 purple_connection_get_account(gc),
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
909 NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
910 NULL,
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
911 gc);
295464ae2d2a No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents: 24726
diff changeset
912 }