libpurple/protocols/yahoo/yahoo_friend.c

Sun, 05 Jul 2009 04:51:51 +0000

author
John Bailey <rekkanoryo@rekkanoryo.org>
date
Sun, 05 Jul 2009 04:51:51 +0000
branch
cpw.rekkanoryo.yahoo.separate_prpls
changeset 27555
afb7cb5c350c
parent 27389
cfeec7c4b10d
child 27791
4601e7074a83
permissions
-rw-r--r--

Update for file renames.

9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
1 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
2 * purple
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
6 * source distribution.
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
7 *
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
12 *
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
17 *
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19534
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
21 *
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
22 */
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
23
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
24 #include "internal.h"
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
25 #include "prpl.h"
9279
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
26 #include "util.h"
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
27 #include "debug.h"
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
28
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
29 #include "yahoo_friend.h"
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
30
9283
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
31 static YahooFriend *yahoo_friend_new(void)
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
32 {
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
33 YahooFriend *ret;
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
34
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
35 ret = g_new0(YahooFriend, 1);
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
36 ret->status = YAHOO_STATUS_OFFLINE;
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
37 ret->presence = YAHOO_PRESENCE_DEFAULT;
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
38
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
39 return ret;
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
40 }
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
41
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
42 YahooFriend *yahoo_friend_find(PurpleConnection *gc, const char *name)
9279
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
43 {
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
44 struct yahoo_data *yd;
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
45 const char *norm;
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
46
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
47 g_return_val_if_fail(gc != NULL, NULL);
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
48 g_return_val_if_fail(gc->proto_data != NULL, NULL);
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
49
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
50 yd = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
51 norm = purple_normalize(purple_connection_get_account(gc), name);
9279
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
52
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
53 return g_hash_table_lookup(yd->friends, norm);
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
54 }
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
55
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
56 YahooFriend *yahoo_friend_find_or_new(PurpleConnection *gc, const char *name)
9279
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
57 {
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
58 YahooFriend *f;
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
59 struct yahoo_data *yd;
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
60 const char *norm;
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
61
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
62 g_return_val_if_fail(gc != NULL, NULL);
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
63 g_return_val_if_fail(gc->proto_data != NULL, NULL);
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
64
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
65 yd = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
66 norm = purple_normalize(purple_connection_get_account(gc), name);
9279
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
67
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
68 f = g_hash_table_lookup(yd->friends, norm);
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
69 if (!f) {
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
70 f = yahoo_friend_new();
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
71 g_hash_table_insert(yd->friends, g_strdup(norm), f);
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
72 }
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
73
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
74 return f;
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
75 }
f2884065a001 [gaim-migrate @ 10082]
Tim Ringenbach <marv@pidgin.im>
parents: 9278
diff changeset
76
9281
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
77 void yahoo_friend_set_ip(YahooFriend *f, const char *ip)
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
78 {
22980
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
79 g_free(f->ip);
9281
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
80 f->ip = g_strdup(ip);
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
81 }
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
82
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
83 const char *yahoo_friend_get_ip(YahooFriend *f)
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
84 {
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
85 return f->ip;
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
86 }
f8963ac088f6 [gaim-migrate @ 10084]
Tim Ringenbach <marv@pidgin.im>
parents: 9279
diff changeset
87
9283
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
88 void yahoo_friend_set_game(YahooFriend *f, const char *game)
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
89 {
22980
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
90 g_free(f->game);
9283
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
91
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
92 if (game)
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
93 f->game = g_strdup(game);
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
94 else
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
95 f->game = NULL;
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
96 }
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
97
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
98 const char *yahoo_friend_get_game(YahooFriend *f)
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
99 {
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
100 return f->game;
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
101 }
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
102
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
103 void yahoo_friend_set_status_message(YahooFriend *f, char *msg)
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
104 {
22980
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
105 g_free(f->msg);
9283
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
106
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
107 f->msg = msg;
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
108 }
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
109
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
110 const char *yahoo_friend_get_status_message(YahooFriend *f)
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
111 {
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
112 return f->msg;
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
113 }
0d29b94a923f [gaim-migrate @ 10086]
Tim Ringenbach <marv@pidgin.im>
parents: 9282
diff changeset
114
9284
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
115 void yahoo_friend_set_buddy_icon_need_request(YahooFriend *f, gboolean needs)
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
116 {
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
117 f->bicon_sent_request = !needs;
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
118 }
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
119
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
120 gboolean yahoo_friend_get_buddy_icon_need_request(YahooFriend *f)
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
121 {
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
122 return !f->bicon_sent_request;
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
123 }
8cfc171d85bb [gaim-migrate @ 10087]
Tim Ringenbach <marv@pidgin.im>
parents: 9283
diff changeset
124
22980
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
125 void yahoo_friend_set_alias_id(YahooFriend *f, const char *alias_id)
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
126 {
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
127 g_free(f->alias_id);
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
128 f->alias_id = g_strdup(alias_id);
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
129 }
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
130
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
131 const char *yahoo_friend_get_alias_id(YahooFriend *f)
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
132 {
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
133 return f->alias_id;
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
134 }
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
135
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
136 void yahoo_friend_free(gpointer p)
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
137 {
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
138 YahooFriend *f = p;
22980
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
139 g_free(f->msg);
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
140 g_free(f->game);
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
141 g_free(f->ip);
b5c23c9bbd24 Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <datallah@pidgin.im>
parents: 19859
diff changeset
142 g_free(f->alias_id);
9278
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
143 g_free(f);
901f91712e4c [gaim-migrate @ 10081]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
144 }
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
145
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
146 void yahoo_process_presence(PurpleConnection *gc, struct yahoo_packet *pkt)
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
147 {
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
148 GSList *l = pkt->hash;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
149 YahooFriend *f;
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
150 char *temp = NULL;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
151 char *who = NULL;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
152 int value = 0;
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
153 int protocol = 0;
26372
2db123cb3f4f use "msn/" rather than "wlm/"
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26371
diff changeset
154 gboolean msn = FALSE;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
155
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
156 while (l) {
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
157 struct yahoo_pair *pair = l->data;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
158
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
159 switch (pair->key) {
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
160 case 7:
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
161 temp = pair->value;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
162 break;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
163 case 31:
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
164 value = strtol(pair->value, NULL, 10);
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
165 break;
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
166 case 241:
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
167 protocol = strtol(pair->value, NULL, 10);
26372
2db123cb3f4f use "msn/" rather than "wlm/"
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26371
diff changeset
168 msn = TRUE;
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
169 break;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
170 }
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
171
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
172 l = l->next;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
173 }
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
174
27389
cfeec7c4b10d Fix a small leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26372
diff changeset
175 if (value != 1 && value != 2) {
cfeec7c4b10d Fix a small leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26372
diff changeset
176 purple_debug_error("yahoo", "Received unknown value for presence key: %d\n", value);
cfeec7c4b10d Fix a small leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26372
diff changeset
177 return;
cfeec7c4b10d Fix a small leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26372
diff changeset
178 }
cfeec7c4b10d Fix a small leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26372
diff changeset
179
26372
2db123cb3f4f use "msn/" rather than "wlm/"
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26371
diff changeset
180 if(msn)
2db123cb3f4f use "msn/" rather than "wlm/"
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26371
diff changeset
181 who = g_strconcat("msn/", temp, NULL);
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
182 else
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
183 who = g_strdup(temp);
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
184
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
185 g_return_if_fail(who != NULL);
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
186
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
187 f = yahoo_friend_find(gc, who);
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
188 if (!f) {
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
189 g_free(who);
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
190 return;
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
191 }
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
192
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
193 if (pkt->service == YAHOO_SERVICE_PRESENCE_PERM) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
194 purple_debug_info("yahoo", "Setting permanent presence for %s to %d.\n", who, (value == 1));
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
195 /* If setting from perm offline to online when in invisible status,
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
196 * this has already been taken care of (when the temp status changed) */
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
197 if (value == 2 && f->presence == YAHOO_PRESENCE_ONLINE) {
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
198 } else {
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
199 if (value == 1) /* Setting Perm offline */
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
200 f->presence = YAHOO_PRESENCE_PERM_OFFLINE;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
201 else
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
202 f->presence = YAHOO_PRESENCE_DEFAULT;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
203 }
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
204 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
205 purple_debug_info("yahoo", "Setting session presence for %s to %d.\n", who, (value == 1));
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
206 if (value == 1)
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
207 f->presence = YAHOO_PRESENCE_ONLINE;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
208 else
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
209 f->presence = YAHOO_PRESENCE_DEFAULT;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
210 }
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
211 g_free(who);
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
212 }
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
213
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
214 void yahoo_friend_update_presence(PurpleConnection *gc, const char *name,
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
215 YahooPresenceVisibility presence)
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
216 {
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
217 struct yahoo_data *yd = gc->proto_data;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
218 struct yahoo_packet *pkt = NULL;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
219 YahooFriend *f;
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
220 const char *thirtyone, *thirteen;
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
221 int service = -1;
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
222 const char *temp = NULL;
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
223
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
224 if (!yd->logged_in)
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
225 return;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
226
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
227 f = yahoo_friend_find(gc, name);
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
228 if (!f)
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
229 return;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
230
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
231 if(f->protocol == 2)
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
232 temp = name+4;
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
233 else
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
234 temp = name;
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
235
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
236 /* No need to change the value if it is already correct */
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
237 if (f->presence == presence) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
238 purple_debug_info("yahoo", "Not setting presence because there are no changes.\n");
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
239 return;
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
240 }
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
241
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
242 if (presence == YAHOO_PRESENCE_PERM_OFFLINE) {
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
243 service = YAHOO_SERVICE_PRESENCE_PERM;
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
244 thirtyone = "1";
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
245 thirteen = "2";
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
246 } else if (presence == YAHOO_PRESENCE_DEFAULT) {
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
247 if (f->presence == YAHOO_PRESENCE_PERM_OFFLINE) {
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
248 service = YAHOO_SERVICE_PRESENCE_PERM;
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
249 thirtyone = "2";
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
250 thirteen = "2";
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
251 } else if (yd->current_status == YAHOO_STATUS_INVISIBLE) {
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
252 service = YAHOO_SERVICE_PRESENCE_SESSION;
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
253 thirtyone = "2";
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
254 thirteen = "1";
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
255 }
12010
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
256 } else if (presence == YAHOO_PRESENCE_ONLINE) {
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
257 if (f->presence == YAHOO_PRESENCE_PERM_OFFLINE) {
aa2f3b07ec09 [gaim-migrate @ 14303]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11644
diff changeset
258 pkt = yahoo_packet_new(YAHOO_SERVICE_PRESENCE_PERM,
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
259 YAHOO_STATUS_AVAILABLE, yd->session_id);
26348
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
260 if(f->protocol)
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
261 yahoo_packet_hash(pkt, "ssssssiss",
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
262 1, purple_connection_get_display_name(gc),
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
263 31, "2", 13, "2",
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
264 302, "319", 300, "319",
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
265 7, temp, 241, f->protocol,
26348
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
266 301, "319", 303, "319");
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
267 else
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
268 yahoo_packet_hash(pkt, "ssssssss",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
269 1, purple_connection_get_display_name(gc),
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
270 31, "2", 13, "2",
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
271 302, "319", 300, "319",
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
272 7, temp,
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
273 301, "319", 303, "319");
26348
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
274
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
275 yahoo_packet_send_and_free(pkt, yd);
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
276 }
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
277
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
278 service = YAHOO_SERVICE_PRESENCE_SESSION;
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
279 thirtyone = "1";
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
280 thirteen = "1";
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
281 }
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
282
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
283 if (service > 0) {
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
284 pkt = yahoo_packet_new(service,
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
285 YAHOO_STATUS_AVAILABLE, yd->session_id);
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
286
26348
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
287 if(f->protocol)
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
288 yahoo_packet_hash(pkt, "ssssssiss",
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
289 1, purple_connection_get_display_name(gc),
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
290 31, thirtyone, 13, thirteen,
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
291 302, "319", 300, "319",
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
292 7, temp, 241, f->protocol,
26348
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
293 301, "319", 303, "319");
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
294 else
3992ecfbc7e2 MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23689
diff changeset
295 yahoo_packet_hash(pkt, "ssssssss",
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
296 1, purple_connection_get_display_name(gc),
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
297 31, thirtyone, 13, thirteen,
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
298 302, "319", 300, "319",
26371
edb4870ff737 msn interoperability : presence settings
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26348
diff changeset
299 7, temp,
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
300 301, "319", 303, "319");
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
301
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
302 yahoo_packet_send_and_free(pkt, yd);
19534
ac814f829edf Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <datallah@pidgin.im>
parents: 15884
diff changeset
303 }
10989
ea41b63cfea5 [gaim-migrate @ 12827]
Daniel Atallah <datallah@pidgin.im>
parents: 9284
diff changeset
304 }
23681
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
305
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
306 void yahoo_friend_set_p2p_status(YahooFriend *f, YahooP2PStatus p2p_status)
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
307 {
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
308 f->p2p_status = p2p_status;
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
309 }
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
310
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
311 YahooP2PStatus yahoo_friend_get_p2p_status(YahooFriend *f)
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
312 {
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
313 return f->p2p_status;
f8841c9d3e39 Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22980
diff changeset
314 }

mercurial