Mercurial > pidgin.yaz
annotate libpurple/protocols/yahoo/yahoo.c @ 26224:3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
author | Sulabh Mahajan <sulabh@soc.pidgin.im> |
---|---|
date | Wed, 20 Aug 2008 21:11:56 +0000 |
parents | 0e1fba363b01 |
children | 8f28023d3d6d |
rev | line source |
---|---|
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1 /* |
15823 | 2 * purple |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3 * |
15823 | 4 * Purple is the legal property of its developers, whose names are too numerous |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5 * to list here. Please refer to the COPYRIGHT file distributed with this |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6 * source distribution. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
11 * (at your option) any later version. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
12 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
16 * GNU General Public License for more details. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
17 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
19 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19672
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
21 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
22 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
23 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
24 #include "internal.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
25 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
26 #include "account.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
27 #include "accountopt.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
28 #include "blist.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
29 #include "cipher.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
30 #include "cmds.h" |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
31 #include "core.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
32 #include "debug.h" |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
33 #include "network.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
34 #include "notify.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
35 #include "privacy.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
36 #include "prpl.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
37 #include "proxy.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
38 #include "request.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
39 #include "server.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
40 #include "util.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
41 #include "version.h" |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
42 #include "xmlnode.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
43 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
44 #include "yahoo.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
45 #include "yahoochat.h" |
18763
08a6a01b7ebe
Yahoo server-side aliases patch from John Moody. Fixes #1653 Thanks!
Sean Egan <seanegan@gmail.com>
parents:
18758
diff
changeset
|
46 #include "yahoo_aliases.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
47 #include "yahoo_auth.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
48 #include "yahoo_crypt.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
49 #include "yahoo_doodle.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
50 #include "yahoo_filexfer.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
51 #include "yahoo_friend.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
52 #include "yahoo_packet.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
53 #include "yahoo_picture.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
54 #include "ycht.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
55 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
56 /* #define YAHOO_DEBUG */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
57 |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
58 /* #define TRY_WEBMESSENGER_LOGIN 0 */ |
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
59 |
15823 | 60 static void yahoo_add_buddy(PurpleConnection *gc, PurpleBuddy *, PurpleGroup *); |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
61 #ifdef TRY_WEBMESSENGER_LOGIN |
15823 | 62 static void yahoo_login_page_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, size_t len, const gchar *error_message); |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
63 #endif |
15823 | 64 static void yahoo_set_status(PurpleAccount *account, PurpleStatus *status); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
65 |
15823 | 66 static void yahoo_update_status(PurpleConnection *gc, const char *name, YahooFriend *f) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
67 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
68 char *status = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
69 |
15823 | 70 if (!gc || !name || !f || !purple_find_buddy(purple_connection_get_account(gc), name)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
71 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
72 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
73 if (f->status == YAHOO_STATUS_OFFLINE) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
74 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
75 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
76 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
77 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
78 switch (f->status) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
79 case YAHOO_STATUS_AVAILABLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
80 status = YAHOO_STATUS_TYPE_AVAILABLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
81 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
82 case YAHOO_STATUS_BRB: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
83 status = YAHOO_STATUS_TYPE_BRB; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
84 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 case YAHOO_STATUS_BUSY: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 status = YAHOO_STATUS_TYPE_BUSY; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
87 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
88 case YAHOO_STATUS_NOTATHOME: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
89 status = YAHOO_STATUS_TYPE_NOTATHOME; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
90 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
91 case YAHOO_STATUS_NOTATDESK: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 status = YAHOO_STATUS_TYPE_NOTATDESK; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
93 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
94 case YAHOO_STATUS_NOTINOFFICE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
95 status = YAHOO_STATUS_TYPE_NOTINOFFICE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
96 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
97 case YAHOO_STATUS_ONPHONE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
98 status = YAHOO_STATUS_TYPE_ONPHONE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
99 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
100 case YAHOO_STATUS_ONVACATION: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
101 status = YAHOO_STATUS_TYPE_ONVACATION; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
102 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
103 case YAHOO_STATUS_OUTTOLUNCH: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
104 status = YAHOO_STATUS_TYPE_OUTTOLUNCH; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
105 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
106 case YAHOO_STATUS_STEPPEDOUT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
107 status = YAHOO_STATUS_TYPE_STEPPEDOUT; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
108 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
109 case YAHOO_STATUS_INVISIBLE: /* this should never happen? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
110 status = YAHOO_STATUS_TYPE_INVISIBLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
111 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
112 case YAHOO_STATUS_CUSTOM: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
113 case YAHOO_STATUS_IDLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
114 if (!f->away) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
115 status = YAHOO_STATUS_TYPE_AVAILABLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
116 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
117 status = YAHOO_STATUS_TYPE_AWAY; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
118 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
119 default: |
15823 | 120 purple_debug_warning("yahoo", "Warning, unknown status %d\n", f->status); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
121 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
122 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
123 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
124 if (status) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
125 if (f->status == YAHOO_STATUS_CUSTOM) |
15823 | 126 purple_prpl_got_user_status(purple_connection_get_account(gc), name, status, "message", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
127 yahoo_friend_get_status_message(f), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
128 else |
15823 | 129 purple_prpl_got_user_status(purple_connection_get_account(gc), name, status, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
130 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
131 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
132 if (f->idle != 0) |
15823 | 133 purple_prpl_got_user_idle(purple_connection_get_account(gc), name, TRUE, f->idle); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
134 else |
15823 | 135 purple_prpl_got_user_idle(purple_connection_get_account(gc), name, FALSE, 0); |
15525 | 136 |
137 if (f->sms) | |
15823 | 138 purple_prpl_got_user_status(purple_connection_get_account(gc), name, YAHOO_STATUS_TYPE_MOBILE, NULL); |
15525 | 139 else |
15823 | 140 purple_prpl_got_user_status_deactive(purple_connection_get_account(gc), name, YAHOO_STATUS_TYPE_MOBILE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
141 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
142 |
15823 | 143 static void yahoo_process_status(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
144 { |
15823 | 145 PurpleAccount *account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
146 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
147 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
148 YahooFriend *f = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
149 char *name = NULL; |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
150 gboolean unicode = FALSE; |
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
151 char *message = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
152 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
153 if (pkt->service == YAHOO_SERVICE_LOGOFF && pkt->status == -1) { |
20589
5723dbc6212d
Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19718
diff
changeset
|
154 if (!purple_account_get_remember_password(account)) |
5723dbc6212d
Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19718
diff
changeset
|
155 purple_account_set_password(account, NULL); |
21358 | 156 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NAME_IN_USE, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
157 _("You have signed on from another location.")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
159 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
160 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
161 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
162 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
163 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
164 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 case 0: /* we won't actually do anything with this */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
166 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
167 case 1: /* we don't get the full buddy list here. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
168 if (!yd->logged_in) { |
15823 | 169 purple_connection_set_display_name(gc, pair->value); |
170 purple_connection_set_state(gc, PURPLE_CONNECTED); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
171 yd->logged_in = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
172 if (yd->picture_upload_todo) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
173 yahoo_buddy_icon_upload(gc, yd->picture_upload_todo); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
174 yd->picture_upload_todo = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
175 } |
15823 | 176 yahoo_set_status(account, purple_account_get_active_status(account)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
177 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
178 /* this requests the list. i have a feeling that this is very evil |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
179 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
180 * scs.yahoo.com sends you the list before this packet without it being |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
181 * requested |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
182 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
183 * do_import(gc, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
184 * newpkt = yahoo_packet_new(YAHOO_SERVICE_LIST, YAHOO_STATUS_OFFLINE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
185 * yahoo_packet_send_and_free(newpkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
186 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
187 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
188 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
189 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
190 case 8: /* how many online buddies we have */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
191 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
192 case 7: /* the current buddy */ |
19444
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
193 /* update the previous buddy before changing the variables */ |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
194 if (f) { |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
195 if (message) |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
196 yahoo_friend_set_status_message(f, yahoo_string_decode(gc, message, unicode)); |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
197 if (name) |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
198 yahoo_update_status(gc, name, f); |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
199 } |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
200 name = message = NULL; |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
201 f = NULL; |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
202 if (pair->value && g_utf8_validate(pair->value, -1, NULL)) { |
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
203 name = pair->value; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
204 f = yahoo_friend_find_or_new(gc, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
205 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
206 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
207 case 10: /* state */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
208 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
209 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
210 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
211 f->status = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
212 if ((f->status >= YAHOO_STATUS_BRB) && (f->status <= YAHOO_STATUS_STEPPEDOUT)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
213 f->away = 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
214 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
215 f->away = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
216 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
217 if (f->status == YAHOO_STATUS_IDLE) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
218 /* Idle may have already been set in a more precise way in case 137 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
219 if (f->idle == 0) |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
220 f->idle = time(NULL) - 60; /* Start idle at 1 min */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
221 } else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
222 f->idle = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
223 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
224 if (f->status != YAHOO_STATUS_CUSTOM) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
225 yahoo_friend_set_status_message(f, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
226 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
227 f->sms = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
228 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
229 case 19: /* custom message */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
230 if (f) |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
231 message = pair->value; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
232 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
233 case 11: /* this is the buddy's session id */ |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
234 if (f) |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
235 f->session_id = strtol(pair->value, NULL, 10); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
236 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
237 case 17: /* in chat? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
238 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
239 case 47: /* is custom status away or not? 2=idle*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
240 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
241 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
242 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
243 /* I have no idea what it means when this is |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
244 * set when someone's available, but it doesn't |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
245 * mean idle. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
246 if (f->status == YAHOO_STATUS_AVAILABLE) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
247 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
248 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
249 f->away = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
250 if (f->away == 2) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
251 /* Idle may have already been set in a more precise way in case 137 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
252 if (f->idle == 0) |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
253 f->idle = time(NULL) - 60; /* start idle at 1 min */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
254 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
255 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
256 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
257 case 138: /* either we're not idle, or we are but won't say how long */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
258 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
259 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
260 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
261 if (f->idle) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
262 f->idle = -1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
263 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
264 case 137: /* usually idle time in seconds, sometimes login time */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
265 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
266 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
267 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
268 if (f->status != YAHOO_STATUS_AVAILABLE) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
269 f->idle = time(NULL) - strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
270 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
271 case 13: /* bitmask, bit 0 = pager, bit 1 = chat, bit 2 = game */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
272 if (strtol(pair->value, NULL, 10) == 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
273 if (f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
274 f->status = YAHOO_STATUS_OFFLINE; |
15525 | 275 if (name) { |
15823 | 276 purple_prpl_got_user_status(account, name, "offline", NULL); |
277 purple_prpl_got_user_status_deactive(account, name, YAHOO_STATUS_TYPE_MOBILE); | |
15525 | 278 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
279 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
280 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
281 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
282 case 60: /* SMS */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
283 if (f) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
284 f->sms = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
285 yahoo_update_status(gc, name, f); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
286 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
287 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
288 case 197: /* Avatars */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
289 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
290 guchar *decoded; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
291 char *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
292 gsize len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
293 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
294 if (pair->value) { |
15823 | 295 decoded = purple_base64_decode(pair->value, &len); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
296 if (len) { |
15823 | 297 tmp = purple_str_binary_to_ascii(decoded, len); |
298 purple_debug_info("yahoo", "Got key 197, value = %s\n", tmp); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
299 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
300 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
301 g_free(decoded); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
302 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
303 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
304 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
305 case 192: /* Pictures, aka Buddy Icons, checksum */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
306 { |
16386
e0c9a46b459f
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@wiktel.com>
parents:
15946
diff
changeset
|
307 /* FIXME: Please, if you know this protocol, |
e0c9a46b459f
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@wiktel.com>
parents:
15946
diff
changeset
|
308 * FIXME: fix up the strtol() stuff if possible. */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
309 int cksum = strtol(pair->value, NULL, 10); |
16530
0b49b01e9482
Thanks to Bleeter, yahoo will not crash for non-existent buddyicons anymore.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16483
diff
changeset
|
310 const char *locksum = NULL; |
15823 | 311 PurpleBuddy *b; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
312 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
313 if (!name) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
314 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
315 |
15823 | 316 b = purple_find_buddy(gc->account, name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
317 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
318 if (!cksum || (cksum == -1)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
319 if (f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
320 yahoo_friend_set_buddy_icon_need_request(f, TRUE); |
16386
e0c9a46b459f
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@wiktel.com>
parents:
15946
diff
changeset
|
321 purple_buddy_icons_set_for_user(gc->account, name, NULL, 0, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
322 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
323 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
324 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
325 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
326 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
327 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
328 yahoo_friend_set_buddy_icon_need_request(f, FALSE); |
17054
6ec8bae7d98a
Patch #1038. Fix receiving of Yahoo buddy icons. Thanks, vampire!
Sean Egan <seanegan@gmail.com>
parents:
16998
diff
changeset
|
329 if (b) { |
6ec8bae7d98a
Patch #1038. Fix receiving of Yahoo buddy icons. Thanks, vampire!
Sean Egan <seanegan@gmail.com>
parents:
16998
diff
changeset
|
330 locksum = purple_buddy_icons_get_checksum_for_user(b); |
6ec8bae7d98a
Patch #1038. Fix receiving of Yahoo buddy icons. Thanks, vampire!
Sean Egan <seanegan@gmail.com>
parents:
16998
diff
changeset
|
331 if (!locksum || (cksum != strtol(locksum, NULL, 10))) |
6ec8bae7d98a
Patch #1038. Fix receiving of Yahoo buddy icons. Thanks, vampire!
Sean Egan <seanegan@gmail.com>
parents:
16998
diff
changeset
|
332 yahoo_send_picture_request(gc, name); |
6ec8bae7d98a
Patch #1038. Fix receiving of Yahoo buddy icons. Thanks, vampire!
Sean Egan <seanegan@gmail.com>
parents:
16998
diff
changeset
|
333 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
334 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
335 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
336 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
337 case 16: /* Custom error message */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
338 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
339 char *tmp = yahoo_string_decode(gc, pair->value, TRUE); |
15823 | 340 purple_notify_error(gc, NULL, tmp, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
341 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
342 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
343 break; |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
344 case 97: /* Unicode status message */ |
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
345 unicode = !strcmp(pair->value, "1"); |
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
346 break; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
347 case 244: /* client version number. Yahoo Client Detection */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
348 if(f && strtol(pair->value, NULL, 10)) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
349 f->version_id = strtol(pair->value, NULL, 10); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
350 break; |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
351 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
352 default: |
22651
3378d2701c2b
I don't consider this an error.
Mark Doliner <mark@kingant.net>
parents:
22414
diff
changeset
|
353 purple_debug_warning("yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
354 "Unknown status key %d\n", pair->key); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
355 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
356 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
357 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
358 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
359 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
360 |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
361 if (message && f) |
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
362 yahoo_friend_set_status_message(f, yahoo_string_decode(gc, message, unicode)); |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
363 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
364 if (name && f) /* update the last buddy */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
365 yahoo_update_status(gc, name, f); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
366 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
367 |
15823 | 368 static void yahoo_do_group_check(PurpleAccount *account, GHashTable *ht, const char *name, const char *group) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
369 { |
15823 | 370 PurpleBuddy *b; |
371 PurpleGroup *g; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
372 GSList *list, *i; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
373 gboolean onlist = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
374 char *oname = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
375 char **oname_p = &oname; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
376 GSList **list_p = &list; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
377 |
15823 | 378 if (!g_hash_table_lookup_extended(ht, purple_normalize(account, name), (gpointer *) oname_p, (gpointer *) list_p)) |
379 list = purple_find_buddies(account, name); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
380 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
381 g_hash_table_steal(ht, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
382 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
383 for (i = list; i; i = i->next) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
384 b = i->data; |
15823 | 385 g = purple_buddy_get_group(b); |
386 if (!purple_utf8_strcasecmp(group, g->name)) { | |
387 purple_debug(PURPLE_DEBUG_MISC, "yahoo", | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
388 "Oh good, %s is in the right group (%s).\n", name, group); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
389 list = g_slist_delete_link(list, i); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
390 onlist = 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
391 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
392 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
393 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
394 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
395 if (!onlist) { |
15823 | 396 purple_debug(PURPLE_DEBUG_MISC, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
397 "Uhoh, %s isn't on the list (or not in this group), adding him to group %s.\n", name, group); |
15823 | 398 if (!(g = purple_find_group(group))) { |
399 g = purple_group_new(group); | |
400 purple_blist_add_group(g, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
401 } |
15823 | 402 b = purple_buddy_new(account, name, NULL); |
403 purple_blist_add_buddy(b, NULL, g, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
404 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
405 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
406 if (list) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
407 if (!oname) |
15823 | 408 oname = g_strdup(purple_normalize(account, name)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
409 g_hash_table_insert(ht, oname, list); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
410 } else if (oname) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
411 g_free(oname); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
412 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
413 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
414 static void yahoo_do_group_cleanup(gpointer key, gpointer value, gpointer user_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
415 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
416 char *name = key; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
417 GSList *list = value, *i; |
15823 | 418 PurpleBuddy *b; |
419 PurpleGroup *g; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
420 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
421 for (i = list; i; i = i->next) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
422 b = i->data; |
15823 | 423 g = purple_buddy_get_group(b); |
424 purple_debug(PURPLE_DEBUG_MISC, "yahoo", "Deleting Buddy %s from group %s.\n", name, g->name); | |
425 purple_blist_remove_buddy(b); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
426 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
427 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
428 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
429 static char *_getcookie(char *rawcookie) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
430 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
431 char *cookie = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
432 char *tmpcookie; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
433 char *cookieend; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
434 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
435 if (strlen(rawcookie) < 2) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
436 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
437 tmpcookie = g_strdup(rawcookie+2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
438 cookieend = strchr(tmpcookie, ';'); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
439 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
440 if (cookieend) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
441 *cookieend = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
442 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
443 cookie = g_strdup(tmpcookie); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
444 g_free(tmpcookie); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
445 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
446 return cookie; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
447 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
448 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
449 static void yahoo_process_cookie(struct yahoo_data *yd, char *c) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
450 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
451 if (c[0] == 'Y') { |
22017
97d530d11cc0
Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
452 if (yd->cookie_y) |
97d530d11cc0
Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
453 g_free(yd->cookie_y); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
454 yd->cookie_y = _getcookie(c); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
455 } else if (c[0] == 'T') { |
22017
97d530d11cc0
Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
456 if (yd->cookie_t) |
97d530d11cc0
Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
457 g_free(yd->cookie_t); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
458 yd->cookie_t = _getcookie(c); |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
459 } else |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
460 purple_debug_info("yahoo", "Unrecognized cookie '%c'\n", c[0]); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
461 yd->cookies = g_slist_prepend(yd->cookies, g_strdup(c)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
462 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
463 |
15823 | 464 static void yahoo_process_list_15(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
465 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
466 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
467 |
15823 | 468 PurpleAccount *account = purple_connection_get_account(gc); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
469 struct yahoo_data *yd = gc->proto_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
470 GHashTable *ht; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
471 char *norm_bud = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
472 YahooFriend *f = NULL; /* It's your friends. They're going to want you to share your StarBursts. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
473 /* But what if you had no friends? */ |
15823 | 474 PurpleBuddy *b; |
475 PurpleGroup *g; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
476 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
477 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
478 ht = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_slist_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
479 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
480 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
481 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
482 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
483 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
484 switch (pair->key) { |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
485 case 302: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
486 /* This is always 318 before a group, 319 before the first s/n in a group, 320 before any ignored s/n. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
487 * It is not sent for s/n's in a group after the first. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
488 * All ignored s/n's are listed last, so when we see a 320 we clear the group and begin marking the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
489 * s/n's as ignored. It is always followed by an identical 300 key. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
490 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
491 if (pair->value && !strcmp(pair->value, "320")) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
492 /* No longer in any group; this indicates the start of the ignore list. */ |
22406
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
493 g_free(yd->current_list15_grp); |
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
494 yd->current_list15_grp = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
495 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
496 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
497 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
498 case 301: /* This is 319 before all s/n's in a group after the first. It is followed by an identical 300. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
499 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
500 case 300: /* This is 318 before a group, 319 before any s/n in a group, and 320 before any ignored s/n. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
501 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
502 case 65: /* This is the group */ |
22406
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
503 g_free(yd->current_list15_grp); |
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
504 yd->current_list15_grp = yahoo_string_decode(gc, pair->value, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
505 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
506 case 7: /* buddy's s/n */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
507 g_free(norm_bud); |
15823 | 508 norm_bud = g_strdup(purple_normalize(account, pair->value)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
509 |
22406
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
510 if (yd->current_list15_grp) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
511 /* This buddy is in a group */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
512 f = yahoo_friend_find_or_new(gc, norm_bud); |
15823 | 513 if (!(b = purple_find_buddy(account, norm_bud))) { |
22406
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
514 if (!(g = purple_find_group(yd->current_list15_grp))) { |
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
515 g = purple_group_new(yd->current_list15_grp); |
15823 | 516 purple_blist_add_group(g, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
517 } |
15823 | 518 b = purple_buddy_new(account, norm_bud, NULL); |
519 purple_blist_add_buddy(b, NULL, g, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
520 } |
22406
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
521 yahoo_do_group_check(account, ht, norm_bud, yd->current_list15_grp); |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
522 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
523 /* set p2p status not connected and no p2p packet sent */ |
25627
262ae5f56a9a
Better naming convention, prefix YAHOO_P2PSTATUS_ to values in the enum YahooP2PStatus
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25626
diff
changeset
|
524 yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED); |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
525 f->p2p_packet_sent = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
526 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
527 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
528 /* This buddy is on the ignore list (and therefore in no group) */ |
22666
0723826f9229
Add missing newline to debug message. Fixes #5546.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22651
diff
changeset
|
529 purple_debug_info("yahoo", "%s adding %s to the deny list because of the ignore list / no group was found\n", |
22406
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
530 account->username, norm_bud); |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
531 purple_privacy_deny_add(account, norm_bud, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
532 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
533 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
534 case 241: /* another protocol user */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
535 if (f) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
536 f->protocol = strtol(pair->value, NULL, 10); |
15823 | 537 purple_debug_info("yahoo", "Setting protocol to %d\n", f->protocol); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
538 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
539 break; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
540 case 59: /* somebody told cookies come here too, but im not sure */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
541 yahoo_process_cookie(yd, pair->value); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
542 break; |
19358
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
543 case 317: /* Stealth Setting */ |
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
544 if (f && (strtol(pair->value, NULL, 10) == 2)) { |
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
545 f->presence = YAHOO_PRESENCE_PERM_OFFLINE; |
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
546 } |
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
547 break; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
548 /* case 242: */ /* this seems related to 241 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
549 /* break; */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
550 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
551 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
552 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
553 g_hash_table_foreach(ht, yahoo_do_group_cleanup, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
554 g_hash_table_destroy(ht); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
555 g_free(norm_bud); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
556 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
557 |
15823 | 558 static void yahoo_process_list(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
559 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
560 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
561 gboolean export = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
562 gboolean got_serv_list = FALSE; |
15823 | 563 PurpleBuddy *b; |
564 PurpleGroup *g; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
565 YahooFriend *f = NULL; |
15823 | 566 PurpleAccount *account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
567 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
568 GHashTable *ht; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
569 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
570 char **lines; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
571 char **split; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
572 char **buddies; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
573 char **tmp, **bud, *norm_bud; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
574 char *grp = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
575 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
576 if (pkt->id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
577 yd->session_id = pkt->id; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
578 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
579 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
580 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
581 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
582 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
583 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
584 case 87: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
585 if (!yd->tmp_serv_blist) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
586 yd->tmp_serv_blist = g_string_new(pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
587 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
588 g_string_append(yd->tmp_serv_blist, pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
589 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
590 case 88: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
591 if (!yd->tmp_serv_ilist) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
592 yd->tmp_serv_ilist = g_string_new(pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
593 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
594 g_string_append(yd->tmp_serv_ilist, pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
595 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
596 case 59: /* cookies, yum */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
597 yahoo_process_cookie(yd, pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
598 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
599 case YAHOO_SERVICE_PRESENCE_PERM: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
600 if (!yd->tmp_serv_plist) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
601 yd->tmp_serv_plist = g_string_new(pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
602 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
603 g_string_append(yd->tmp_serv_plist, pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
604 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
605 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
606 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
607 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
608 if (pkt->status != 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
609 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
610 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
611 if (yd->tmp_serv_blist) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
612 ht = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_slist_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
613 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
614 lines = g_strsplit(yd->tmp_serv_blist->str, "\n", -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
615 for (tmp = lines; *tmp; tmp++) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
616 split = g_strsplit(*tmp, ":", 2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
617 if (!split) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
618 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
619 if (!split[0] || !split[1]) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
620 g_strfreev(split); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
621 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
622 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
623 grp = yahoo_string_decode(gc, split[0], FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
624 buddies = g_strsplit(split[1], ",", -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
625 for (bud = buddies; bud && *bud; bud++) { |
15823 | 626 norm_bud = g_strdup(purple_normalize(account, *bud)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
627 f = yahoo_friend_find_or_new(gc, norm_bud); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
628 |
15823 | 629 if (!(b = purple_find_buddy(account, norm_bud))) { |
630 if (!(g = purple_find_group(grp))) { | |
631 g = purple_group_new(grp); | |
632 purple_blist_add_group(g, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
633 } |
15823 | 634 b = purple_buddy_new(account, norm_bud, NULL); |
635 purple_blist_add_buddy(b, NULL, g, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
636 export = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
637 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
638 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
639 yahoo_do_group_check(account, ht, norm_bud, grp); |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
640 /* set p2p status not connected and no p2p packet sent */ |
25627
262ae5f56a9a
Better naming convention, prefix YAHOO_P2PSTATUS_ to values in the enum YahooP2PStatus
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25626
diff
changeset
|
641 yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED); |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
642 f->p2p_packet_sent = 0; |
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
643 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
644 g_free(norm_bud); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
645 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
646 g_strfreev(buddies); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
647 g_strfreev(split); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
648 g_free(grp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
649 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
650 g_strfreev(lines); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
651 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
652 g_string_free(yd->tmp_serv_blist, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
653 yd->tmp_serv_blist = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
654 g_hash_table_foreach(ht, yahoo_do_group_cleanup, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
655 g_hash_table_destroy(ht); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
656 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
657 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
658 if (yd->tmp_serv_ilist) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
659 buddies = g_strsplit(yd->tmp_serv_ilist->str, ",", -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
660 for (bud = buddies; bud && *bud; bud++) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
661 /* The server is already ignoring the user */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
662 got_serv_list = TRUE; |
22236 | 663 purple_privacy_deny_add(account, *bud, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
664 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
665 g_strfreev(buddies); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
666 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
667 g_string_free(yd->tmp_serv_ilist, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
668 yd->tmp_serv_ilist = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
669 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
670 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
671 if (got_serv_list && |
22236 | 672 ((account->perm_deny != PURPLE_PRIVACY_ALLOW_BUDDYLIST) && |
673 (account->perm_deny != PURPLE_PRIVACY_DENY_ALL) && | |
674 (account->perm_deny != PURPLE_PRIVACY_ALLOW_USERS))) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
675 { |
22236 | 676 account->perm_deny = PURPLE_PRIVACY_DENY_USERS; |
15823 | 677 purple_debug_info("yahoo", "%s privacy defaulting to PURPLE_PRIVACY_DENY_USERS.\n", |
22236 | 678 account->username); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
679 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
680 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
681 if (yd->tmp_serv_plist) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
682 buddies = g_strsplit(yd->tmp_serv_plist->str, ",", -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
683 for (bud = buddies; bud && *bud; bud++) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
684 f = yahoo_friend_find(gc, *bud); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
685 if (f) { |
15823 | 686 purple_debug_info("yahoo", "%s setting presence for %s to PERM_OFFLINE\n", |
22236 | 687 account->username, *bud); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
688 f->presence = YAHOO_PRESENCE_PERM_OFFLINE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
689 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
690 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
691 g_strfreev(buddies); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
692 g_string_free(yd->tmp_serv_plist, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
693 yd->tmp_serv_plist = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
694 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
695 } |
18763
08a6a01b7ebe
Yahoo server-side aliases patch from John Moody. Fixes #1653 Thanks!
Sean Egan <seanegan@gmail.com>
parents:
18758
diff
changeset
|
696 /* Now that we've got the list, request aliases */ |
08a6a01b7ebe
Yahoo server-side aliases patch from John Moody. Fixes #1653 Thanks!
Sean Egan <seanegan@gmail.com>
parents:
18758
diff
changeset
|
697 yahoo_fetch_aliases(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
698 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
699 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
700 /* pkt_type is YAHOO_PKT_TYPE_SERVER if pkt arrives from yahoo server, YAHOO_PKT_TYPE_P2P if pkt arrives through p2p */ |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
701 static void yahoo_process_notify(PurpleConnection *gc, struct yahoo_packet *pkt, yahoo_pkt_type pkt_type) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
702 { |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
703 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
704 char *msg = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
705 char *from = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
706 char *stat = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
707 char *game = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
708 YahooFriend *f = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
709 GSList *l = pkt->hash; |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
710 gint val_11 = 0; |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
711 struct yahoo_data *yd = gc->proto_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
712 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
713 account = purple_connection_get_account(gc); |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
714 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
715 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
716 struct yahoo_pair *pair = l->data; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
717 if (pair->key == 4 || pair->key == 1) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
718 from = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
719 if (pair->key == 49) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
720 msg = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
721 if (pair->key == 13) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
722 stat = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
723 if (pair->key == 14) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
724 game = pair->value; |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
725 if (pair->key == 11) |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
726 val_11 = strtol(pair->value, NULL, 10); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
727 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
728 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
729 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
730 if (!from || !msg) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
731 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
732 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
733 /* disconnect the peer if connected through p2p and sends wrong value for session id */ |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
734 if( (pkt_type == YAHOO_PKT_TYPE_P2P) && (val_11 != yd->session_id) ) { |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
735 purple_debug_warning("yahoo","p2p: %s sent us notify with wrong session id. Disconnecting p2p connection to peer\n", from); |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
736 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
737 g_hash_table_remove(yd->peers, from); |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
738 return; |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
739 } |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
740 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
741 if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING")) |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
742 && (purple_privacy_check(account, from))) |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
743 { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
744 if (*stat == '1') |
15823 | 745 serv_got_typing(gc, from, 0, PURPLE_TYPING); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
746 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
747 serv_got_typing_stopped(gc, from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
748 } else if (!g_ascii_strncasecmp(msg, "GAME", strlen("GAME"))) { |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
749 PurpleBuddy *bud = purple_find_buddy(account, from); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
750 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
751 if (!bud) { |
15823 | 752 purple_debug(PURPLE_DEBUG_WARNING, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
753 "%s is playing a game, and doesn't want " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
754 "you to know.\n", from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
755 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
756 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
757 f = yahoo_friend_find(gc, from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
758 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
759 return; /* if they're not on the list, don't bother */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
760 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
761 yahoo_friend_set_game(f, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
762 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
763 if (*stat == '1') { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
764 yahoo_friend_set_game(f, game); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
765 if (bud) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
766 yahoo_update_status(gc, from, f); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
767 } |
19365
756dad225d90
Show a system notification in the conv window when receiving Yahoo webcam invites. Fixes #1298
Sean Egan <seanegan@gmail.com>
parents:
19360
diff
changeset
|
768 } else if (!g_ascii_strncasecmp(msg, "WEBCAMINVITE", strlen("WEBCAMINVITE"))) { |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
769 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, from, account); |
19365
756dad225d90
Show a system notification in the conv window when receiving Yahoo webcam invites. Fixes #1298
Sean Egan <seanegan@gmail.com>
parents:
19360
diff
changeset
|
770 char *buf = g_strdup_printf(_("%s has sent you a webcam invite, which is not yet supported."), from); |
756dad225d90
Show a system notification in the conv window when receiving Yahoo webcam invites. Fixes #1298
Sean Egan <seanegan@gmail.com>
parents:
19360
diff
changeset
|
771 purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM|PURPLE_MESSAGE_NOTIFY, time(NULL)); |
756dad225d90
Show a system notification in the conv window when receiving Yahoo webcam invites. Fixes #1298
Sean Egan <seanegan@gmail.com>
parents:
19360
diff
changeset
|
772 g_free(buf); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
773 } |
19444
a1cf5440d945
Set the custom status message for yahoo buddies correctly at login time. Fixes #2754.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19393
diff
changeset
|
774 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
775 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
776 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
777 struct _yahoo_im { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
778 char *from; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
779 int time; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
780 int utf8; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
781 int buddy_icon; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
782 char *msg; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
783 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
784 |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
785 static void yahoo_process_sms_message(PurpleConnection *gc, struct yahoo_packet *pkt) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
786 { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
787 PurpleAccount *account; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
788 GSList *l = pkt->hash; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
789 struct _yahoo_im *sms = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
790 struct yahoo_data *yd; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
791 char *server_msg = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
792 char *m; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
793 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
794 yd = gc->proto_data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
795 account = purple_connection_get_account(gc); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
796 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
797 while (l != NULL) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
798 struct yahoo_pair *pair = l->data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
799 if (pair->key == 4) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
800 sms = g_new0(struct _yahoo_im, 1); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
801 sms->from = g_strdup_printf("+%s", pair->value); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
802 sms->time = time(NULL); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
803 sms->utf8 = TRUE; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
804 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
805 if (pair->key == 14) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
806 if (sms) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
807 sms->msg = pair->value; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
808 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
809 if (pair->key == 68) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
810 if(sms) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
811 g_hash_table_insert(yd->sms_carrier, g_strdup(sms->from), g_strdup(pair->value)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
812 if (pair->key == 16) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
813 server_msg = pair->value; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
814 l = l->next; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
815 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
816 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
817 if( (pkt->status == -1) || (pkt->status == YAHOO_STATUS_DISCONNECTED) ) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
818 if (server_msg) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
819 PurpleConversation *c; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
820 c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, sms->from, account); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
821 if (c == NULL) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
822 c = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, sms->from); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
823 purple_conversation_write(c, NULL, server_msg, PURPLE_MESSAGE_SYSTEM, time(NULL)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
824 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
825 else |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
826 purple_notify_error(gc, NULL, _("Your SMS was not delivered"), NULL); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
827 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
828 g_free(sms->from); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
829 g_free(sms); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
830 return ; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
831 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
832 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
833 if (!sms->from || !sms->msg) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
834 g_free(sms); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
835 return; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
836 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
837 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
838 m = yahoo_string_decode(gc, sms->msg, sms->utf8); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
839 serv_got_im(gc, sms->from, m, 0, sms->time); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
840 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
841 g_free(m); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
842 g_free(sms->from); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
843 g_free(sms); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
844 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
845 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
846 /* pkt_type is YAHOO_PKT_TYPE_SERVER if pkt arrives from yahoo server, YAHOO_PKT_TYPE_P2P if pkt arrives through p2p */ |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
847 static void yahoo_process_message(PurpleConnection *gc, struct yahoo_packet *pkt, yahoo_pkt_type pkt_type) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
848 { |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
849 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
850 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
851 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
852 GSList *list = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
853 struct _yahoo_im *im = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
854 const char *imv = NULL; |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
855 gint val_11 = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
856 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
857 account = purple_connection_get_account(gc); |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
858 |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
859 if (pkt->status <= 1 || pkt->status == 5 || pkt->status == YAHOO_STATUS_OFFLINE) { |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
860 /* messages are reveived with status YAHOO_STATUS_OFFLINE in case of p2p */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
861 while (l != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
862 struct yahoo_pair *pair = l->data; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
863 if (pair->key == 4 || pair->key == 1) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
864 im = g_new0(struct _yahoo_im, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
865 list = g_slist_append(list, im); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
866 im->from = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
867 im->time = time(NULL); |
23285
ea998456c3bd
Yahoo seems to always send messages encoded in utf-8 now. Hopefully this
Daniel Atallah <daniel.atallah@gmail.com>
parents:
23113
diff
changeset
|
868 im->utf8 = TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
869 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
870 if (pair->key == 97) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
871 if (im) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
872 im->utf8 = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
873 if (pair->key == 15) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
874 if (im) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
875 im->time = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
876 if (pair->key == 206) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
877 if (im) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
878 im->buddy_icon = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
879 if (pair->key == 14) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
880 if (im) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
881 im->msg = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
882 } |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
883 /* peer session id */ |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
884 if (pair->key == 11) { |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
885 if (im) |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
886 val_11 = strtol(pair->value, NULL, 10); |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
887 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
888 /* IMV key */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
889 if (pair->key == 63) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
890 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
891 imv = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
892 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
893 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
894 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
895 } else if (pkt->status == 2) { |
15823 | 896 purple_notify_error(gc, NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
897 _("Your Yahoo! message did not get sent."), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
898 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
899 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
900 /* disconnect the peer if connected through p2p and sends wrong value for session id */ |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
901 if( (pkt_type == YAHOO_PKT_TYPE_P2P) && (val_11 != yd->session_id) ) { |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
902 purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im->from); |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
903 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
904 g_hash_table_remove(yd->peers, im->from); |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
905 return; |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
906 } |
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
907 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
908 /** TODO: It seems that this check should be per IM, not global */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
909 /* Check for the Doodle IMV */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
910 if (im != NULL && imv!= NULL && im->from != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
911 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
912 g_hash_table_replace(yd->imvironments, g_strdup(im->from), g_strdup(imv)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
913 |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
914 if (strstr(imv, "doodle;") != NULL) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
915 { |
15823 | 916 PurpleWhiteboard *wb; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
917 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
918 if (!purple_privacy_check(account, im->from)) { |
15823 | 919 purple_debug_info("yahoo", "Doodle request from %s dropped.\n", im->from); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
920 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
921 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
922 |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
923 /* I'm not sure the following ever happens -DAA */ |
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
924 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
925 wb = purple_whiteboard_get_session(account, im->from); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
926 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
927 /* If a Doodle session doesn't exist between this user */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
928 if(wb == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
929 { |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
19718
diff
changeset
|
930 doodle_session *ds; |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
931 wb = purple_whiteboard_create(account, im->from, DOODLE_STATE_REQUESTED); |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
19718
diff
changeset
|
932 ds = wb->proto_data; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
19718
diff
changeset
|
933 ds->imv_key = g_strdup(imv); |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
19718
diff
changeset
|
934 |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
19718
diff
changeset
|
935 yahoo_doodle_command_send_request(gc, im->from, imv); |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
19718
diff
changeset
|
936 yahoo_doodle_command_send_ready(gc, im->from, imv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
937 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
938 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
939 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
940 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
941 for (l = list; l; l = l->next) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
942 YahooFriend *f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
943 char *m, *m2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
944 im = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
945 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
946 if (!im->from || !im->msg) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
947 g_free(im); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
948 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
949 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
950 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
951 if (!purple_privacy_check(account, im->from)) { |
15823 | 952 purple_debug_info("yahoo", "Message from %s dropped.\n", im->from); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
953 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
954 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
955 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
956 m = yahoo_string_decode(gc, im->msg, im->utf8); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
957 /* This may actually not be necessary, but it appears |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
958 * that at least at one point some clients were sending |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
959 * "\r\n" as line delimiters, so we want to avoid double |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
960 * lines. */ |
15823 | 961 m2 = purple_strreplace(m, "\r\n", "\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
962 g_free(m); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
963 m = m2; |
15823 | 964 purple_util_chrreplace(m, '\r', '\n'); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
965 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
966 if (!strcmp(m, "<ding>")) { |
15946
e058328dc954
Patch from Zac West which (1) adds a message flag, PURPLE_MESSAGE_NOTIFY, used to indicate that a message is a protocol-level notification from a user ('buzz' in yahoo, 'nudge' in msn, for example) and (2) uses it along with improving the text displayed when sending/receiving buzzes and nudges. The addition of this flag means that a plugin could implement custom behavior, such as playing a sound or triggerring some other event, reliably and easily.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15823
diff
changeset
|
967 PurpleConversation *c; |
21537
9dbf38f270da
Fix #3421 by checking for an existing conversation in which to display a yahoo buzz.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21425
diff
changeset
|
968 char *username; |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
969 |
21537
9dbf38f270da
Fix #3421 by checking for an existing conversation in which to display a yahoo buzz.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21425
diff
changeset
|
970 c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, im->from, account); |
9dbf38f270da
Fix #3421 by checking for an existing conversation in which to display a yahoo buzz.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21425
diff
changeset
|
971 if (c == NULL) |
9dbf38f270da
Fix #3421 by checking for an existing conversation in which to display a yahoo buzz.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21425
diff
changeset
|
972 c = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, im->from); |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
973 |
21801
3265e4619117
We need to use the actual username for attentions, instead of alias. This should fix the 'new im for buzz' bug on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21560
diff
changeset
|
974 username = g_markup_escape_text(im->from, -1); |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
975 serv_got_attention(gc, username, YAHOO_BUZZ); |
15946
e058328dc954
Patch from Zac West which (1) adds a message flag, PURPLE_MESSAGE_NOTIFY, used to indicate that a message is a protocol-level notification from a user ('buzz' in yahoo, 'nudge' in msn, for example) and (2) uses it along with improving the text displayed when sending/receiving buzzes and nudges. The addition of this flag means that a plugin could implement custom behavior, such as playing a sound or triggerring some other event, reliably and easily.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15823
diff
changeset
|
976 g_free(username); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
977 g_free(m); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
978 g_free(im); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
979 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
980 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
981 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
982 m2 = yahoo_codes_to_html(m); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
983 g_free(m); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
984 serv_got_im(gc, im->from, m2, 0, im->time); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
985 g_free(m2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
986 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
987 if ((f = yahoo_friend_find(gc, im->from)) && im->buddy_icon == 2) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
988 if (yahoo_friend_get_buddy_icon_need_request(f)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
989 yahoo_send_picture_request(gc, im->from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
990 yahoo_friend_set_buddy_icon_need_request(f, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
991 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
992 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
993 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
994 g_free(im); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
995 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
996 g_slist_free(list); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
997 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
998 |
15823 | 999 static void yahoo_process_sysmessage(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1000 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1001 GSList *l = pkt->hash; |
16998
8e7a4295ff85
Finish removal of yahoo system message escaping. I must have been
Stu Tomlinson <stu@nosnilmot.com>
parents:
16996
diff
changeset
|
1002 char *prim, *me = NULL, *msg = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1003 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1004 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1005 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1006 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1007 if (pair->key == 5) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1008 me = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1009 if (pair->key == 14) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1010 msg = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1011 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1012 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1013 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1014 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1015 if (!msg || !g_utf8_validate(msg, -1, NULL)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1016 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1017 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1018 prim = g_strdup_printf(_("Yahoo! system message for %s:"), |
15823 | 1019 me?me:purple_connection_get_display_name(gc)); |
16998
8e7a4295ff85
Finish removal of yahoo system message escaping. I must have been
Stu Tomlinson <stu@nosnilmot.com>
parents:
16996
diff
changeset
|
1020 purple_notify_info(NULL, NULL, prim, msg); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1021 g_free(prim); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1022 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1023 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1024 struct yahoo_add_request { |
15823 | 1025 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1026 char *id; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1027 char *who; |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1028 int protocol; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1029 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1030 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1031 static void |
22230
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1032 yahoo_buddy_add_authorize_cb(gpointer data) |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1033 { |
19195
1ca6c4b234ab
Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19189
diff
changeset
|
1034 struct yahoo_add_request *add_req = data; |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1035 struct yahoo_packet *pkt; |
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1036 struct yahoo_data *yd = add_req->gc->proto_data; |
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1037 |
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1038 pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15, YAHOO_STATUS_AVAILABLE, 0); |
22230
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1039 yahoo_packet_hash(pkt, "ssiii", |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1040 1, add_req->id, |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1041 5, add_req->who, |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1042 241, add_req->protocol, |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1043 13, 1, |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1044 334, 0); |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1045 yahoo_packet_send_and_free(pkt, yd); |
19358
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
1046 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1047 g_free(add_req->id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1048 g_free(add_req->who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1049 g_free(add_req); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1050 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1051 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1052 static void |
22230
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1053 yahoo_buddy_add_deny_cb(struct yahoo_add_request *add_req, const char *msg) |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1054 { |
0f654f866de0
Revert bfc4df11256d088d75b0512bb0c4790967b68b19 because the code is
Mark Doliner <mark@kingant.net>
parents:
22149
diff
changeset
|
1055 struct yahoo_data *yd = add_req->gc->proto_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1056 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1057 char *encoded_msg = NULL; |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1058 PurpleAccount *account = purple_connection_get_account(add_req->gc); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1059 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1060 if (msg && *msg) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1061 encoded_msg = yahoo_string_encode(add_req->gc, msg, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1062 |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1063 pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH_REQ_15, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1064 YAHOO_STATUS_AVAILABLE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1065 |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1066 yahoo_packet_hash(pkt, "ssiiis", |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1067 1, purple_normalize(account, purple_account_get_username(account)), |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1068 5, add_req->who, |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1069 13, 2, |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1070 334, 0, |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1071 97, 1, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1072 14, encoded_msg ? encoded_msg : ""); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1073 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1074 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1075 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1076 g_free(encoded_msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1077 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1078 g_free(add_req->id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1079 g_free(add_req->who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1080 g_free(add_req); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1081 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1082 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1083 static void |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1084 yahoo_buddy_add_deny_noreason_cb(struct yahoo_add_request *add_req, const char*msg) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1085 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1086 yahoo_buddy_add_deny_cb(add_req, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1087 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1088 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1089 static void |
19195
1ca6c4b234ab
Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19189
diff
changeset
|
1090 yahoo_buddy_add_deny_reason_cb(gpointer data) { |
1ca6c4b234ab
Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19189
diff
changeset
|
1091 struct yahoo_add_request *add_req = data; |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
1092 purple_request_input(add_req->gc, NULL, _("Authorization denied message:"), |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
1093 NULL, _("No reason given."), TRUE, FALSE, NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1094 _("OK"), G_CALLBACK(yahoo_buddy_add_deny_cb), |
16442
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15946
diff
changeset
|
1095 _("Cancel"), G_CALLBACK(yahoo_buddy_add_deny_noreason_cb), |
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15946
diff
changeset
|
1096 purple_connection_get_account(add_req->gc), add_req->who, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
1097 add_req); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1098 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1099 |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1100 static void yahoo_buddy_denied_our_add(PurpleConnection *gc, const char *who, const char *reason) |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1101 { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1102 char *notify_msg; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1103 struct yahoo_data *yd = gc->proto_data; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1104 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1105 if (who == NULL) |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1106 return; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1107 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1108 if (reason != NULL) { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1109 char *msg2 = yahoo_string_decode(gc, reason, FALSE); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1110 notify_msg = g_strdup_printf(_("%s has (retroactively) denied your request to add them to your list for the following reason: %s."), who, msg2); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1111 g_free(msg2); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1112 } else |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1113 notify_msg = g_strdup_printf(_("%s has (retroactively) denied your request to add them to your list."), who); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1114 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1115 purple_notify_info(gc, NULL, _("Add buddy rejected"), notify_msg); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1116 g_free(notify_msg); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1117 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1118 g_hash_table_remove(yd->friends, who); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1119 purple_prpl_got_user_status(purple_connection_get_account(gc), who, "offline", NULL); /* FIXME: make this set not on list status instead */ |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1120 /* TODO: Shouldn't we remove the buddy from our local list? */ |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1121 } |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1122 |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1123 static void yahoo_buddy_auth_req_15(PurpleConnection *gc, struct yahoo_packet *pkt) { |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1124 PurpleAccount *account; |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1125 GSList *l = pkt->hash; |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1126 const char *msg = NULL; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1127 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1128 account = purple_connection_get_account(gc); |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1129 |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1130 /* Buddy authorized/declined our addition */ |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1131 if (pkt->status == 1) { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1132 const char *who = NULL; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1133 int response = 0; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1134 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1135 while (l) { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1136 struct yahoo_pair *pair = l->data; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1137 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1138 switch (pair->key) { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1139 case 4: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1140 who = pair->value; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1141 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1142 case 13: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1143 response = strtol(pair->value, NULL, 10); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1144 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1145 case 14: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1146 msg = pair->value; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1147 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1148 } |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1149 l = l->next; |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1150 } |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1151 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1152 if (response == 1) /* Authorized */ |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1153 purple_debug_info("yahoo", "Received authorization from buddy '%s'.\n", who ? who : "(Unknown Buddy)"); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1154 else if (response == 2) { /* Declined */ |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1155 purple_debug_info("yahoo", "Received authorization decline from buddy '%s'.\n", who ? who : "(Unknown Buddy)"); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1156 yahoo_buddy_denied_our_add(gc, who, msg); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1157 } else |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1158 purple_debug_error("yahoo", "Received unknown authorization response of %d from buddy '%s'.\n", response, who ? who : "(Unknown Buddy)"); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1159 |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1160 } |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1161 /* Buddy requested authorization to add us. */ |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1162 else if (pkt->status == 3) { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1163 struct yahoo_add_request *add_req; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1164 const char *firstname = NULL, *lastname = NULL; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1165 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1166 add_req = g_new0(struct yahoo_add_request, 1); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1167 add_req->gc = gc; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1168 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1169 while (l) { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1170 struct yahoo_pair *pair = l->data; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1171 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1172 switch (pair->key) { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1173 case 4: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1174 add_req->who = g_strdup(pair->value); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1175 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1176 case 5: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1177 add_req->id = g_strdup(pair->value); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1178 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1179 case 14: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1180 msg = pair->value; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1181 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1182 case 216: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1183 firstname = pair->value; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1184 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1185 case 241: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1186 add_req->protocol = strtol(pair->value, NULL, 10); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1187 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1188 case 254: |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1189 lastname = pair->value; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1190 break; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1191 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1192 } |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1193 l = l->next; |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1194 } |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1195 |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1196 if (add_req->id && add_req->who) { |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1197 char *alias = NULL, *dec_msg = NULL; |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1198 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1199 if (!purple_privacy_check(account, add_req->who)) |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1200 { |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1201 purple_debug_misc("yahoo", "Auth. request from %s dropped and automatically denied due to privacy settings!\n", |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1202 add_req->who); |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1203 yahoo_buddy_add_deny_cb(add_req, NULL); |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1204 return; |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1205 } |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1206 |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1207 if (msg) |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1208 dec_msg = yahoo_string_decode(gc, msg, FALSE); |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1209 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1210 if (firstname && lastname) |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1211 alias = g_strdup_printf("%s %s", firstname, lastname); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1212 else if (firstname) |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1213 alias = g_strdup(firstname); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1214 else if (lastname) |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1215 alias = g_strdup(lastname); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1216 |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1217 /* DONE! this is almost exactly the same as what MSN does, |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1218 * this should probably be moved to the core. |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1219 */ |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1220 purple_account_request_authorization(account, add_req->who, add_req->id, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1221 alias, dec_msg, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1222 purple_find_buddy(account, add_req->who) != NULL, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1223 yahoo_buddy_add_authorize_cb, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1224 yahoo_buddy_add_deny_reason_cb, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1225 add_req); |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1226 g_free(alias); |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1227 g_free(dec_msg); |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1228 } else { |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1229 g_free(add_req->id); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1230 g_free(add_req->who); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1231 g_free(add_req); |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1232 } |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1233 } else { |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1234 purple_debug_error("yahoo", "Received authorization of unknown status (%d).\n", pkt->status); |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1235 } |
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1236 } |
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
1237 |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1238 /* I don't think this happens anymore in Version 15 */ |
15823 | 1239 static void yahoo_buddy_added_us(PurpleConnection *gc, struct yahoo_packet *pkt) { |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1240 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1241 struct yahoo_add_request *add_req; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1242 char *msg = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1243 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1244 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1245 account = purple_connection_get_account(gc); |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1246 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1247 add_req = g_new0(struct yahoo_add_request, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1248 add_req->gc = gc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1249 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1250 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1251 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1252 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1253 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1254 case 1: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1255 add_req->id = g_strdup(pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1256 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1257 case 3: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1258 add_req->who = g_strdup(pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1259 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1260 case 15: /* time, for when they add us and we're offline */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1261 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1262 case 14: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1263 msg = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1264 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1265 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1266 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1267 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1268 |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1269 if (add_req->id && add_req->who) { |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1270 char *dec_msg = NULL; |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1271 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1272 if (!purple_privacy_check(account, add_req->who)) { |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1273 purple_debug_misc("yahoo", "Auth. request from %s dropped and automatically denied due to privacy settings!\n", |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1274 add_req->who); |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1275 yahoo_buddy_add_deny_cb(add_req, NULL); |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1276 return; |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1277 } |
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1278 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1279 if (msg) |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1280 dec_msg = yahoo_string_decode(gc, msg, FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1281 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1282 /* DONE! this is almost exactly the same as what MSN does, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1283 * this should probably be moved to the core. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1284 */ |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1285 purple_account_request_authorization(account, add_req->who, add_req->id, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1286 NULL, dec_msg, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1287 purple_find_buddy(account,add_req->who) != NULL, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1288 yahoo_buddy_add_authorize_cb, |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
1289 yahoo_buddy_add_deny_reason_cb, add_req); |
19543
fa29de8d18bc
Apply local privacy filtering to yahoo auth. requests. Drop and automatically deny any requests that should be filtered. Fixes #2857.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19511
diff
changeset
|
1290 g_free(dec_msg); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1291 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1292 g_free(add_req->id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1293 g_free(add_req->who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1294 g_free(add_req); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1295 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1296 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1297 |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1298 /* I have no idea if this every gets called in version 15 */ |
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1299 static void yahoo_buddy_denied_our_add_old(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1300 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1301 char *who = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1302 char *msg = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1303 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1304 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1305 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1306 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1307 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1308 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1309 case 3: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1310 who = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1311 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1312 case 14: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1313 msg = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1314 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1315 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1316 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1317 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1318 |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1319 yahoo_buddy_denied_our_add(gc, who, msg); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1320 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1321 |
15823 | 1322 static void yahoo_process_contact(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1323 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1324 switch (pkt->status) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1325 case 1: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1326 yahoo_process_status(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1327 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1328 case 3: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1329 yahoo_buddy_added_us(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1330 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1331 case 7: |
19360
dbc4bdfb09a9
Fix various things related to authorization on yahoo.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19358
diff
changeset
|
1332 yahoo_buddy_denied_our_add_old(gc, pkt); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1333 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1334 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1335 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1336 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1337 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1338 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1339 #define OUT_CHARSET "utf-8" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1340 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1341 static char *yahoo_decode(const char *text) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1342 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1343 char *converted = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1344 char *n, *new; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1345 const char *end, *p; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1346 int i, k; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1347 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1348 n = new = g_malloc(strlen (text) + 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1349 end = text + strlen(text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1350 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1351 for (p = text; p < end; p++, n++) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1352 if (*p == '\\') { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1353 if (p[1] >= '0' && p[1] <= '7') { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1354 p += 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1355 for (i = 0, k = 0; k < 3; k += 1) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1356 char c = p[k]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1357 if (c < '0' || c > '7') break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1358 i *= 8; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1359 i += c - '0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1360 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1361 *n = i; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1362 p += k - 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1363 } else { /* bug 959248 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1364 /* If we see a \ not followed by an octal number, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1365 * it means that it is actually a \\ with one \ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1366 * already eaten by some unknown function. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1367 * This is arguably broken. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1368 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1369 * I think wing is wrong here, there is no function |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1370 * called that I see that could have done it. I guess |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1371 * it is just really sending single \'s. That's yahoo |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1372 * for you. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1373 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1374 *n = *p; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1375 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1376 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1377 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1378 *n = *p; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1379 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1380 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1381 *n = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1382 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1383 if (strstr(text, "\033$B")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1384 converted = g_convert(new, n - new, OUT_CHARSET, "iso-2022-jp", NULL, NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1385 if (!converted) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1386 converted = g_convert(new, n - new, OUT_CHARSET, "iso-8859-1", NULL, NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1387 g_free(new); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1388 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1389 return converted; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1390 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1391 |
15823 | 1392 static void yahoo_process_mail(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1393 { |
15823 | 1394 PurpleAccount *account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1395 struct yahoo_data *yd = gc->proto_data; |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
1396 const char *who = NULL; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
1397 const char *email = NULL; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
1398 const char *subj = NULL; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
1399 const char *yahoo_mail_url = (yd->jp? YAHOOJP_MAIL_URL: YAHOO_MAIL_URL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1400 int count = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1401 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1402 |
15823 | 1403 if (!purple_account_get_check_mail(account)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1404 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1405 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1406 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1407 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1408 if (pair->key == 9) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1409 count = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1410 else if (pair->key == 43) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1411 who = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1412 else if (pair->key == 42) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1413 email = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1414 else if (pair->key == 18) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1415 subj = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1416 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1417 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1418 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1419 if (who && subj && email && *email) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1420 char *dec_who = yahoo_decode(who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1421 char *dec_subj = yahoo_decode(subj); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1422 char *from = g_strdup_printf("%s (%s)", dec_who, email); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1423 |
15823 | 1424 purple_notify_email(gc, dec_subj, from, purple_account_get_username(account), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1425 yahoo_mail_url, NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1426 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1427 g_free(dec_who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1428 g_free(dec_subj); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1429 g_free(from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1430 } else if (count > 0) { |
15823 | 1431 const char *to = purple_account_get_username(account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1432 const char *url = yahoo_mail_url; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1433 |
15823 | 1434 purple_notify_emails(gc, count, FALSE, NULL, NULL, &to, &url, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1435 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1436 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1437 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1438 /* This is the y64 alphabet... it's like base64, but has a . and a _ */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1439 static const char base64digits[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1440 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1441 /* This is taken from Sylpheed by Hiroyuki Yamamoto. We have our own tobase64 function |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1442 * in util.c, but it has a bug I don't feel like finding right now ;) */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1443 static void to_y64(char *out, const unsigned char *in, gsize inlen) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1444 /* raw bytes in quasi-big-endian order to base 64 string (NUL-terminated) */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1445 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1446 for (; inlen >= 3; inlen -= 3) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1447 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1448 *out++ = base64digits[in[0] >> 2]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1449 *out++ = base64digits[((in[0] << 4) & 0x30) | (in[1] >> 4)]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1450 *out++ = base64digits[((in[1] << 2) & 0x3c) | (in[2] >> 6)]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1451 *out++ = base64digits[in[2] & 0x3f]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1452 in += 3; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1453 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1454 if (inlen > 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1455 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1456 unsigned char fragment; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1457 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1458 *out++ = base64digits[in[0] >> 2]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1459 fragment = (in[0] << 4) & 0x30; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1460 if (inlen > 1) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1461 fragment |= in[1] >> 4; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1462 *out++ = base64digits[fragment]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1463 *out++ = (inlen < 2) ? '-' : base64digits[(in[1] << 2) & 0x3c]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1464 *out++ = '-'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1465 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1466 *out = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1467 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1468 |
15823 | 1469 static void yahoo_process_auth_old(PurpleConnection *gc, const char *seed) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1470 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1471 struct yahoo_packet *pack; |
15823 | 1472 PurpleAccount *account = purple_connection_get_account(gc); |
1473 const char *name = purple_normalize(account, purple_account_get_username(account)); | |
1474 const char *pass = purple_connection_get_password(gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1475 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1476 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1477 /* So, Yahoo has stopped supporting its older clients in India, and undoubtedly |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1478 * will soon do so in the rest of the world. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1479 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1480 * The new clients use this authentication method. I warn you in advance, it's |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1481 * bizarre, convoluted, inordinately complicated. It's also no more secure than |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1482 * crypt() was. The only purpose this scheme could serve is to prevent third |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1483 * party clients from connecting to their servers. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1484 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1485 * Sorry, Yahoo. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1486 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1487 |
15823 | 1488 PurpleCipher *cipher; |
1489 PurpleCipherContext *context; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1490 guchar digest[16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1491 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1492 char *crypt_result; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1493 char password_hash[25]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1494 char crypt_hash[25]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1495 char *hash_string_p = g_malloc(50 + strlen(name)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1496 char *hash_string_c = g_malloc(50 + strlen(name)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1497 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1498 char checksum; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1499 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1500 int sv; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1501 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1502 char result6[25]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1503 char result96[25]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1504 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1505 sv = seed[15]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1506 sv = sv % 8; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1507 |
15823 | 1508 cipher = purple_ciphers_find_cipher("md5"); |
1509 context = purple_cipher_context_new(cipher, NULL); | |
1510 | |
1511 purple_cipher_context_append(context, (const guchar *)pass, strlen(pass)); | |
1512 purple_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1513 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1514 to_y64(password_hash, digest, 16); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1515 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1516 crypt_result = yahoo_crypt(pass, "$1$_2S43d5f$"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1517 |
15823 | 1518 purple_cipher_context_reset(context, NULL); |
1519 purple_cipher_context_append(context, (const guchar *)crypt_result, strlen(crypt_result)); | |
1520 purple_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1521 to_y64(crypt_hash, digest, 16); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1522 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1523 switch (sv) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1524 case 1: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1525 case 6: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1526 checksum = seed[seed[9] % 16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1527 g_snprintf(hash_string_p, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1528 "%c%s%s%s", checksum, name, seed, password_hash); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1529 g_snprintf(hash_string_c, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1530 "%c%s%s%s", checksum, name, seed, crypt_hash); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1531 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1532 case 2: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1533 case 7: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1534 checksum = seed[seed[15] % 16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1535 g_snprintf(hash_string_p, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1536 "%c%s%s%s", checksum, seed, password_hash, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1537 g_snprintf(hash_string_c, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1538 "%c%s%s%s", checksum, seed, crypt_hash, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1539 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1540 case 3: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1541 checksum = seed[seed[1] % 16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1542 g_snprintf(hash_string_p, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1543 "%c%s%s%s", checksum, name, password_hash, seed); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1544 g_snprintf(hash_string_c, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1545 "%c%s%s%s", checksum, name, crypt_hash, seed); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1546 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1547 case 4: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1548 checksum = seed[seed[3] % 16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1549 g_snprintf(hash_string_p, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1550 "%c%s%s%s", checksum, password_hash, seed, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1551 g_snprintf(hash_string_c, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1552 "%c%s%s%s", checksum, crypt_hash, seed, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1553 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1554 case 0: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1555 case 5: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1556 checksum = seed[seed[7] % 16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1557 g_snprintf(hash_string_p, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1558 "%c%s%s%s", checksum, password_hash, name, seed); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1559 g_snprintf(hash_string_c, strlen(name) + 50, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1560 "%c%s%s%s", checksum, crypt_hash, name, seed); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1561 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1562 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1563 |
15823 | 1564 purple_cipher_context_reset(context, NULL); |
1565 purple_cipher_context_append(context, (const guchar *)hash_string_p, strlen(hash_string_p)); | |
1566 purple_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1567 to_y64(result6, digest, 16); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1568 |
15823 | 1569 purple_cipher_context_reset(context, NULL); |
1570 purple_cipher_context_append(context, (const guchar *)hash_string_c, strlen(hash_string_c)); | |
1571 purple_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
1572 purple_cipher_context_destroy(context); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1573 to_y64(result96, digest, 16); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1574 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1575 pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, YAHOO_STATUS_AVAILABLE, 0); |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1576 |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1577 if(yd->jp) { |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1578 yahoo_packet_hash(pack, "sssss", |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1579 0, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1580 6, result6, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1581 96, result96, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1582 1, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1583 135, YAHOOJP_CLIENT_VERSION); |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1584 } else { |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1585 yahoo_packet_hash(pack, "ssssss", |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1586 0, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1587 6, result6, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1588 96, result96, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1589 1, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1590 244, YAHOO_CLIENT_VERSION_ID, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1591 135, YAHOO_CLIENT_VERSION); |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1592 } |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
1593 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1594 yahoo_packet_send_and_free(pack, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1595 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1596 g_free(hash_string_p); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1597 g_free(hash_string_c); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1598 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1599 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1600 /* I'm dishing out some uber-mad props to Cerulean Studios for cracking this |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1601 * and sending the fix! Thanks guys. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1602 |
15823 | 1603 static void yahoo_process_auth_new(PurpleConnection *gc, const char *seed) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1604 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1605 struct yahoo_packet *pack = NULL; |
15823 | 1606 PurpleAccount *account = purple_connection_get_account(gc); |
1607 const char *name = purple_normalize(account, purple_account_get_username(account)); | |
1608 const char *pass = purple_connection_get_password(gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1609 char *enc_pass; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1610 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1611 |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1612 PurpleCipher *md5_cipher; |
15823 | 1613 PurpleCipherContext *md5_ctx; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1614 guchar md5_digest[16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1615 |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1616 PurpleCipher *sha1_cipher; |
15823 | 1617 PurpleCipherContext *sha1_ctx1; |
1618 PurpleCipherContext *sha1_ctx2; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1619 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1620 char *alphabet1 = "FBZDWAGHrJTLMNOPpRSKUVEXYChImkwQ"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1621 char *alphabet2 = "F0E1D2C3B4A59687abcdefghijklmnop"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1622 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1623 char *challenge_lookup = "qzec2tb3um1olpar8whx4dfgijknsvy5"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1624 char *operand_lookup = "+|&%/*^-"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1625 char *delimit_lookup = ",;"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1626 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1627 char *password_hash = (char *)g_malloc(25); |
22021 | 1628 char *crypt_hash = (char *)g_malloc(25); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1629 char *crypt_result = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1630 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1631 unsigned char pass_hash_xor1[64]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1632 unsigned char pass_hash_xor2[64]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1633 unsigned char crypt_hash_xor1[64]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1634 unsigned char crypt_hash_xor2[64]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1635 char resp_6[100]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1636 char resp_96[100]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1637 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1638 unsigned char digest1[20]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1639 unsigned char digest2[20]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1640 unsigned char comparison_src[20]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1641 unsigned char magic_key_char[4]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1642 const char *magic_ptr; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1643 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1644 unsigned int magic[64]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1645 unsigned int magic_work = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1646 unsigned int magic_4 = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1647 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1648 int x; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1649 int y; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1650 int cnt = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1651 int magic_cnt = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1652 int magic_len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1653 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1654 memset(password_hash, 0, 25); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1655 memset(crypt_hash, 0, 25); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1656 memset(&pass_hash_xor1, 0, 64); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1657 memset(&pass_hash_xor2, 0, 64); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1658 memset(&crypt_hash_xor1, 0, 64); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1659 memset(&crypt_hash_xor2, 0, 64); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1660 memset(&digest1, 0, 20); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1661 memset(&digest2, 0, 20); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1662 memset(&magic, 0, 64); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1663 memset(&resp_6, 0, 100); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1664 memset(&resp_96, 0, 100); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1665 memset(&magic_key_char, 0, 4); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1666 memset(&comparison_src, 0, 20); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1667 |
15823 | 1668 md5_cipher = purple_ciphers_find_cipher("md5"); |
1669 md5_ctx = purple_cipher_context_new(md5_cipher, NULL); | |
1670 | |
1671 sha1_cipher = purple_ciphers_find_cipher("sha1"); | |
1672 sha1_ctx1 = purple_cipher_context_new(sha1_cipher, NULL); | |
1673 sha1_ctx2 = purple_cipher_context_new(sha1_cipher, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1674 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1675 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1676 * Magic: Phase 1. Generate what seems to be a 30 byte value (could change if base64 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1677 * ends up differently? I don't remember and I'm tired, so use a 64 byte buffer. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1678 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1679 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1680 magic_ptr = seed; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1681 |
22022
eeba86c553be
Fix a couple compile warnings.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22021
diff
changeset
|
1682 while (*magic_ptr != '\0') { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1683 char *loc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1684 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1685 /* Ignore parentheses. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1686 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1687 if (*magic_ptr == '(' || *magic_ptr == ')') { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1688 magic_ptr++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1689 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1690 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1691 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1692 /* Characters and digits verify against the challenge lookup. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1693 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1694 if (isalpha(*magic_ptr) || isdigit(*magic_ptr)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1695 loc = strchr(challenge_lookup, *magic_ptr); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1696 if (!loc) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1697 /* SME XXX Error - disconnect here */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1698 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1699 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1700 /* Get offset into lookup table and shl 3. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1701 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1702 magic_work = loc - challenge_lookup; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1703 magic_work <<= 3; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1704 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1705 magic_ptr++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1706 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1707 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1708 unsigned int local_store; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1709 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1710 loc = strchr(operand_lookup, *magic_ptr); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1711 if (!loc) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1712 /* SME XXX Disconnect */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1713 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1714 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1715 local_store = loc - operand_lookup; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1716 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1717 /* Oops; how did this happen? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1718 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1719 if (magic_cnt >= 64) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1720 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1721 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1722 magic[magic_cnt++] = magic_work | local_store; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1723 magic_ptr++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1724 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1725 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1726 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1727 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1728 magic_len = magic_cnt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1729 magic_cnt = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1730 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1731 /* Magic: Phase 2. Take generated magic value and sprinkle fairy |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1732 * dust on the values. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1733 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1734 |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1735 for (magic_cnt = magic_len - 2; magic_cnt >= 0; magic_cnt--) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1736 unsigned char byte1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1737 unsigned char byte2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1738 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1739 /* Bad. Abort. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1740 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1741 if ((magic_cnt + 1 > magic_len) || (magic_cnt > magic_len)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1742 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1743 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1744 byte1 = magic[magic_cnt]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1745 byte2 = magic[magic_cnt+1]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1746 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1747 byte1 *= 0xcd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1748 byte1 ^= byte2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1749 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1750 magic[magic_cnt+1] = byte1; |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1751 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1752 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1753 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1754 * Magic: Phase 3. This computes 20 bytes. The first 4 bytes are used as our magic |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1755 * key (and may be changed later); the next 16 bytes are an MD5 sum of the magic key |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1756 * plus 3 bytes. The 3 bytes are found by looping, and they represent the offsets |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1757 * into particular functions we'll later call to potentially alter the magic key. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1758 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1759 * %-) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1760 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1761 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1762 magic_cnt = 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1763 x = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1764 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1765 do { |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1766 unsigned int bl = 0; |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1767 unsigned int cl = magic[magic_cnt++]; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1768 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1769 if (magic_cnt >= magic_len) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1770 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1771 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1772 if (cl > 0x7F) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1773 if (cl < 0xe0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1774 bl = cl = (cl & 0x1f) << 6; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1775 else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1776 bl = magic[magic_cnt++]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1777 cl = (cl & 0x0f) << 6; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1778 bl = ((bl & 0x3f) + cl) << 6; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1779 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1780 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1781 cl = magic[magic_cnt++]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1782 bl = (cl & 0x3f) + bl; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1783 } else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1784 bl = cl; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1785 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1786 comparison_src[x++] = (bl & 0xff00) >> 8; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1787 comparison_src[x++] = bl & 0xff; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1788 } while (x < 20); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1789 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1790 /* First four bytes are magic key. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1791 memcpy(&magic_key_char[0], comparison_src, 4); |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1792 magic_4 = magic_key_char[0] | (magic_key_char[1] << 8) | |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1793 (magic_key_char[2] << 16) | (magic_key_char[3] << 24); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1794 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1795 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1796 * Magic: Phase 4. Determine what function to use later by getting outside/inside |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1797 * loop values until we match our previous buffer. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1798 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1799 for (x = 0; x < 65535; x++) { |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1800 int leave = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1801 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1802 for (y = 0; y < 5; y++) { |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1803 unsigned char test[3]; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1804 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1805 /* Calculate buffer. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1806 test[0] = x; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1807 test[1] = x >> 8; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1808 test[2] = y; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1809 |
15823 | 1810 purple_cipher_context_reset(md5_ctx, NULL); |
1811 purple_cipher_context_append(md5_ctx, magic_key_char, 4); | |
1812 purple_cipher_context_append(md5_ctx, test, 3); | |
1813 purple_cipher_context_digest(md5_ctx, sizeof(md5_digest), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1814 md5_digest, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1815 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1816 if (!memcmp(md5_digest, comparison_src+4, 16)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1817 leave = 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1818 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1819 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1820 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1821 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1822 if (leave == 1) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1823 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1824 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1825 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1826 /* If y != 0, we need some help. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1827 if (y != 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1828 unsigned int updated_key; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1829 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1830 /* Update magic stuff. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1831 * Call it twice because Yahoo's encryption is super bad ass. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1832 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1833 updated_key = yahoo_auth_finalCountdown(magic_4, 0x60, y, x); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1834 updated_key = yahoo_auth_finalCountdown(updated_key, 0x60, y, x); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1835 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1836 magic_key_char[0] = updated_key & 0xff; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1837 magic_key_char[1] = (updated_key >> 8) & 0xff; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1838 magic_key_char[2] = (updated_key >> 16) & 0xff; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1839 magic_key_char[3] = (updated_key >> 24) & 0xff; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1840 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1841 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1842 enc_pass = yahoo_string_encode(gc, pass, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1843 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1844 /* Get password and crypt hashes as per usual. */ |
15823 | 1845 purple_cipher_context_reset(md5_ctx, NULL); |
1846 purple_cipher_context_append(md5_ctx, (const guchar *)enc_pass, strlen(enc_pass)); | |
1847 purple_cipher_context_digest(md5_ctx, sizeof(md5_digest), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1848 md5_digest, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1849 to_y64(password_hash, md5_digest, 16); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1850 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1851 crypt_result = yahoo_crypt(enc_pass, "$1$_2S43d5f$"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1852 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1853 g_free(enc_pass); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1854 enc_pass = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1855 |
15823 | 1856 purple_cipher_context_reset(md5_ctx, NULL); |
1857 purple_cipher_context_append(md5_ctx, (const guchar *)crypt_result, strlen(crypt_result)); | |
1858 purple_cipher_context_digest(md5_ctx, sizeof(md5_digest), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1859 md5_digest, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1860 to_y64(crypt_hash, md5_digest, 16); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1861 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1862 /* Our first authentication response is based off of the password hash. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1863 for (x = 0; x < (int)strlen(password_hash); x++) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1864 pass_hash_xor1[cnt++] = password_hash[x] ^ 0x36; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1865 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1866 if (cnt < 64) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1867 memset(&(pass_hash_xor1[cnt]), 0x36, 64-cnt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1868 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1869 cnt = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1870 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1871 for (x = 0; x < (int)strlen(password_hash); x++) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1872 pass_hash_xor2[cnt++] = password_hash[x] ^ 0x5c; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1873 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1874 if (cnt < 64) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1875 memset(&(pass_hash_xor2[cnt]), 0x5c, 64-cnt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1876 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1877 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1878 * The first context gets the password hash XORed with 0x36 plus a magic value |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1879 * which we previously extrapolated from our challenge. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1880 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1881 |
15823 | 1882 purple_cipher_context_append(sha1_ctx1, pass_hash_xor1, 64); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1883 if (y >= 3) |
15823 | 1884 purple_cipher_context_set_option(sha1_ctx1, "sizeLo", GINT_TO_POINTER(0x1ff)); |
1885 purple_cipher_context_append(sha1_ctx1, magic_key_char, 4); | |
1886 purple_cipher_context_digest(sha1_ctx1, sizeof(digest1), digest1, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1887 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1888 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1889 * The second context gets the password hash XORed with 0x5c plus the SHA-1 digest |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1890 * of the first context. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1891 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1892 |
15823 | 1893 purple_cipher_context_append(sha1_ctx2, pass_hash_xor2, 64); |
1894 purple_cipher_context_append(sha1_ctx2, digest1, 20); | |
1895 purple_cipher_context_digest(sha1_ctx2, sizeof(digest2), digest2, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1896 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1897 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1898 * Now that we have digest2, use it to fetch characters from an alphabet to construct |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1899 * our first authentication response. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1900 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1901 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1902 for (x = 0; x < 20; x += 2) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1903 unsigned int val = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1904 unsigned int lookup = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1905 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1906 char byte[6]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1907 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1908 memset(&byte, 0, 6); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1909 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1910 /* First two bytes of digest stuffed together. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1911 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1912 val = digest2[x]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1913 val <<= 8; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1914 val += digest2[x+1]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1915 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1916 lookup = (val >> 0x0b); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1917 lookup &= 0x1f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1918 if (lookup >= strlen(alphabet1)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1919 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1920 sprintf(byte, "%c", alphabet1[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1921 strcat(resp_6, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1922 strcat(resp_6, "="); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1923 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1924 lookup = (val >> 0x06); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1925 lookup &= 0x1f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1926 if (lookup >= strlen(alphabet2)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1927 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1928 sprintf(byte, "%c", alphabet2[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1929 strcat(resp_6, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1930 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1931 lookup = (val >> 0x01); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1932 lookup &= 0x1f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1933 if (lookup >= strlen(alphabet2)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1934 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1935 sprintf(byte, "%c", alphabet2[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1936 strcat(resp_6, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1937 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1938 lookup = (val & 0x01); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1939 if (lookup >= strlen(delimit_lookup)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1940 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1941 sprintf(byte, "%c", delimit_lookup[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1942 strcat(resp_6, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1943 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1944 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1945 /* Our second authentication response is based off of the crypto hash. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1946 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1947 cnt = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1948 memset(&digest1, 0, 20); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1949 memset(&digest2, 0, 20); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1950 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1951 for (x = 0; x < (int)strlen(crypt_hash); x++) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1952 crypt_hash_xor1[cnt++] = crypt_hash[x] ^ 0x36; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1953 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1954 if (cnt < 64) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1955 memset(&(crypt_hash_xor1[cnt]), 0x36, 64-cnt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1956 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1957 cnt = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1958 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1959 for (x = 0; x < (int)strlen(crypt_hash); x++) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1960 crypt_hash_xor2[cnt++] = crypt_hash[x] ^ 0x5c; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1961 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1962 if (cnt < 64) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1963 memset(&(crypt_hash_xor2[cnt]), 0x5c, 64-cnt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1964 |
15823 | 1965 purple_cipher_context_reset(sha1_ctx1, NULL); |
1966 purple_cipher_context_reset(sha1_ctx2, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1967 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1968 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1969 * The first context gets the password hash XORed with 0x36 plus a magic value |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1970 * which we previously extrapolated from our challenge. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1971 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1972 |
15823 | 1973 purple_cipher_context_append(sha1_ctx1, crypt_hash_xor1, 64); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1974 if (y >= 3) { |
15823 | 1975 purple_cipher_context_set_option(sha1_ctx1, "sizeLo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1976 GINT_TO_POINTER(0x1ff)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1977 } |
15823 | 1978 purple_cipher_context_append(sha1_ctx1, magic_key_char, 4); |
1979 purple_cipher_context_digest(sha1_ctx1, sizeof(digest1), digest1, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1980 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1981 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1982 * The second context gets the password hash XORed with 0x5c plus the SHA-1 digest |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1983 * of the first context. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1984 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1985 |
15823 | 1986 purple_cipher_context_append(sha1_ctx2, crypt_hash_xor2, 64); |
1987 purple_cipher_context_append(sha1_ctx2, digest1, 20); | |
1988 purple_cipher_context_digest(sha1_ctx2, sizeof(digest2), digest2, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1989 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1990 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1991 * Now that we have digest2, use it to fetch characters from an alphabet to construct |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1992 * our first authentication response. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1993 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1994 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1995 for (x = 0; x < 20; x += 2) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1996 unsigned int val = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1997 unsigned int lookup = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1998 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1999 char byte[6]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2000 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2001 memset(&byte, 0, 6); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2002 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2003 /* First two bytes of digest stuffed together. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2004 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2005 val = digest2[x]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2006 val <<= 8; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2007 val += digest2[x+1]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2008 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2009 lookup = (val >> 0x0b); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2010 lookup &= 0x1f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2011 if (lookup >= strlen(alphabet1)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2012 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2013 sprintf(byte, "%c", alphabet1[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2014 strcat(resp_96, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2015 strcat(resp_96, "="); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2016 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2017 lookup = (val >> 0x06); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2018 lookup &= 0x1f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2019 if (lookup >= strlen(alphabet2)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2020 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2021 sprintf(byte, "%c", alphabet2[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2022 strcat(resp_96, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2023 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2024 lookup = (val >> 0x01); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2025 lookup &= 0x1f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2026 if (lookup >= strlen(alphabet2)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2027 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2028 sprintf(byte, "%c", alphabet2[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2029 strcat(resp_96, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2030 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2031 lookup = (val & 0x01); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2032 if (lookup >= strlen(delimit_lookup)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2033 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2034 sprintf(byte, "%c", delimit_lookup[lookup]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2035 strcat(resp_96, byte); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2036 } |
15823 | 2037 purple_debug_info("yahoo", "yahoo status: %d\n", yd->current_status); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2038 pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, yd->current_status, 0); |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2039 |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2040 if(yd->jp) { |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2041 yahoo_packet_hash(pack, "sssss", |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2042 0, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2043 6, resp_6, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2044 96, resp_96, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2045 1, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2046 135, YAHOOJP_CLIENT_VERSION); |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2047 } else { |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2048 yahoo_packet_hash(pack, "ssssss", |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2049 0, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2050 6, resp_6, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2051 96, resp_96, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2052 1, name, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2053 244, YAHOO_CLIENT_VERSION_ID, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2054 135, YAHOO_CLIENT_VERSION); |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2055 } |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22245
diff
changeset
|
2056 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2057 if (yd->picture_checksum) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2058 yahoo_packet_hash_int(pack, 192, yd->picture_checksum); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2059 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2060 yahoo_packet_send_and_free(pack, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2061 |
15823 | 2062 purple_cipher_context_destroy(md5_ctx); |
2063 purple_cipher_context_destroy(sha1_ctx1); | |
2064 purple_cipher_context_destroy(sha1_ctx2); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2065 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2066 g_free(password_hash); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2067 g_free(crypt_hash); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2068 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2069 |
15823 | 2070 static void yahoo_process_auth(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2071 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2072 char *seed = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2073 char *sn = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2074 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2075 int m = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2076 gchar *buf; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2077 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2078 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2079 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2080 if (pair->key == 94) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2081 seed = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2082 if (pair->key == 1) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2083 sn = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2084 if (pair->key == 13) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2085 m = atoi(pair->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2086 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2087 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2088 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2089 if (seed) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2090 switch (m) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2091 case 0: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2092 yahoo_process_auth_old(gc, seed); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2093 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2094 case 1: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2095 case 2: /* This case seems to work, could probably use testing */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2096 yahoo_process_auth_new(gc, seed); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2097 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2098 default: |
23404
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2099 { |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2100 GHashTable *ui_info = purple_core_get_ui_info(); |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2101 |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2102 buf = g_strdup_printf(_("The Yahoo server has requested the use of an unrecognized " |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2103 "authentication method. You will probably not be able " |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2104 "to successfully sign on to Yahoo. Check %s for updates."), |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2105 ((ui_info && g_hash_table_lookup(ui_info, "website")) ? (char *)g_hash_table_lookup(ui_info, "website") : PURPLE_WEBSITE)); |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2106 purple_notify_error(gc, "", _("Failed Yahoo! Authentication"), |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2107 buf); |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2108 g_free(buf); |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2109 yahoo_process_auth_new(gc, seed); /* Can't hurt to try it anyway. */ |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2110 break; |
c6b29adc22d1
Added "website" and "dev_website" items to the ui_info GHashTable,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23401
diff
changeset
|
2111 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2112 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2113 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2114 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2115 |
15823 | 2116 static void ignore_buddy(PurpleBuddy *buddy) { |
2117 PurpleGroup *group; | |
2118 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2119 gchar *name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2120 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2121 if (!buddy) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2122 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2123 |
15823 | 2124 group = purple_buddy_get_group(buddy); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2125 name = g_strdup(buddy->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2126 account = buddy->account; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2127 |
15823 | 2128 purple_debug(PURPLE_DEBUG_INFO, "blist", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2129 "Removing '%s' from buddy list.\n", buddy->name); |
15823 | 2130 purple_account_remove_buddy(account, buddy, group); |
2131 purple_blist_remove_buddy(buddy); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2132 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2133 serv_add_deny(account->gc, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2134 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2135 g_free(name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2136 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2137 |
15823 | 2138 static void keep_buddy(PurpleBuddy *b) { |
2139 purple_privacy_deny_remove(b->account, b->name, 1); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2140 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2141 |
15823 | 2142 static void yahoo_process_ignore(PurpleConnection *gc, struct yahoo_packet *pkt) { |
2143 PurpleBuddy *b; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2144 GSList *l; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2145 gchar *who = NULL; |
22413
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2146 gchar *me = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2147 gchar buf[BUF_LONG]; |
22413
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2148 gboolean ignore = TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2149 gint status = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2150 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2151 for (l = pkt->hash; l; l = l->next) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2152 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2153 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2154 case 0: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2155 who = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2156 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2157 case 1: |
22413
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2158 me = pair->value; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2159 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2160 case 13: |
22413
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2161 /* 1 == ignore, 2 == unignore */ |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2162 ignore = (strtol(pair->value, NULL, 10) == 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2163 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2164 case 66: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2165 status = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2166 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2167 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2168 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2169 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2170 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2171 |
22413
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2172 /* |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2173 * status |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2174 * 0 - ok |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2175 * 2 - already in ignore list, could not add |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2176 * 3 - not in ignore list, could not delete |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2177 * 12 - is a buddy, could not add (and possibly also a not-in-ignore list condition?) |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2178 */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2179 switch (status) { |
22413
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2180 case 12: |
22414 | 2181 purple_debug_info("yahoo", "Server reported \"is a buddy\" for %s while %s", |
22413
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2182 who, (ignore ? "ignoring" : "unignoring")); |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2183 |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2184 if (ignore) { |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2185 b = purple_find_buddy(gc->account, who); |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2186 g_snprintf(buf, sizeof(buf), _("You have tried to ignore %s, but the " |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2187 "user is on your buddy list. Clicking \"Yes\" " |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2188 "will remove and ignore the buddy."), who); |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2189 purple_request_yes_no(gc, NULL, _("Ignore buddy?"), buf, 0, |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2190 gc->account, who, NULL, |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2191 b, |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2192 G_CALLBACK(ignore_buddy), |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2193 G_CALLBACK(keep_buddy)); |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2194 break; |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2195 } |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2196 case 2: |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2197 purple_debug_info("yahoo", "Server reported that %s is already in the ignore list.", |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2198 who); |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2199 break; |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2200 case 3: |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2201 purple_debug_info("yahoo", "Server reported that %s is not in the ignore list; could not delete", |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2202 who); |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2203 case 0: |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2204 default: |
288af4cb9884
Added some comments and debug logging to yahoo_process_ignore() gleaned from libyahoo2's implementation, from which I guess our prpl was forked (?) given how similar many functions are.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22406
diff
changeset
|
2205 break; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2206 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2207 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2208 |
15823 | 2209 static void yahoo_process_authresp(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2210 { |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
2211 #ifdef TRY_WEBMESSENGER_LOGIN |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2212 struct yahoo_data *yd = gc->proto_data; |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
2213 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2214 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2215 int err = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2216 char *msg; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2217 char *url = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2218 char *fullmsg; |
18650
648545b2c1f1
make us forget the password if the user didn't choose save password
Ka-Hing Cheung <khc@hxbc.us>
parents:
18642
diff
changeset
|
2219 PurpleAccount *account = gc->account; |
21425
cd4173014f50
Use PURPLE_CONNECTION_ERROR_INVALID_USERNAME in oscar and yahoo, which were
Will Thompson <will.thompson@collabora.co.uk>
parents:
21418
diff
changeset
|
2220 PurpleConnectionError reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2221 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2222 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2223 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2224 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2225 if (pair->key == 66) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2226 err = strtol(pair->value, NULL, 10); |
21537
9dbf38f270da
Fix #3421 by checking for an existing conversation in which to display a yahoo buzz.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21425
diff
changeset
|
2227 else if (pair->key == 20) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2228 url = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2229 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2230 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2231 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2232 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2233 switch (err) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2234 case 3: |
22770
cc8903c59d6b
Change the string "screen name" to "username" everywhere. I think most
Mark Doliner <mark@kingant.net>
parents:
22666
diff
changeset
|
2235 msg = g_strdup(_("Invalid username.")); |
21425
cd4173014f50
Use PURPLE_CONNECTION_ERROR_INVALID_USERNAME in oscar and yahoo, which were
Will Thompson <will.thompson@collabora.co.uk>
parents:
21418
diff
changeset
|
2236 reason = PURPLE_CONNECTION_ERROR_INVALID_USERNAME; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2237 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2238 case 13: |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
2239 #ifdef TRY_WEBMESSENGER_LOGIN |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2240 if (!yd->wm) { |
15823 | 2241 PurpleUtilFetchUrlData *url_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2242 yd->wm = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2243 if (yd->fd >= 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2244 close(yd->fd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2245 if (gc->inpa) |
15823 | 2246 purple_input_remove(gc->inpa); |
2247 url_data = purple_util_fetch_url(WEBMESSENGER_URL, TRUE, | |
2248 "Purple/" VERSION, FALSE, yahoo_login_page_cb, gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2249 if (url_data != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2250 yd->url_datas = g_slist_prepend(yd->url_datas, url_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2251 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2252 } |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
2253 #endif |
18650
648545b2c1f1
make us forget the password if the user didn't choose save password
Ka-Hing Cheung <khc@hxbc.us>
parents:
18642
diff
changeset
|
2254 if (!purple_account_get_remember_password(account)) |
648545b2c1f1
make us forget the password if the user didn't choose save password
Ka-Hing Cheung <khc@hxbc.us>
parents:
18642
diff
changeset
|
2255 purple_account_set_password(account, NULL); |
648545b2c1f1
make us forget the password if the user didn't choose save password
Ka-Hing Cheung <khc@hxbc.us>
parents:
18642
diff
changeset
|
2256 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2257 msg = g_strdup(_("Incorrect password.")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2258 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2259 case 14: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2260 msg = g_strdup(_("Your account is locked, please log in to the Yahoo! website.")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2261 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2262 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2263 msg = g_strdup_printf(_("Unknown error number %d. Logging into the Yahoo! website may fix this."), err); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2264 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2265 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2266 if (url) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2267 fullmsg = g_strdup_printf("%s\n%s", msg, url); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2268 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2269 fullmsg = g_strdup(msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2270 |
21425
cd4173014f50
Use PURPLE_CONNECTION_ERROR_INVALID_USERNAME in oscar and yahoo, which were
Will Thompson <will.thompson@collabora.co.uk>
parents:
21418
diff
changeset
|
2271 purple_connection_error_reason(gc, reason, fullmsg); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2272 g_free(msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2273 g_free(fullmsg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2274 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2275 |
15823 | 2276 static void yahoo_process_addbuddy(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2277 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2278 int err = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2279 char *who = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2280 char *group = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2281 char *decoded_group; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2282 char *buf; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2283 YahooFriend *f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2284 GSList *l = pkt->hash; |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2285 struct yahoo_data *yd = gc->proto_data; |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
2286 int protocol = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2287 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2288 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2289 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2290 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2291 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2292 case 66: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2293 err = strtol(pair->value, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2294 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2295 case 7: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2296 who = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2297 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2298 case 65: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2299 group = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2300 break; |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
2301 case 241: |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
2302 protocol = strtol(pair->value, NULL, 10); |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
2303 break; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2304 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2305 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2306 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2307 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2308 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2309 if (!who) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2310 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2311 if (!group) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2312 group = ""; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2313 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2314 if (!err || (err == 2)) { /* 0 = ok, 2 = already on serv list */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2315 f = yahoo_friend_find_or_new(gc, who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2316 yahoo_update_status(gc, who, f); |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
2317 if(protocol) |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
2318 f->protocol = protocol; |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
2319 |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2320 if( !g_hash_table_lookup(yd->peers, who) ) { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2321 /* we are not connected as client, so set friend to not connected */ |
25627
262ae5f56a9a
Better naming convention, prefix YAHOO_P2PSTATUS_ to values in the enum YahooP2PStatus
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25626
diff
changeset
|
2322 yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED); |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2323 f->p2p_packet_sent = 0; |
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2324 } |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2325 else /* we are already connected. set friend to YAHOO_P2PSTATUS_WE_ARE_CLIENT */ |
25627
262ae5f56a9a
Better naming convention, prefix YAHOO_P2PSTATUS_ to values in the enum YahooP2PStatus
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25626
diff
changeset
|
2326 yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_WE_ARE_CLIENT); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2327 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2328 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2329 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2330 decoded_group = yahoo_string_decode(gc, group, FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2331 buf = g_strdup_printf(_("Could not add buddy %s to group %s to the server list on account %s."), |
15823 | 2332 who, decoded_group, purple_connection_get_display_name(gc)); |
2333 if (!purple_conv_present_error(who, purple_connection_get_account(gc), buf)) | |
2334 purple_notify_error(gc, NULL, _("Could not add buddy to server list"), buf); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2335 g_free(buf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2336 g_free(decoded_group); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2337 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2338 |
26223
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2339 /* write pkt to the source */ |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2340 static void yahoo_p2p_write_pkt(gint source, struct yahoo_packet *pkt) |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2341 { |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2342 size_t pkt_len; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2343 guchar *raw_packet; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2344 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2345 /*build the raw packet and send it to the host*/ |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2346 pkt_len = yahoo_packet_build(pkt, 0, 0, 0, &raw_packet); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2347 if(write(source, raw_packet, pkt_len) != pkt_len) |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2348 purple_debug_warning("yahoo","p2p: couldn't write to the source\n"); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2349 g_free(raw_packet); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2350 } |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2351 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2352 static void yahoo_p2p_keepalive_cb(gpointer key, gpointer value, gpointer user_data) |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2353 { |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2354 struct yahoo_p2p_data *p2p_data = value; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2355 PurpleConnection *gc = user_data; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2356 struct yahoo_packet *pkt_to_send; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2357 PurpleAccount *account; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2358 struct yahoo_data *yd = gc->proto_data; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2359 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2360 account = purple_connection_get_account(gc); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2361 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2362 pkt_to_send = yahoo_packet_new(YAHOO_SERVICE_P2PFILEXFER, YAHOO_STATUS_AVAILABLE, yd->session_id); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2363 yahoo_packet_hash(pkt_to_send, "ssisi", |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2364 4, purple_normalize(account, purple_account_get_username(account)), |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2365 5, p2p_data->host_username, |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2366 241, 0, /* Protocol identifier */ |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2367 49, "PEERTOPEER", |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2368 13, 7); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2369 yahoo_p2p_write_pkt(p2p_data->source, pkt_to_send); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2370 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2371 yahoo_packet_free(pkt_to_send); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2372 } |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2373 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2374 static gboolean yahoo_p2p_keepalive(gpointer data) |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2375 { |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2376 PurpleConnection *gc = data; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2377 struct yahoo_data *yd = gc->proto_data; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2378 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2379 g_hash_table_foreach(yd->peers, yahoo_p2p_keepalive_cb, gc); |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2380 |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2381 return TRUE; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2382 } |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2383 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2384 /* destroy p2p_data associated with a peer and close p2p connection. |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2385 * g_hash_table_remove() calls this function to destroy p2p_data associated with the peer, |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2386 * call g_hash_table_remove() instead of this fucntion if peer has an entry in the table */ |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2387 static void yahoo_p2p_disconnect_destroy_data(gpointer data) |
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2388 { |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2389 struct yahoo_p2p_data *p2p_data; |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2390 YahooFriend *f; |
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2391 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2392 if(!(p2p_data = data)) |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2393 return ; |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2394 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2395 /* If friend, set him not connected */ |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2396 f = yahoo_friend_find(p2p_data->gc, p2p_data->host_username); |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2397 if (f) |
25627
262ae5f56a9a
Better naming convention, prefix YAHOO_P2PSTATUS_ to values in the enum YahooP2PStatus
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25626
diff
changeset
|
2398 yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_NOT_CONNECTED); |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2399 |
25626
7bd420b3edb7
if(p2p_data->source >= 0) in place of if(p2p_data->source)
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25621
diff
changeset
|
2400 if(p2p_data->source >= 0) |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2401 close(p2p_data->source); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2402 purple_input_remove(p2p_data->input_event); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2403 g_free(p2p_data->host_ip); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2404 g_free(p2p_data->host_username); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2405 g_free(p2p_data); |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2406 } |
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2407 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2408 /* exchange of initial p2pfilexfer packets, service type YAHOO_SERVICE_P2PFILEXFER */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2409 static void yahoo_p2p_process_p2pfilexfer(gpointer data, gint source, struct yahoo_packet *pkt) |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2410 { |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2411 struct yahoo_p2p_data *p2p_data; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2412 char *who = NULL; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2413 GSList *l = pkt->hash; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2414 struct yahoo_packet *pkt_to_send; |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2415 PurpleAccount *account; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2416 int val_13_to_send = 0; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2417 struct yahoo_data *yd; |
26221
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2418 YahooFriend *f; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2419 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2420 if(!(p2p_data = data)) |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2421 return ; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2422 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2423 yd = p2p_data->gc->proto_data; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2424 |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2425 /* lets see whats in the packet */ |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2426 while (l) { |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2427 struct yahoo_pair *pair = l->data; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2428 |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2429 switch (pair->key) { |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2430 case 4: |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2431 who = pair->value; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2432 if(strncmp(who, p2p_data->host_username, strlen(p2p_data->host_username)) != 0) { |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2433 /* from whom are we receiving the packets ?? */ |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2434 purple_debug_warning("yahoo","p2p: received data from wrong user\n"); |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2435 return; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2436 } |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2437 break; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2438 case 13: |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2439 p2p_data->val_13 = strtol(pair->value, NULL, 10); /* Value should be 5-7 */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2440 break; |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2441 /* case 5, 49 look laters, no use right now */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2442 } |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2443 l = l->next; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2444 } |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2445 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2446 account = purple_connection_get_account(p2p_data->gc); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2447 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2448 /* key_13: sort of a counter. |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2449 * WHEN WE ARE CLIENT: yahoo server sends val_13 = 0, we send to peer val_13 = 1, receive back val_13 = 5, |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2450 * we send val_13=6, receive val_13=7, we send val_13=7, HALT. Keep sending val_13 = 7 as keep alive. |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2451 * WHEN WE ARE SERVER: we send val_13 = 0 to yahoo server, peer sends us val_13 = 1, we send val_13 = 5, |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2452 * receive val_13 = 6, send val_13 = 7, receive val_13 = 7. HALT. Keep sending val_13 = 7 as keep alive. */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2453 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2454 switch(p2p_data->val_13) { |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2455 case 1 : val_13_to_send = 5; break; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2456 case 5 : val_13_to_send = 6; break; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2457 case 6 : val_13_to_send = 7; break; |
26223
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2458 case 7 : if( g_hash_table_lookup(yd->peers, p2p_data->host_username) ) |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2459 return; |
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
2460 val_13_to_send = 7; break; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2461 default: purple_debug_warning("yahoo","p2p:Unknown value for key 13\n"); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2462 return; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2463 } |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2464 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2465 /* Build the yahoo packet */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2466 pkt_to_send = yahoo_packet_new(YAHOO_SERVICE_P2PFILEXFER, YAHOO_STATUS_AVAILABLE, yd->session_id); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2467 yahoo_packet_hash(pkt_to_send, "ssisi", |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2468 4, purple_normalize(account, purple_account_get_username(account)), |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2469 5, p2p_data->host_username, |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2470 241, 0, /* Protocol identifier */ |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2471 49, "PEERTOPEER", |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2472 13, val_13_to_send); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2473 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2474 /* build the raw packet and send it to the host */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2475 yahoo_p2p_write_pkt(source, pkt_to_send); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2476 yahoo_packet_free(pkt_to_send); |
26221
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2477 |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2478 if( val_13_to_send == 7 ) |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2479 if( !g_hash_table_lookup(yd->peers, p2p_data->host_username) ) { |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2480 g_hash_table_insert(yd->peers, g_strdup(p2p_data->host_username), p2p_data); |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2481 /* If the peer is a friend, set him connected */ |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2482 f = yahoo_friend_find(p2p_data->gc, p2p_data->host_username); |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2483 if (f) { |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2484 if(p2p_data->connection_type == YAHOO_P2P_WE_ARE_SERVER) { |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2485 p2p_data->session_id = f->session_id; |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2486 yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_WE_ARE_SERVER); |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2487 } |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2488 else |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2489 yahoo_friend_set_p2p_status(f, YAHOO_P2PSTATUS_WE_ARE_CLIENT); |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2490 } |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2491 } |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2492 } |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2493 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2494 /* callback function associated with receiving of data, not considering receipt of multiple YMSG packets in a single TCP packet */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2495 static void yahoo_p2p_read_pkt_cb(gpointer data, gint source, PurpleInputCondition cond) |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2496 { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2497 guchar buf[1024]; /* is it safe to assume a fixed array length of 1024 ?? */ |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2498 int len; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2499 int pos = 0; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2500 int pktlen; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2501 struct yahoo_packet *pkt; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2502 guchar *start = NULL; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2503 struct yahoo_p2p_data *p2p_data; |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2504 struct yahoo_data *yd; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2505 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2506 if(!(p2p_data = data)) |
25572
11e2d8a878b0
Close p2p connection when read() does not return anything.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25570
diff
changeset
|
2507 return ; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2508 yd = p2p_data->gc->proto_data; |
25572
11e2d8a878b0
Close p2p connection when read() does not return anything.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25570
diff
changeset
|
2509 |
25573
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2510 len = read(source, buf, sizeof(buf)); |
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2511 if ((len < 0) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) |
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2512 return ; /* No Worries*/ |
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2513 else if (len <= 0) |
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2514 { |
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2515 purple_debug_warning("yahoo","p2p: Error in connection, or host disconnected\n"); |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2516 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ |
26221
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2517 if( g_hash_table_lookup(yd->peers, p2p_data->host_username) ) |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2518 g_hash_table_remove(yd->peers,p2p_data->host_username); |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2519 else |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2520 yahoo_p2p_disconnect_destroy_data(data); |
25573
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2521 return; |
25572
11e2d8a878b0
Close p2p connection when read() does not return anything.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25570
diff
changeset
|
2522 } |
25573
f1de4ccc433e
Proper error handling for p2p connections
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25572
diff
changeset
|
2523 |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2524 if(len < YAHOO_PACKET_HDRLEN) |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2525 return; |
25572
11e2d8a878b0
Close p2p connection when read() does not return anything.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25570
diff
changeset
|
2526 |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2527 if(strncmp((char *)buf, "YMSG", MIN(4, len)) != 0) { |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2528 /* Not a YMSG packet */ |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2529 purple_debug_warning("yahoo","p2p: Got something other than YMSG packet\n"); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2530 |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2531 start = memchr(buf + 1, 'Y', len - 1); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2532 if(start) { |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2533 g_memmove(buf, start, len - (start - buf)); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2534 len -= start - buf; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2535 } else { |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2536 g_free(buf); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2537 return; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2538 } |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2539 } |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2540 |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2541 pos += 4; /* YMSG */ |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2542 pos += 2; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2543 pos += 2; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2544 |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2545 pktlen = yahoo_get16(buf + pos); pos += 2; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2546 purple_debug(PURPLE_DEBUG_MISC, "yahoo", "p2p: %d bytes to read\n", len); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2547 |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2548 pkt = yahoo_packet_new(0, 0, 0); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2549 pkt->service = yahoo_get16(buf + pos); pos += 2; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2550 pkt->status = yahoo_get32(buf + pos); pos += 4; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2551 pkt->id = yahoo_get32(buf + pos); pos += 4; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2552 |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2553 purple_debug(PURPLE_DEBUG_MISC, "yahoo", "p2p: Yahoo Service: 0x%02x Status: %d\n",pkt->service, pkt->status); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2554 yahoo_packet_read(pkt, buf + pos, pktlen); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2555 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2556 /* packet processing */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2557 switch(pkt->service) { |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2558 case YAHOO_SERVICE_P2PFILEXFER: |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2559 yahoo_p2p_process_p2pfilexfer(data, source, pkt); |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2560 break; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2561 case YAHOO_SERVICE_MESSAGE: |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
2562 yahoo_process_message(p2p_data->gc, pkt, YAHOO_PKT_TYPE_P2P); |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2563 break; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2564 case YAHOO_SERVICE_NOTIFY: |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
2565 yahoo_process_notify(p2p_data->gc, pkt, YAHOO_PKT_TYPE_P2P); |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2566 break; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2567 default: |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2568 purple_debug_warning("yahoo","p2p: p2p service %d Unhandled\n",pkt->service); |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2569 } |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2570 |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2571 yahoo_packet_free(pkt); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2572 } |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2573 |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2574 static void yahoo_p2p_server_send_connected_cb(gpointer data, gint source, PurpleInputCondition cond) |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2575 { |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2576 int acceptfd; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2577 struct yahoo_p2p_data *p2p_data; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2578 struct yahoo_data *yd; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2579 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2580 if(!(p2p_data = data)) |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2581 return ; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2582 yd = p2p_data->gc->proto_data; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2583 |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2584 acceptfd = accept(source, NULL, 0); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2585 if(acceptfd == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2586 return; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2587 else if(acceptfd == -1) { |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2588 purple_debug_warning("yahoo","yahoo_p2p_server_send_connected_cb: accept: %s\n", g_strerror(errno)); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2589 yahoo_p2p_disconnect_destroy_data(data); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2590 return; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2591 } |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2592 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2593 /* remove watcher and close p2p server */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2594 purple_input_remove(yd->yahoo_p2p_server_watcher); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2595 close(yd->yahoo_local_p2p_server_fd); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2596 yd->yahoo_local_p2p_server_fd = -1; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2597 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2598 /* Add an Input Read event to the file descriptor */ |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2599 p2p_data->input_event = purple_input_add(acceptfd, PURPLE_INPUT_READ, yahoo_p2p_read_pkt_cb, data); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2600 p2p_data->source = acceptfd; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2601 } |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2602 |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2603 static void yahoo_p2p_server_listen_cb(int listenfd, gpointer data) |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2604 { |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2605 struct yahoo_p2p_data *p2p_data; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2606 struct yahoo_data *yd; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2607 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2608 if(!(p2p_data = data)) |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2609 return ; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2610 |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2611 if(listenfd == -1) { |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2612 purple_debug_warning("yahoo","p2p: error starting p2p server\n"); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2613 yahoo_p2p_disconnect_destroy_data(data); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2614 return; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2615 } |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2616 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2617 yd = p2p_data->gc->proto_data; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2618 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2619 /* Add an Input Read event to the file descriptor */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2620 yd->yahoo_local_p2p_server_fd = listenfd; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2621 yd->yahoo_p2p_server_watcher = purple_input_add(listenfd, PURPLE_INPUT_READ, yahoo_p2p_server_send_connected_cb,data); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2622 } |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2623 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2624 /* send p2p pkt containing our encoded ip, asking peer to connect to us */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2625 static void yahoo_send_p2p_pkt(PurpleConnection *gc, const char *who, int val_13) |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2626 { |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2627 const char *public_ip; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2628 guint32 temp[4]; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2629 guint32 ip; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2630 char temp_str[100]; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2631 gchar *base64_ip = NULL; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2632 YahooFriend *f; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2633 struct yahoo_packet *pkt; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2634 PurpleAccount *account; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2635 struct yahoo_data *yd = gc->proto_data; |
26221
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2636 struct yahoo_p2p_data *p2p_data; |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2637 |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2638 f = yahoo_friend_find(gc, who); |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2639 account = purple_connection_get_account(gc); |
26222
c031f88aa026
Fix a bug, which results in trying to setup a p2p connection to self
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26221
diff
changeset
|
2640 |
c031f88aa026
Fix a bug, which results in trying to setup a p2p connection to self
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26221
diff
changeset
|
2641 /* One shouldn't try to connect to self */ |
c031f88aa026
Fix a bug, which results in trying to setup a p2p connection to self
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26221
diff
changeset
|
2642 if( strcmp(purple_normalize(account, purple_account_get_username(account)), who) == 0) |
c031f88aa026
Fix a bug, which results in trying to setup a p2p connection to self
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26221
diff
changeset
|
2643 return; |
c031f88aa026
Fix a bug, which results in trying to setup a p2p connection to self
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26221
diff
changeset
|
2644 |
26221
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2645 /* send packet to only those friends who arent p2p connected and to whom we havent already sent. Do not send if this condition doesn't hold good */ |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2646 if( !( f && (yahoo_friend_get_p2p_status(f) == YAHOO_P2PSTATUS_NOT_CONNECTED) && (f->p2p_packet_sent == 0)) ) |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2647 return; |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2648 |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2649 public_ip = purple_network_get_public_ip(); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2650 if( (sscanf(public_ip, "%u.%u.%u.%u", &temp[0], &temp[1], &temp[2], &temp[3])) !=4 ) |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2651 return ; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2652 |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2653 ip = (temp[3] << 24) | (temp[2] <<16) | (temp[1] << 8) | temp[0]; |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2654 sprintf(temp_str, "%d", ip); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2655 base64_ip = purple_base64_encode( (guchar *)temp_str, strlen(temp_str) ); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2656 |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2657 pkt = yahoo_packet_new(YAHOO_SERVICE_PEERTOPEER, YAHOO_STATUS_AVAILABLE, 0); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2658 yahoo_packet_hash(pkt, "sssissis", |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2659 1, purple_normalize(account, purple_account_get_username(account)), |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2660 4, purple_normalize(account, purple_account_get_username(account)), |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2661 12, base64_ip, /* base64 encode ip */ |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2662 61, 0, /* To-do : figure out what is 61 for?? */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2663 2, "", |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2664 5, who, |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2665 13, val_13, |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2666 49, "PEERTOPEER"); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2667 yahoo_packet_send_and_free(pkt, yd); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2668 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2669 f->p2p_packet_sent = 1; /* set p2p_packet_sent to sent */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2670 |
26221
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2671 p2p_data = g_new0(struct yahoo_p2p_data, 1); |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2672 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2673 p2p_data->gc = gc; |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2674 p2p_data->host_ip = NULL; |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2675 p2p_data->host_username = (char *)g_malloc(strlen(who)); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2676 strcpy(p2p_data->host_username, who); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2677 p2p_data->val_13 = val_13; |
25629
38d188685f2f
changed gboolean connection_type to enum yahoo_p2p_connection_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25628
diff
changeset
|
2678 p2p_data->connection_type = YAHOO_P2P_WE_ARE_SERVER; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2679 |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2680 purple_network_listen(YAHOO_PAGER_PORT_P2P, SOCK_STREAM, yahoo_p2p_server_listen_cb, p2p_data); |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2681 |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2682 g_free(base64_ip); |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2683 } |
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2684 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2685 /* function called when connection to p2p host is setup */ |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2686 static void yahoo_p2p_init_cb(gpointer data, gint source, const gchar *error_message) |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2687 { |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2688 struct yahoo_p2p_data *p2p_data; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2689 struct yahoo_packet *pkt_to_send; |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2690 PurpleAccount *account; |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2691 struct yahoo_data *yd; |
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2692 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2693 if(!(p2p_data = data)) |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2694 return ; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2695 yd = p2p_data->gc->proto_data; |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2696 |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2697 if(error_message != NULL) { |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2698 purple_debug_warning("yahoo","p2p: %s\n",error_message); |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2699 yahoo_send_p2p_pkt(p2p_data->gc, p2p_data->host_username, 2);/* send p2p init packet with val_13=2 */ |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2700 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2701 yahoo_p2p_disconnect_destroy_data(p2p_data); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2702 return; |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2703 } |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2704 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2705 /* Add an Input Read event to the file descriptor */ |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2706 p2p_data->input_event = purple_input_add(source, PURPLE_INPUT_READ, yahoo_p2p_read_pkt_cb, data); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2707 p2p_data->source = source; |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2708 |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2709 account = purple_connection_get_account(p2p_data->gc); |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2710 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2711 /* Build the yahoo packet */ |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2712 pkt_to_send = yahoo_packet_new(YAHOO_SERVICE_P2PFILEXFER, YAHOO_STATUS_AVAILABLE, yd->session_id); |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2713 yahoo_packet_hash(pkt_to_send, "ssisi", |
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2714 4, purple_normalize(account, purple_account_get_username(account)), |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2715 5, p2p_data->host_username, |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2716 241, 0, /* Protocol identifier */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2717 49, "PEERTOPEER", |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2718 13, 1); /* we receive key13= 0 or 2, we send key13=1 */ |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2719 |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2720 yahoo_p2p_write_pkt(source, pkt_to_send); /* build raw packet and send */ |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2721 yahoo_packet_free(pkt_to_send); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2722 } |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2723 |
15823 | 2724 static void yahoo_process_p2p(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2725 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2726 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2727 char *who = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2728 char *base64 = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2729 guchar *decoded; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2730 gsize len; |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2731 gint val_13 = 0; |
25618
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2732 gint val_11 = 0; |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2733 PurpleAccount *account; |
25618
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2734 YahooFriend *f; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2735 |
26221
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2736 /* if status is YAHOO_STATUS_BUSY, don't do anything, peer wont connect */ |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2737 if(pkt->status == YAHOO_STATUS_BUSY) |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2738 return ; |
1cf212ba3926
Remove some bugs related to inserting some data into hash table, data for connected peers
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26218
diff
changeset
|
2739 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2740 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2741 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2742 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2743 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2744 case 5: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2745 /* our identity */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2746 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2747 case 4: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2748 who = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2749 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2750 case 1: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2751 /* who again, the master identity this time? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2752 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2753 case 12: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2754 base64 = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2755 /* so, this is an ip address. in base64. decoded it's in ascii. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2756 after strtol, it's in reversed byte order. Who thought this up?*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2757 break; |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2758 case 13: |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
2759 val_13 = strtol(pair->value, NULL, 10); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2760 break; |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2761 case 11: |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2762 val_11 = strtol(pair->value, NULL, 10); /* session id of peer */ |
25618
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2763 if( (f = yahoo_friend_find(gc, who)) ) |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
2764 f->session_id = val_11; |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
2765 break; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2766 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2767 TODO: figure these out |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2768 yahoo: Key: 61 Value: 0 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2769 yahoo: Key: 2 Value: |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2770 yahoo: Key: 13 Value: 0 packet count ?? |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2771 yahoo: Key: 49 Value: PEERTOPEER |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2772 yahoo: Key: 140 Value: 1 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2773 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2774 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2775 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2776 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2777 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2778 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2779 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2780 if (base64) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2781 guint32 ip; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2782 char *tmp2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2783 YahooFriend *f; |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2784 char *host_ip; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2785 struct yahoo_p2p_data *p2p_data = g_new0(struct yahoo_p2p_data, 1); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2786 |
15823 | 2787 decoded = purple_base64_decode(base64, &len); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2788 if (len) { |
15823 | 2789 char *tmp = purple_str_binary_to_ascii(decoded, len); |
2790 purple_debug_info("yahoo", "Got P2P service packet (from server): who = %s, ip = %s\n", who, tmp); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2791 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2792 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2793 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2794 tmp2 = g_strndup((const gchar *)decoded, len); /* so its \0 terminated...*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2795 ip = strtol(tmp2, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2796 g_free(tmp2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2797 g_free(decoded); |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2798 host_ip = g_strdup_printf("%u.%u.%u.%u", ip & 0xff, (ip >> 8) & 0xff, (ip >> 16) & 0xff, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2799 (ip >> 24) & 0xff); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2800 f = yahoo_friend_find(gc, who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2801 if (f) |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2802 yahoo_friend_set_ip(f, host_ip); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2803 purple_debug_info("yahoo", "IP : %s\n", host_ip); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2804 |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2805 account = purple_connection_get_account(gc); |
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2806 |
25618
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2807 if(val_11==0) { |
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2808 if(!f) |
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2809 return; |
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2810 else |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
2811 val_11 = f->session_id; |
25618
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2812 } |
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
2813 |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2814 p2p_data->host_username = (char *)g_malloc(strlen(who)); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2815 strcpy(p2p_data->host_username, who); |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2816 p2p_data->val_13 = val_13; |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
2817 p2p_data->session_id = val_11; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2818 p2p_data->host_ip = host_ip; |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2819 p2p_data->gc = gc; |
25629
38d188685f2f
changed gboolean connection_type to enum yahoo_p2p_connection_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25628
diff
changeset
|
2820 p2p_data->connection_type = YAHOO_P2P_WE_ARE_CLIENT; |
25568
afb1b5f1dc84
Implementation of initial exchange of p2pxfer packets that initiates p2p file transfer. Some connection
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25566
diff
changeset
|
2821 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2822 /* connect to host */ |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2823 if((purple_proxy_connect(NULL, account, host_ip, YAHOO_PAGER_PORT_P2P, yahoo_p2p_init_cb, p2p_data))==NULL) { |
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
2824 yahoo_p2p_disconnect_destroy_data(p2p_data); |
25569
9b16249bfbe6
Support for YAHOO_PROCESS_MESSAGE and YAHOO_PROCESS_NOTIFY over p2p links.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25568
diff
changeset
|
2825 purple_debug_info("yahoo","p2p: Connection to %s failed\n", host_ip); |
25619
048a53891afd
Act as a YMSG server on port 5101 for IMs and Notifications
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25618
diff
changeset
|
2826 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2827 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2828 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2829 |
15823 | 2830 static void yahoo_process_audible(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2831 { |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
2832 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2833 char *who = NULL, *msg = NULL, *id = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2834 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2835 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
2836 account = purple_connection_get_account(gc); |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
2837 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2838 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2839 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2840 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2841 switch (pair->key) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2842 case 4: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2843 who = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2844 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2845 case 5: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2846 /* us */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2847 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2848 case 230: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2849 /* the audible, in foo.locale.bar.baz format |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2850 eg: base.tw.smiley.smiley43 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2851 id = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2852 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2853 case 231: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2854 /* the text of the audible */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2855 msg = pair->value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2856 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2857 case 232: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2858 /* weird number (md5 hash?), like 8ebab9094156135f5dcbaccbeee662a5c5fd1420 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2859 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2860 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2861 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2862 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2863 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2864 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2865 if (!msg) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2866 msg = id; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2867 if (!who || !msg) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2868 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2869 if (!g_utf8_validate(msg, -1, NULL)) { |
15823 | 2870 purple_debug_misc("yahoo", "Warning, nonutf8 audible, ignoring!\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2871 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2872 } |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
2873 if (!purple_privacy_check(account, who)) { |
15823 | 2874 purple_debug_misc("yahoo", "Audible message from %s for %s dropped!\n", |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
2875 purple_account_get_username(account), who); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2876 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2877 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2878 if (id) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2879 /* "http://us.dl1.yimg.com/download.yahoo.com/dl/aud/"+locale+"/"+id+".swf" */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2880 char **audible_locale = g_strsplit(id, ".", 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2881 char *buf = g_strdup_printf(_("[ Audible %s/%s/%s.swf ] %s"), YAHOO_AUDIBLE_URL, audible_locale[1], id, msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2882 g_strfreev(audible_locale); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2883 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2884 serv_got_im(gc, who, buf, 0, time(NULL)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2885 g_free(buf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2886 } else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2887 serv_got_im(gc, who, msg, 0, time(NULL)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2888 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2889 |
15823 | 2890 static void yahoo_packet_process(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2891 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2892 switch (pkt->service) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2893 case YAHOO_SERVICE_LOGON: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2894 case YAHOO_SERVICE_LOGOFF: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2895 case YAHOO_SERVICE_ISAWAY: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2896 case YAHOO_SERVICE_ISBACK: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2897 case YAHOO_SERVICE_GAMELOGON: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2898 case YAHOO_SERVICE_GAMELOGOFF: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2899 case YAHOO_SERVICE_CHATLOGON: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2900 case YAHOO_SERVICE_CHATLOGOFF: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2901 case YAHOO_SERVICE_Y6_STATUS_UPDATE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2902 case YAHOO_SERVICE_STATUS_15: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2903 yahoo_process_status(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2904 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2905 case YAHOO_SERVICE_NOTIFY: |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
2906 yahoo_process_notify(gc, pkt, YAHOO_PKT_TYPE_SERVER); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2907 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2908 case YAHOO_SERVICE_MESSAGE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2909 case YAHOO_SERVICE_GAMEMSG: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2910 case YAHOO_SERVICE_CHATMSG: |
25628
c3c5e79b4ecc
changed PKT_YAHOOSERVER and PKT_P2P, into enum yahoo_pkt_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25627
diff
changeset
|
2911 yahoo_process_message(gc, pkt, YAHOO_PKT_TYPE_SERVER); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2912 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2913 case YAHOO_SERVICE_SYSMESSAGE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2914 yahoo_process_sysmessage(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2915 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2916 case YAHOO_SERVICE_NEWMAIL: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2917 yahoo_process_mail(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2918 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2919 case YAHOO_SERVICE_NEWCONTACT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2920 yahoo_process_contact(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2921 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2922 case YAHOO_SERVICE_AUTHRESP: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2923 yahoo_process_authresp(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2924 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2925 case YAHOO_SERVICE_LIST: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2926 yahoo_process_list(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2927 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2928 case YAHOO_SERVICE_LIST_15: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2929 yahoo_process_list_15(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2930 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2931 case YAHOO_SERVICE_AUTH: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2932 yahoo_process_auth(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2933 break; |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
2934 case YAHOO_SERVICE_AUTH_REQ_15: |
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
2935 yahoo_buddy_auth_req_15(gc, pkt); |
19358
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
2936 break; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2937 case YAHOO_SERVICE_ADDBUDDY: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2938 yahoo_process_addbuddy(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2939 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2940 case YAHOO_SERVICE_IGNORECONTACT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2941 yahoo_process_ignore(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2942 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2943 case YAHOO_SERVICE_CONFINVITE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2944 case YAHOO_SERVICE_CONFADDINVITE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2945 yahoo_process_conference_invite(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2946 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2947 case YAHOO_SERVICE_CONFDECLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2948 yahoo_process_conference_decline(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2949 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2950 case YAHOO_SERVICE_CONFLOGON: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2951 yahoo_process_conference_logon(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2952 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2953 case YAHOO_SERVICE_CONFLOGOFF: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2954 yahoo_process_conference_logoff(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2955 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2956 case YAHOO_SERVICE_CONFMSG: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2957 yahoo_process_conference_message(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2958 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2959 case YAHOO_SERVICE_CHATONLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2960 yahoo_process_chat_online(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2961 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2962 case YAHOO_SERVICE_CHATLOGOUT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2963 yahoo_process_chat_logout(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2964 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2965 case YAHOO_SERVICE_CHATGOTO: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2966 yahoo_process_chat_goto(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2967 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2968 case YAHOO_SERVICE_CHATJOIN: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2969 yahoo_process_chat_join(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2970 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2971 case YAHOO_SERVICE_CHATLEAVE: /* XXX is this right? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2972 case YAHOO_SERVICE_CHATEXIT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2973 yahoo_process_chat_exit(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2974 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2975 case YAHOO_SERVICE_CHATINVITE: /* XXX never seen this one, might not do it right */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2976 case YAHOO_SERVICE_CHATADDINVITE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2977 yahoo_process_chat_addinvite(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2978 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2979 case YAHOO_SERVICE_COMMENT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2980 yahoo_process_chat_message(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2981 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2982 case YAHOO_SERVICE_PRESENCE_PERM: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2983 case YAHOO_SERVICE_PRESENCE_SESSION: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2984 yahoo_process_presence(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2985 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2986 case YAHOO_SERVICE_P2PFILEXFER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2987 /* This case had no break and continued; thus keeping it this way.*/ |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2988 yahoo_process_p2p(gc, pkt); /* P2PFILEXFER handled the same way as process_p2p */ |
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
2989 yahoo_process_p2pfilexfer(gc, pkt); /* redundant ??, need to have a break now */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2990 case YAHOO_SERVICE_FILETRANSFER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2991 yahoo_process_filetransfer(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2992 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2993 case YAHOO_SERVICE_PEERTOPEER: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2994 yahoo_process_p2p(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2995 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2996 case YAHOO_SERVICE_PICTURE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2997 yahoo_process_picture(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2998 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2999 case YAHOO_SERVICE_PICTURE_UPDATE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3000 yahoo_process_picture_update(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3001 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3002 case YAHOO_SERVICE_PICTURE_CHECKSUM: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3003 yahoo_process_picture_checksum(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3004 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3005 case YAHOO_SERVICE_PICTURE_UPLOAD: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3006 yahoo_process_picture_upload(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3007 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3008 case YAHOO_SERVICE_AVATAR_UPDATE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3009 yahoo_process_avatar_update(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3010 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3011 case YAHOO_SERVICE_AUDIBLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3012 yahoo_process_audible(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3013 break; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3014 case YAHOO_SERVICE_FILETRANS_15: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3015 yahoo_process_filetrans_15(gc, pkt); |
21803
ffbd2e3e10e4
Patch from Alex Badea to support receiving files from Yahoo users using the newer yahoo protocol. Committing this is very long overdue, it somehow slipped through the cracks for a long time. References #708.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21801
diff
changeset
|
3016 break; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3017 case YAHOO_SERVICE_FILETRANS_INFO_15: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3018 yahoo_process_filetrans_info_15(gc, pkt); |
21803
ffbd2e3e10e4
Patch from Alex Badea to support receiving files from Yahoo users using the newer yahoo protocol. Committing this is very long overdue, it somehow slipped through the cracks for a long time. References #708.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
21801
diff
changeset
|
3019 break; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3020 case YAHOO_SERVICE_FILETRANS_ACC_15: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3021 yahoo_process_filetrans_acc_15(gc, pkt); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3022 break; |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
3023 case YAHOO_SERVICE_SMS_MSG: |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
3024 yahoo_process_sms_message(gc, pkt); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
3025 break; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3026 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3027 default: |
15823 | 3028 purple_debug(PURPLE_DEBUG_ERROR, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3029 "Unhandled service 0x%02x\n", pkt->service); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3030 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3031 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3032 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3033 |
15823 | 3034 static void yahoo_pending(gpointer data, gint source, PurpleInputCondition cond) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3035 { |
15823 | 3036 PurpleConnection *gc = data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3037 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3038 char buf[1024]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3039 int len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3040 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3041 len = read(yd->fd, buf, sizeof(buf)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3042 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3043 if (len < 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3044 gchar *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3045 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3046 if (errno == EAGAIN) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3047 /* No worries */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3048 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3049 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3050 tmp = g_strdup_printf(_("Lost connection with server:\n%s"), |
21121
35b4f1dc4c8d
replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents:
21030
diff
changeset
|
3051 g_strerror(errno)); |
21358 | 3052 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3053 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3054 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3055 } else if (len == 0) { |
21358 | 3056 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3057 _("Server closed the connection.")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3058 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3059 } |
22149
252b96b6a32c
Don't send keep-alives if we've received data since in the last KEEPALIVE_INTERVAL seconds
Sean Egan <seanegan@gmail.com>
parents:
22097
diff
changeset
|
3060 gc->last_received = time(NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3061 yd->rxqueue = g_realloc(yd->rxqueue, len + yd->rxlen); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3062 memcpy(yd->rxqueue + yd->rxlen, buf, len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3063 yd->rxlen += len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3064 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3065 while (1) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3066 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3067 int pos = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3068 int pktlen; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3069 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3070 if (yd->rxlen < YAHOO_PACKET_HDRLEN) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3071 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3072 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3073 if (strncmp((char *)yd->rxqueue, "YMSG", MIN(4, yd->rxlen)) != 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3074 /* HEY! This isn't even a YMSG packet. What |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3075 * are you trying to pull? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3076 guchar *start; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3077 |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3078 purple_debug_warning("yahoo", "Error in YMSG stream, got something not a YMSG packet!\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3079 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3080 start = memchr(yd->rxqueue + 1, 'Y', yd->rxlen - 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3081 if (start) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3082 g_memmove(yd->rxqueue, start, yd->rxlen - (start - yd->rxqueue)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3083 yd->rxlen -= start - yd->rxqueue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3084 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3085 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3086 g_free(yd->rxqueue); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3087 yd->rxqueue = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3088 yd->rxlen = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3089 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3090 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3091 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3092 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3093 pos += 4; /* YMSG */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3094 pos += 2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3095 pos += 2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3096 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3097 pktlen = yahoo_get16(yd->rxqueue + pos); pos += 2; |
15823 | 3098 purple_debug(PURPLE_DEBUG_MISC, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3099 "%d bytes to read, rxlen is %d\n", pktlen, yd->rxlen); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3100 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3101 if (yd->rxlen < (YAHOO_PACKET_HDRLEN + pktlen)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3102 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3103 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3104 yahoo_packet_dump(yd->rxqueue, YAHOO_PACKET_HDRLEN + pktlen); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3105 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3106 pkt = yahoo_packet_new(0, 0, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3107 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3108 pkt->service = yahoo_get16(yd->rxqueue + pos); pos += 2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3109 pkt->status = yahoo_get32(yd->rxqueue + pos); pos += 4; |
15823 | 3110 purple_debug(PURPLE_DEBUG_MISC, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3111 "Yahoo Service: 0x%02x Status: %d\n", |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3112 pkt->service, pkt->status); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3113 pkt->id = yahoo_get32(yd->rxqueue + pos); pos += 4; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3114 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3115 yahoo_packet_read(pkt, yd->rxqueue + pos, pktlen); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3116 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3117 yd->rxlen -= YAHOO_PACKET_HDRLEN + pktlen; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3118 if (yd->rxlen) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3119 guchar *tmp = g_memdup(yd->rxqueue + YAHOO_PACKET_HDRLEN + pktlen, yd->rxlen); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3120 g_free(yd->rxqueue); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3121 yd->rxqueue = tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3122 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3123 g_free(yd->rxqueue); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3124 yd->rxqueue = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3125 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3126 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3127 yahoo_packet_process(gc, pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3128 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3129 yahoo_packet_free(pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3130 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3131 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3132 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3133 static void yahoo_got_connected(gpointer data, gint source, const gchar *error_message) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3134 { |
15823 | 3135 PurpleConnection *gc = data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3136 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3137 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3138 |
15823 | 3139 if (!PURPLE_CONNECTION_IS_VALID(gc)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3140 close(source); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3141 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3142 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3143 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3144 if (source < 0) { |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3145 gchar *tmp; |
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3146 tmp = g_strdup_printf(_("Could not establish a connection with the server:\n%s"), |
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3147 error_message); |
21358 | 3148 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3149 g_free(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3150 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3151 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3152 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3153 yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3154 yd->fd = source; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3155 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3156 pkt = yahoo_packet_new(YAHOO_SERVICE_AUTH, yd->current_status, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3157 |
15823 | 3158 yahoo_packet_hash_str(pkt, 1, purple_normalize(gc->account, purple_account_get_username(purple_connection_get_account(gc)))); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3159 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3160 |
15823 | 3161 gc->inpa = purple_input_add(yd->fd, PURPLE_INPUT_READ, yahoo_pending, gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3162 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3163 |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
3164 #ifdef TRY_WEBMESSENGER_LOGIN |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3165 static void yahoo_got_web_connected(gpointer data, gint source, const gchar *error_message) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3166 { |
15823 | 3167 PurpleConnection *gc = data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3168 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3169 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3170 |
15823 | 3171 if (!PURPLE_CONNECTION_IS_VALID(gc)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3172 close(source); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3173 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3174 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3175 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3176 if (source < 0) { |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3177 gchar *tmp; |
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3178 tmp = g_strdup_printf(_("Could not establish a connection with the server:\n%s"), |
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3179 error_message); |
21358 | 3180 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3181 g_free(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3182 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3183 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3184 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3185 yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3186 yd->fd = source; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3187 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3188 pkt = yahoo_packet_new(YAHOO_SERVICE_WEBLOGIN, YAHOO_STATUS_WEBLOGIN, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3189 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3190 yahoo_packet_hash(pkt, "sss", 0, |
15823 | 3191 purple_normalize(gc->account, purple_account_get_username(purple_connection_get_account(gc))), |
3192 1, purple_normalize(gc->account, purple_account_get_username(purple_connection_get_account(gc))), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3193 6, yd->auth); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3194 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3195 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3196 g_free(yd->auth); |
15823 | 3197 gc->inpa = purple_input_add(yd->fd, PURPLE_INPUT_READ, yahoo_pending, gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3198 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3199 |
15823 | 3200 static void yahoo_web_pending(gpointer data, gint source, PurpleInputCondition cond) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3201 { |
15823 | 3202 PurpleConnection *gc = data; |
3203 PurpleAccount *account = purple_connection_get_account(gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3204 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3205 char bufread[2048], *i = bufread, *buf = bufread; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3206 int len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3207 GString *s; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3208 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3209 len = read(source, bufread, sizeof(bufread) - 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3210 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3211 if (len < 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3212 gchar *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3213 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3214 if (errno == EAGAIN) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3215 /* No worries */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3216 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3217 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3218 tmp = g_strdup_printf(_("Lost connection with server:\n%s"), |
21121
35b4f1dc4c8d
replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents:
21030
diff
changeset
|
3219 g_strerror(errno)); |
21358 | 3220 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3221 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3222 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3223 } else if (len == 0) { |
21358 | 3224 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3225 _("Server closed the connection.")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3226 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3227 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3228 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3229 if (yd->rxlen > 0 || !g_strstr_len(buf, len, "\r\n\r\n")) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3230 yd->rxqueue = g_realloc(yd->rxqueue, yd->rxlen + len + 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3231 memcpy(yd->rxqueue + yd->rxlen, buf, len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3232 yd->rxlen += len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3233 i = buf = (char *)yd->rxqueue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3234 len = yd->rxlen; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3235 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3236 buf[len] = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3237 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3238 if ((strncmp(buf, "HTTP/1.0 302", strlen("HTTP/1.0 302")) && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3239 strncmp(buf, "HTTP/1.1 302", strlen("HTTP/1.1 302")))) { |
21358 | 3240 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3241 _("Received unexpected HTTP response from server.")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3242 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3243 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3244 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3245 s = g_string_sized_new(len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3246 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3247 while ((i = strstr(i, "Set-Cookie: "))) { |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3248 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3249 i += strlen("Set-Cookie: "); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3250 for (;*i != ';' && *i != '\0'; i++) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3251 g_string_append_c(s, *i); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3252 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3253 g_string_append(s, "; "); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3254 /* Should these cookies be included too when trying for xfer? |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3255 * It seems to work without these |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3256 */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3257 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3258 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3259 yd->auth = g_string_free(s, FALSE); |
15823 | 3260 purple_input_remove(gc->inpa); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3261 close(source); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3262 g_free(yd->rxqueue); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3263 yd->rxqueue = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3264 yd->rxlen = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3265 /* Now we have our cookies to login with. I'll go get the milk. */ |
15823 | 3266 if (purple_proxy_connect(gc, account, "wcs2.msg.dcn.yahoo.com", |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3267 purple_account_get_int(account, "port", YAHOO_PAGER_PORT), |
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3268 yahoo_got_web_connected, gc) == NULL) { |
21358 | 3269 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3270 _("Connection problem")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3271 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3272 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3273 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3274 |
15823 | 3275 static void yahoo_got_cookies_send_cb(gpointer data, gint source, PurpleInputCondition cond) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3276 { |
15823 | 3277 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3278 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3279 int written, remaining; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3280 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3281 gc = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3282 yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3283 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3284 remaining = strlen(yd->auth) - yd->auth_written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3285 written = write(source, yd->auth + yd->auth_written, remaining); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3286 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3287 if (written < 0 && errno == EAGAIN) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3288 written = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3289 else if (written <= 0) { |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3290 gchar *tmp; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3291 g_free(yd->auth); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3292 yd->auth = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3293 if (gc->inpa) |
15823 | 3294 purple_input_remove(gc->inpa); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3295 gc->inpa = 0; |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3296 tmp = g_strdup_printf(_("Lost connection with %s:\n%s"), |
21121
35b4f1dc4c8d
replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents:
21030
diff
changeset
|
3297 "login.yahoo.com:80", g_strerror(errno)); |
21358 | 3298 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3299 g_free(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3300 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3301 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3302 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3303 if (written < remaining) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3304 yd->auth_written += written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3305 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3306 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3307 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3308 g_free(yd->auth); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3309 yd->auth = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3310 yd->auth_written = 0; |
15823 | 3311 purple_input_remove(gc->inpa); |
3312 gc->inpa = purple_input_add(source, PURPLE_INPUT_READ, yahoo_web_pending, gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3313 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3314 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3315 static void yahoo_got_cookies(gpointer data, gint source, const gchar *error_message) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3316 { |
15823 | 3317 PurpleConnection *gc = data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3318 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3319 if (source < 0) { |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3320 gchar *tmp; |
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3321 tmp = g_strdup_printf(_("Could not establish a connection with %s:\n%s"), |
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3322 "login.yahoo.com:80", error_message); |
21358 | 3323 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); |
17672
df788cd53596
Better error messages for Yahoo! login failures
Mark Doliner <mark@kingant.net>
parents:
17054
diff
changeset
|
3324 g_free(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3325 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3326 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3327 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3328 if (gc->inpa == 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3329 { |
15823 | 3330 gc->inpa = purple_input_add(source, PURPLE_INPUT_WRITE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3331 yahoo_got_cookies_send_cb, gc); |
15823 | 3332 yahoo_got_cookies_send_cb(gc, source, PURPLE_INPUT_WRITE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3333 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3334 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3335 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3336 static void yahoo_login_page_hash_iter(const char *key, const char *val, GString *url) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3337 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3338 if (!strcmp(key, "passwd")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3339 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3340 g_string_append_c(url, '&'); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3341 g_string_append(url, key); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3342 g_string_append_c(url, '='); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3343 if (!strcmp(key, ".save") || !strcmp(key, ".js")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3344 g_string_append_c(url, '1'); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3345 else if (!strcmp(key, ".challenge")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3346 g_string_append(url, val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3347 else |
15823 | 3348 g_string_append(url, purple_url_encode(val)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3349 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3350 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3351 static GHashTable *yahoo_login_page_hash(const char *buf, size_t len) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3352 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3353 GHashTable *hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3354 const char *c = buf; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3355 char *d; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3356 char name[64], value[64]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3357 int count; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3358 int input_len = strlen("<input "); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3359 int name_len = strlen("name=\""); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3360 int value_len = strlen("value=\""); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3361 while ((len > ((c - buf) + input_len)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3362 && (c = strstr(c, "<input "))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3363 if (!(c = g_strstr_len(c, len - (c - buf), "name=\""))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3364 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3365 c += name_len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3366 count = sizeof(name)-1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3367 for (d = name; (len > ((c - buf) + 1)) && *c!='"' |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3368 && count; c++, d++, count--) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3369 *d = *c; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3370 *d = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3371 count = sizeof(value)-1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3372 if (!(d = g_strstr_len(c, len - (c - buf), "value=\""))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3373 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3374 d += value_len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3375 if (strchr(c, '>') < d) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3376 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3377 for (c = d, d = value; (len > ((c - buf) + 1)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3378 && *c!='"' && count; c++, d++, count--) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3379 *d = *c; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3380 *d = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3381 g_hash_table_insert(hash, g_strdup(name), g_strdup(value)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3382 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3383 return hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3384 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3385 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3386 static void |
15823 | 3387 yahoo_login_page_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3388 const gchar *url_text, size_t len, const gchar *error_message) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3389 { |
15823 | 3390 PurpleConnection *gc = (PurpleConnection *)user_data; |
3391 PurpleAccount *account = purple_connection_get_account(gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3392 struct yahoo_data *yd = gc->proto_data; |
15823 | 3393 const char *sn = purple_account_get_username(account); |
3394 const char *pass = purple_connection_get_password(gc); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3395 GHashTable *hash = yahoo_login_page_hash(url_text, len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3396 GString *url = g_string_new("GET http://login.yahoo.com/config/login?login="); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3397 char md5[33], *hashp = md5, *chal; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3398 int i; |
15823 | 3399 PurpleCipher *cipher; |
3400 PurpleCipherContext *context; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3401 guchar digest[16]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3402 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3403 yd->url_datas = g_slist_remove(yd->url_datas, url_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3404 |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
3405 if (error_message != NULL) |
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
3406 { |
21358 | 3407 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3408 error_message); |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
3409 return; |
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
3410 } |
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
3411 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3412 url = g_string_append(url, sn); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3413 url = g_string_append(url, "&passwd="); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3414 |
15823 | 3415 cipher = purple_ciphers_find_cipher("md5"); |
3416 context = purple_cipher_context_new(cipher, NULL); | |
3417 | |
3418 purple_cipher_context_append(context, (const guchar *)pass, strlen(pass)); | |
3419 purple_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3420 for (i = 0; i < 16; ++i) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3421 g_snprintf(hashp, 3, "%02x", digest[i]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3422 hashp += 2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3423 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3424 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3425 chal = g_strconcat(md5, g_hash_table_lookup(hash, ".challenge"), NULL); |
15823 | 3426 purple_cipher_context_reset(context, NULL); |
3427 purple_cipher_context_append(context, (const guchar *)chal, strlen(chal)); | |
3428 purple_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3429 hashp = md5; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3430 for (i = 0; i < 16; ++i) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3431 g_snprintf(hashp, 3, "%02x", digest[i]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3432 hashp += 2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3433 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3434 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3435 * I dunno why this is here and commented out.. but in case it's needed |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3436 * I updated it.. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3437 |
15823 | 3438 purple_cipher_context_reset(context, NULL); |
3439 purple_cipher_context_append(context, md5, strlen(md5)); | |
3440 purple_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3441 hashp = md5; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3442 for (i = 0; i < 16; ++i) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3443 g_snprintf(hashp, 3, "%02x", digest[i]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3444 hashp += 2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3445 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3446 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3447 g_free(chal); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3448 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3449 url = g_string_append(url, md5); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3450 g_hash_table_foreach(hash, (GHFunc)yahoo_login_page_hash_iter, url); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3451 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3452 url = g_string_append(url, "&.hash=1&.md5=1 HTTP/1.1\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3453 "Host: login.yahoo.com\r\n\r\n"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3454 g_hash_table_destroy(hash); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3455 yd->auth = g_string_free(url, FALSE); |
15823 | 3456 if (purple_proxy_connect(gc, account, "login.yahoo.com", 80, yahoo_got_cookies, gc) == NULL) { |
21358 | 3457 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3458 _("Connection problem")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3459 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3460 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3461 |
15823 | 3462 purple_cipher_context_destroy(context); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3463 } |
15744
12778e2f7282
Disable Yahoo! web authentication. It's failing right now because
Mark Doliner <mark@kingant.net>
parents:
15624
diff
changeset
|
3464 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3465 |
15823 | 3466 static void yahoo_server_check(PurpleAccount *account) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3467 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3468 const char *server; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3469 |
15823 | 3470 server = purple_account_get_string(account, "server", YAHOO_PAGER_HOST); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3471 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3472 if (strcmp(server, "scs.yahoo.com") == 0) |
15823 | 3473 purple_account_set_string(account, "server", YAHOO_PAGER_HOST); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3474 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3475 |
15823 | 3476 static void yahoo_picture_check(PurpleAccount *account) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3477 { |
15823 | 3478 PurpleConnection *gc = purple_account_get_connection(account); |
16390
4fc51a87ce42
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@wiktel.com>
parents:
16386
diff
changeset
|
3479 PurpleStoredImage *img = purple_buddy_icons_find_account_icon(account); |
4fc51a87ce42
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@wiktel.com>
parents:
16386
diff
changeset
|
3480 |
4fc51a87ce42
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@wiktel.com>
parents:
16386
diff
changeset
|
3481 yahoo_set_buddy_icon(gc, img); |
4fc51a87ce42
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@wiktel.com>
parents:
16386
diff
changeset
|
3482 purple_imgstore_unref(img); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3483 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3484 |
15823 | 3485 static int get_yahoo_status_from_purple_status(PurpleStatus *status) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3486 { |
15823 | 3487 PurplePresence *presence; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3488 const char *status_id; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3489 const char *msg; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3490 |
15823 | 3491 presence = purple_status_get_presence(status); |
3492 status_id = purple_status_get_id(status); | |
3493 msg = purple_status_get_attr_string(status, "message"); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3494 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3495 if (!strcmp(status_id, YAHOO_STATUS_TYPE_AVAILABLE)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3496 if ((msg != NULL) && (*msg != '\0')) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3497 return YAHOO_STATUS_CUSTOM; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3498 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3499 return YAHOO_STATUS_AVAILABLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3500 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_BRB)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3501 return YAHOO_STATUS_BRB; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3502 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_BUSY)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3503 return YAHOO_STATUS_BUSY; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3504 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_NOTATHOME)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3505 return YAHOO_STATUS_NOTATHOME; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3506 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_NOTATDESK)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3507 return YAHOO_STATUS_NOTATDESK; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3508 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_NOTINOFFICE)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3509 return YAHOO_STATUS_NOTINOFFICE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3510 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_ONPHONE)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3511 return YAHOO_STATUS_ONPHONE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3512 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_ONVACATION)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3513 return YAHOO_STATUS_ONVACATION; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3514 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_OUTTOLUNCH)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3515 return YAHOO_STATUS_OUTTOLUNCH; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3516 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_STEPPEDOUT)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3517 return YAHOO_STATUS_STEPPEDOUT; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3518 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_INVISIBLE)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3519 return YAHOO_STATUS_INVISIBLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3520 } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_AWAY)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3521 return YAHOO_STATUS_CUSTOM; |
15823 | 3522 } else if (purple_presence_is_idle(presence)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3523 return YAHOO_STATUS_IDLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3524 } else { |
15823 | 3525 purple_debug_error("yahoo", "Unexpected PurpleStatus!\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3526 return YAHOO_STATUS_AVAILABLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3527 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3528 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3529 |
15823 | 3530 static void yahoo_login(PurpleAccount *account) { |
3531 PurpleConnection *gc = purple_account_get_connection(account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3532 struct yahoo_data *yd = gc->proto_data = g_new0(struct yahoo_data, 1); |
15823 | 3533 PurpleStatus *status = purple_account_get_active_status(account); |
3534 gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_NO_BGCOLOR | PURPLE_CONNECTION_NO_URLDESC; | |
3535 | |
3536 purple_connection_update_progress(gc, _("Connecting"), 1, 2); | |
3537 | |
3538 purple_connection_set_display_name(gc, purple_account_get_username(account)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3539 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3540 yd->fd = -1; |
19393
35ae010cc037
Input handlers are unsigned integers. So set them to 0 instead of -1 after
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19365
diff
changeset
|
3541 yd->txhandler = 0; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3542 /* TODO: Is there a good grow size for the buffer? */ |
15823 | 3543 yd->txbuf = purple_circ_buffer_new(0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3544 yd->friends = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, yahoo_friend_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3545 yd->imvironments = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
3546 yd->xfer_peer_idstring_map = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
3547 yd->peers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, yahoo_p2p_disconnect_destroy_data); |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
3548 yd->sms_carrier = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
26223
0e1fba363b01
Implement keep alives for p2p connections, remove bug causing hundreds
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26222
diff
changeset
|
3549 yd->yahoo_p2p_timer = purple_timeout_add_seconds(YAHOO_P2P_KEEPALIVE_SECS, yahoo_p2p_keepalive, gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3550 yd->confs = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3551 yd->conf_id = 2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3552 |
15823 | 3553 yd->current_status = get_yahoo_status_from_purple_status(status); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3554 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3555 yahoo_server_check(account); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3556 yahoo_picture_check(account); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3557 |
15823 | 3558 if (purple_account_get_bool(account, "yahoojp", FALSE)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3559 yd->jp = TRUE; |
15823 | 3560 if (purple_proxy_connect(gc, account, |
3561 purple_account_get_string(account, "serverjp", YAHOOJP_PAGER_HOST), | |
3562 purple_account_get_int(account, "port", YAHOO_PAGER_PORT), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3563 yahoo_got_connected, gc) == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3564 { |
21358 | 3565 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3566 _("Connection problem")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3567 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3568 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3569 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3570 yd->jp = FALSE; |
15823 | 3571 if (purple_proxy_connect(gc, account, |
3572 purple_account_get_string(account, "server", YAHOO_PAGER_HOST), | |
3573 purple_account_get_int(account, "port", YAHOO_PAGER_PORT), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3574 yahoo_got_connected, gc) == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3575 { |
21358 | 3576 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, |
20132
b4ac690a2225
Add disconnection reasons to yahoo
Will Thompson <will.thompson@collabora.co.uk>
parents:
19718
diff
changeset
|
3577 _("Connection problem")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3578 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3579 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3580 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3581 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3582 |
15823 | 3583 static void yahoo_close(PurpleConnection *gc) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3584 struct yahoo_data *yd = (struct yahoo_data *)gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3585 GSList *l; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3586 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3587 if (gc->inpa) |
15823 | 3588 purple_input_remove(gc->inpa); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3589 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3590 while (yd->url_datas) { |
15823 | 3591 purple_util_fetch_url_cancel(yd->url_datas->data); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3592 yd->url_datas = g_slist_delete_link(yd->url_datas, yd->url_datas); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3593 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3594 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3595 for (l = yd->confs; l; l = l->next) { |
15823 | 3596 PurpleConversation *conv = l->data; |
3597 | |
3598 yahoo_conf_leave(yd, purple_conversation_get_name(conv), | |
3599 purple_connection_get_display_name(gc), | |
3600 purple_conv_chat_get_users(PURPLE_CONV_CHAT(conv))); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3601 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3602 g_slist_free(yd->confs); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3603 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3604 for (l = yd->cookies; l; l = l->next) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3605 g_free(l->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3606 l->data=NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3607 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3608 g_slist_free(yd->cookies); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3609 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3610 yd->chat_online = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3611 if (yd->in_chat) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3612 yahoo_c_leave(gc, 1); /* 1 = YAHOO_CHAT_ID */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3613 |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
3614 g_hash_table_destroy(yd->sms_carrier); |
25618
d6247d2d6c47
Fall back to establishing connection as a client when unable to act as a server.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25617
diff
changeset
|
3615 g_hash_table_destroy(yd->peers); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3616 g_hash_table_destroy(yd->friends); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3617 g_hash_table_destroy(yd->imvironments); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
3618 g_hash_table_destroy(yd->xfer_peer_idstring_map); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3619 g_free(yd->chat_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3620 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3621 g_free(yd->cookie_y); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3622 g_free(yd->cookie_t); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3623 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3624 if (yd->txhandler) |
15823 | 3625 purple_input_remove(yd->txhandler); |
3626 | |
3627 purple_circ_buffer_destroy(yd->txbuf); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3628 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3629 if (yd->fd >= 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3630 close(yd->fd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3631 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3632 g_free(yd->rxqueue); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3633 yd->rxlen = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3634 g_free(yd->picture_url); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3635 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3636 if (yd->buddy_icon_connect_data) |
15823 | 3637 purple_proxy_connect_cancel(yd->buddy_icon_connect_data); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3638 if (yd->picture_upload_todo) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3639 yahoo_buddy_icon_upload_data_free(yd->picture_upload_todo); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3640 if (yd->ycht) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3641 ycht_connection_close(yd->ycht); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3642 |
19554
c07a9c6f0263
Fix yahoo chats again for their new super-duper-ultra-mega secure captcha stuff. "/join chat" still doesn't work, you need to use the roomlist because they now require the chat id to be set (the native client also has this problem). Fixes #2860.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19543
diff
changeset
|
3643 g_free(yd->pending_chat_room); |
c07a9c6f0263
Fix yahoo chats again for their new super-duper-ultra-mega secure captcha stuff. "/join chat" still doesn't work, you need to use the roomlist because they now require the chat id to be set (the native client also has this problem). Fixes #2860.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19543
diff
changeset
|
3644 g_free(yd->pending_chat_id); |
c07a9c6f0263
Fix yahoo chats again for their new super-duper-ultra-mega secure captcha stuff. "/join chat" still doesn't work, you need to use the roomlist because they now require the chat id to be set (the native client also has this problem). Fixes #2860.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19543
diff
changeset
|
3645 g_free(yd->pending_chat_topic); |
c07a9c6f0263
Fix yahoo chats again for their new super-duper-ultra-mega secure captcha stuff. "/join chat" still doesn't work, you need to use the roomlist because they now require the chat id to be set (the native client also has this problem). Fixes #2860.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19543
diff
changeset
|
3646 g_free(yd->pending_chat_goto); |
c07a9c6f0263
Fix yahoo chats again for their new super-duper-ultra-mega secure captcha stuff. "/join chat" still doesn't work, you need to use the roomlist because they now require the chat id to be set (the native client also has this problem). Fixes #2860.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19543
diff
changeset
|
3647 |
22406
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
3648 g_free(yd->current_list15_grp); |
0c098ebe9f16
Fixed bug in which Yahoo contacts were erroneously considered to be blocked,
Evan Schoenberg <evan.s@dreskin.net>
parents:
22320
diff
changeset
|
3649 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3650 g_free(yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3651 gc->proto_data = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3652 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3653 |
15823 | 3654 static const char *yahoo_list_icon(PurpleAccount *a, PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3655 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3656 return "yahoo"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3657 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3658 |
15823 | 3659 static const char *yahoo_list_emblem(PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3660 { |
15823 | 3661 PurpleAccount *account; |
3662 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3663 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3664 YahooFriend *f; |
15823 | 3665 PurplePresence *presence; |
3666 | |
3667 if (!b || !(account = b->account) || !(gc = purple_account_get_connection(account)) || | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3668 !(yd = gc->proto_data)) |
15498
0d4890637238
clean up some compile warnings
Nathan Walp <nwalp@pidgin.im>
parents:
15463
diff
changeset
|
3669 return NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3670 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3671 f = yahoo_friend_find(gc, b->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3672 if (!f) { |
15463 | 3673 return "not-authorized"; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3674 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3675 |
15823 | 3676 presence = purple_buddy_get_presence(b); |
3677 | |
3678 if (purple_presence_is_online(presence)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3679 if (yahoo_friend_get_game(f)) |
15463 | 3680 return "game"; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3681 if (f->protocol == 2) |
15463 | 3682 return "msn"; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3683 } |
15463 | 3684 return NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3685 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3686 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3687 static const char *yahoo_get_status_string(enum yahoo_status a) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3688 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3689 switch (a) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3690 case YAHOO_STATUS_BRB: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3691 return _("Be Right Back"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3692 case YAHOO_STATUS_BUSY: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3693 return _("Busy"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3694 case YAHOO_STATUS_NOTATHOME: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3695 return _("Not at Home"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3696 case YAHOO_STATUS_NOTATDESK: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3697 return _("Not at Desk"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3698 case YAHOO_STATUS_NOTINOFFICE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3699 return _("Not in Office"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3700 case YAHOO_STATUS_ONPHONE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3701 return _("On the Phone"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3702 case YAHOO_STATUS_ONVACATION: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3703 return _("On Vacation"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3704 case YAHOO_STATUS_OUTTOLUNCH: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3705 return _("Out to Lunch"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3706 case YAHOO_STATUS_STEPPEDOUT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3707 return _("Stepped Out"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3708 case YAHOO_STATUS_INVISIBLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3709 return _("Invisible"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3710 case YAHOO_STATUS_IDLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3711 return _("Idle"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3712 case YAHOO_STATUS_OFFLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3713 return _("Offline"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3714 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3715 return _("Available"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3716 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3717 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3718 |
15823 | 3719 static void yahoo_initiate_conference(PurpleBlistNode *node, gpointer data) { |
3720 | |
3721 PurpleBuddy *buddy; | |
3722 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3723 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3724 GHashTable *components; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3725 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3726 int id; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3727 |
15823 | 3728 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
3729 | |
3730 buddy = (PurpleBuddy *) node; | |
3731 gc = purple_account_get_connection(buddy->account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3732 yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3733 id = yd->conf_id; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3734 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3735 components = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3736 g_hash_table_replace(components, g_strdup("room"), |
15823 | 3737 g_strdup_printf("%s-%d", purple_connection_get_display_name(gc), id)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3738 g_hash_table_replace(components, g_strdup("topic"), g_strdup("Join my conference...")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3739 g_hash_table_replace(components, g_strdup("type"), g_strdup("Conference")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3740 yahoo_c_join(gc, components); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3741 g_hash_table_destroy(components); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3742 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3743 yahoo_c_invite(gc, id, "Join my conference...", buddy->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3744 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3745 |
15823 | 3746 static void yahoo_presence_settings(PurpleBlistNode *node, gpointer data) { |
3747 PurpleBuddy *buddy; | |
3748 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3749 int presence_val = GPOINTER_TO_INT(data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3750 |
15823 | 3751 buddy = (PurpleBuddy *) node; |
3752 gc = purple_account_get_connection(buddy->account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3753 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3754 yahoo_friend_update_presence(gc, buddy->name, presence_val); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3755 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3756 |
15823 | 3757 static void yahoo_game(PurpleBlistNode *node, gpointer data) { |
3758 | |
3759 PurpleBuddy *buddy; | |
3760 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3761 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3762 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3763 const char *game; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3764 char *game2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3765 char *t; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3766 char url[256]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3767 YahooFriend *f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3768 |
15823 | 3769 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
3770 | |
3771 buddy = (PurpleBuddy *) node; | |
3772 gc = purple_account_get_connection(buddy->account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3773 yd = (struct yahoo_data *) gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3774 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3775 f = yahoo_friend_find(gc, buddy->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3776 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3777 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3778 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3779 game = yahoo_friend_get_game(f); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3780 if (!game) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3781 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3782 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3783 t = game2 = g_strdup(strstr(game, "ante?room=")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3784 while (*t && *t != '\t') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3785 t++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3786 *t = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3787 g_snprintf(url, sizeof url, "http://games.yahoo.com/games/%s", game2); |
15823 | 3788 purple_notify_uri(gc, url); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3789 g_free(game2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3790 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3791 |
15823 | 3792 static char *yahoo_status_text(PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3793 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3794 YahooFriend *f = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3795 const char *msg; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3796 char *msg2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3797 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3798 f = yahoo_friend_find(b->account->gc, b->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3799 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3800 return g_strdup(_("Not on server list")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3801 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3802 switch (f->status) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3803 case YAHOO_STATUS_AVAILABLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3804 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3805 case YAHOO_STATUS_IDLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3806 if (f->idle == -1) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3807 return g_strdup(yahoo_get_status_string(f->status)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3808 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3809 case YAHOO_STATUS_CUSTOM: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3810 if (!(msg = yahoo_friend_get_status_message(f))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3811 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3812 msg2 = g_markup_escape_text(msg, strlen(msg)); |
15823 | 3813 purple_util_chrreplace(msg2, '\n', ' '); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3814 return msg2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3815 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3816 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3817 return g_strdup(yahoo_get_status_string(f->status)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3818 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3819 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3820 |
15823 | 3821 void yahoo_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3822 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3823 YahooFriend *f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3824 char *escaped; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3825 char *status = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3826 const char *presence = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3827 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3828 f = yahoo_friend_find(b->account->gc, b->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3829 if (!f) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3830 status = g_strdup_printf("\n%s", _("Not on server list")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3831 else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3832 switch (f->status) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3833 case YAHOO_STATUS_CUSTOM: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3834 if (!yahoo_friend_get_status_message(f)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3835 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3836 status = g_strdup(yahoo_friend_get_status_message(f)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3837 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3838 case YAHOO_STATUS_OFFLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3839 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3840 default: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3841 status = g_strdup(yahoo_get_status_string(f->status)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3842 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3843 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3844 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3845 switch (f->presence) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3846 case YAHOO_PRESENCE_ONLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3847 presence = _("Appear Online"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3848 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3849 case YAHOO_PRESENCE_PERM_OFFLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3850 presence = _("Appear Permanently Offline"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3851 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3852 case YAHOO_PRESENCE_DEFAULT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3853 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3854 default: |
15823 | 3855 purple_debug_error("yahoo", "Unknown presence in yahoo_tooltip_text\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3856 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3857 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3858 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3859 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3860 if (status != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3861 escaped = g_markup_escape_text(status, strlen(status)); |
15823 | 3862 purple_notify_user_info_add_pair(user_info, _("Status"), escaped); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3863 g_free(status); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3864 g_free(escaped); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3865 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3866 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3867 if (presence != NULL) |
15823 | 3868 purple_notify_user_info_add_pair(user_info, _("Presence"), presence); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3869 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3870 |
15823 | 3871 static void yahoo_addbuddyfrommenu_cb(PurpleBlistNode *node, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3872 { |
15823 | 3873 PurpleBuddy *buddy; |
3874 PurpleConnection *gc; | |
3875 | |
3876 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); | |
3877 | |
3878 buddy = (PurpleBuddy *) node; | |
3879 gc = purple_account_get_connection(buddy->account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3880 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3881 yahoo_add_buddy(gc, buddy, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3882 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3883 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3884 |
15823 | 3885 static void yahoo_chat_goto_menu(PurpleBlistNode *node, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3886 { |
15823 | 3887 PurpleBuddy *buddy; |
3888 PurpleConnection *gc; | |
3889 | |
3890 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); | |
3891 | |
3892 buddy = (PurpleBuddy *) node; | |
3893 gc = purple_account_get_connection(buddy->account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3894 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3895 yahoo_chat_goto(gc, buddy->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3896 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3897 |
15823 | 3898 static GList *build_presence_submenu(YahooFriend *f, PurpleConnection *gc) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3899 GList *m = NULL; |
15823 | 3900 PurpleMenuAction *act; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3901 struct yahoo_data *yd = (struct yahoo_data *) gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3902 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3903 if (yd->current_status == YAHOO_STATUS_INVISIBLE) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3904 if (f->presence != YAHOO_PRESENCE_ONLINE) { |
15823 | 3905 act = purple_menu_action_new(_("Appear Online"), |
3906 PURPLE_CALLBACK(yahoo_presence_settings), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3907 GINT_TO_POINTER(YAHOO_PRESENCE_ONLINE), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3908 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3909 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3910 } else if (f->presence != YAHOO_PRESENCE_DEFAULT) { |
15823 | 3911 act = purple_menu_action_new(_("Appear Offline"), |
3912 PURPLE_CALLBACK(yahoo_presence_settings), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3913 GINT_TO_POINTER(YAHOO_PRESENCE_DEFAULT), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3914 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3915 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3916 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3917 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3918 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3919 if (f->presence == YAHOO_PRESENCE_PERM_OFFLINE) { |
15823 | 3920 act = purple_menu_action_new(_("Don't Appear Permanently Offline"), |
3921 PURPLE_CALLBACK(yahoo_presence_settings), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3922 GINT_TO_POINTER(YAHOO_PRESENCE_DEFAULT), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3923 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3924 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3925 } else { |
15823 | 3926 act = purple_menu_action_new(_("Appear Permanently Offline"), |
3927 PURPLE_CALLBACK(yahoo_presence_settings), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3928 GINT_TO_POINTER(YAHOO_PRESENCE_PERM_OFFLINE), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3929 NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3930 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3931 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3932 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3933 return m; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3934 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3935 |
15823 | 3936 static void yahoo_doodle_blist_node(PurpleBlistNode *node, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3937 { |
15823 | 3938 PurpleBuddy *b = (PurpleBuddy *)node; |
3939 PurpleConnection *gc = b->account->gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3940 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3941 yahoo_doodle_initiate(gc, b->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3942 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3943 |
15823 | 3944 static GList *yahoo_buddy_menu(PurpleBuddy *buddy) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3945 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3946 GList *m = NULL; |
15823 | 3947 PurpleMenuAction *act; |
3948 | |
3949 PurpleConnection *gc = purple_account_get_connection(buddy->account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3950 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3951 static char buf2[1024]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3952 YahooFriend *f; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3953 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3954 f = yahoo_friend_find(gc, buddy->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3955 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3956 if (!f && !yd->wm) { |
15823 | 3957 act = purple_menu_action_new(_("Add Buddy"), |
3958 PURPLE_CALLBACK(yahoo_addbuddyfrommenu_cb), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3959 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3960 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3961 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3962 return m; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3963 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3964 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3965 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3966 if (f && f->status != YAHOO_STATUS_OFFLINE) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3967 if (!yd->wm) { |
15823 | 3968 act = purple_menu_action_new(_("Join in Chat"), |
3969 PURPLE_CALLBACK(yahoo_chat_goto_menu), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3970 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3971 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3972 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3973 |
15823 | 3974 act = purple_menu_action_new(_("Initiate Conference"), |
3975 PURPLE_CALLBACK(yahoo_initiate_conference), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3976 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3977 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3978 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3979 if (yahoo_friend_get_game(f)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3980 const char *game = yahoo_friend_get_game(f); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3981 char *room; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3982 char *t; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3983 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3984 if ((room = strstr(game, "&follow="))) {/* skip ahead to the url */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3985 while (*room && *room != '\t') /* skip to the tab */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3986 room++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3987 t = room++; /* room as now at the name */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3988 while (*t != '\n') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3989 t++; /* replace the \n with a space */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3990 *t = ' '; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3991 g_snprintf(buf2, sizeof buf2, "%s", room); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3992 |
15823 | 3993 act = purple_menu_action_new(buf2, |
3994 PURPLE_CALLBACK(yahoo_game), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3995 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3996 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3997 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3998 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3999 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4000 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4001 if (f) { |
15823 | 4002 act = purple_menu_action_new(_("Presence Settings"), NULL, NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4003 build_presence_submenu(f, gc)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4004 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4005 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4006 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4007 if (f) { |
15823 | 4008 act = purple_menu_action_new(_("Start Doodling"), |
4009 PURPLE_CALLBACK(yahoo_doodle_blist_node), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4010 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4011 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4012 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4013 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4014 return m; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4015 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4016 |
15823 | 4017 static GList *yahoo_blist_node_menu(PurpleBlistNode *node) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4018 { |
15823 | 4019 if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
4020 return yahoo_buddy_menu((PurpleBuddy *) node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4021 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4022 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4023 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4024 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4025 |
15823 | 4026 static void yahoo_act_id(PurpleConnection *gc, const char *entry) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4027 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4028 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4029 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4030 struct yahoo_packet *pkt = yahoo_packet_new(YAHOO_SERVICE_IDACT, YAHOO_STATUS_AVAILABLE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4031 yahoo_packet_hash_str(pkt, 3, entry); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4032 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4033 |
15823 | 4034 purple_connection_set_display_name(gc, entry); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4035 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4036 |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4037 static void |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4038 yahoo_get_inbox_token_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
25566
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4039 const gchar *webdata, size_t len, const gchar *error_message) |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4040 { |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4041 PurpleConnection *gc = user_data; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4042 gboolean set_cookie = FALSE; |
22807
0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22770
diff
changeset
|
4043 gchar *url; |
25566
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4044 gchar *token = NULL; |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4045 int token_size; |
22807
0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22770
diff
changeset
|
4046 struct yahoo_data *yd = gc->proto_data; |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4047 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4048 g_return_if_fail(PURPLE_CONNECTION_IS_VALID(gc)); |
22807
0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22770
diff
changeset
|
4049 |
0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22770
diff
changeset
|
4050 yd->url_datas = g_slist_remove(yd->url_datas, url_data); |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4051 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4052 if (error_message != NULL) |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4053 purple_debug_error("yahoo", "Requesting mail login token failed: %s\n", error_message); |
25566
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4054 else if (len > 0 && webdata && *webdata) { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
4055 /* Extract token from the chunked webdata */ |
25566
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4056 sscanf(webdata,"%x",&token_size); |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4057 token = g_malloc(token_size); |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4058 strncpy(token, strstr(webdata,"\r\n")+2, token_size); |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4059 token[token_size-1]='\0'; |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4060 |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4061 /* Should we not be hardcoding the rd url? */ |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4062 url = g_strdup_printf( |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4063 "http://login.yahoo.com/config/reset_cookies_token?" |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4064 ".token=%s" |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4065 "&.done=http://us.rd.yahoo.com/messenger/client/%%3fhttp://mail.yahoo.com/", |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4066 token); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4067 set_cookie = TRUE; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4068 } |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4069 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4070 if (!set_cookie) { |
19653
941965d6fd88
Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19554
diff
changeset
|
4071 purple_debug_error("yahoo", "No mail login token; forwarding to login screen.\n"); |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4072 url = g_strdup(yd->jp ? YAHOOJP_MAIL_URL : YAHOO_MAIL_URL); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4073 } |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4074 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4075 /* Open the mailbox with the parsed url data */ |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4076 purple_notify_uri(gc, url); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4077 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4078 g_free(url); |
25566
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4079 g_free(token); |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4080 } |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4081 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4082 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4083 static void yahoo_show_inbox(PurplePluginAction *action) |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4084 { |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4085 /* Setup a cookie that can be used by the browser */ |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4086 /* XXX I have no idea how this will work with Yahoo! Japan. */ |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4087 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4088 PurpleConnection *gc = action->context; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4089 struct yahoo_data *yd = gc->proto_data; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4090 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4091 PurpleUtilFetchUrlData *url_data; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4092 const char* base_url = "http://login.yahoo.com"; |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4093 char *request = g_strdup_printf( |
25566
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4094 "POST /config/cookie_token HTTP/1.1\r\n" |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4095 "Cookie: Y=%s; path=/; domain=.yahoo.com; T=%s; path=/; domain=.yahoo.com;\r\n" |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4096 "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n" |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4097 "Host: login.yahoo.com\r\n" |
25566
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4098 "Content-Length: 0\r\n" |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4099 "Cache-Control: no-cache\r\n\r\n", |
5ec08738906c
Use HTTP/1.1 to get token to open inbox
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
23113
diff
changeset
|
4100 yd->cookie_y, yd->cookie_t); |
22056
b0ed2ce8514d
A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
4101 gboolean use_whole_url = FALSE; |
b0ed2ce8514d
A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
4102 |
b0ed2ce8514d
A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
4103 /* use whole URL if using HTTP Proxy */ |
b0ed2ce8514d
A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
4104 if ((gc->account->proxy_info) && (gc->account->proxy_info->type == PURPLE_PROXY_HTTP)) |
b0ed2ce8514d
A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
4105 use_whole_url = TRUE; |
b0ed2ce8514d
A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
4106 |
b0ed2ce8514d
A patch from Gideon N. Guillen, with some minor modifications from me. This
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
4107 url_data = purple_util_fetch_url_request(base_url, use_whole_url, |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4108 "Mozilla/4.0 (compatible; MSIE 5.5)", TRUE, request, FALSE, |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4109 yahoo_get_inbox_token_cb, gc); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4110 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4111 g_free(request); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4112 |
22807
0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22770
diff
changeset
|
4113 if (url_data != NULL) |
0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22770
diff
changeset
|
4114 yd->url_datas = g_slist_prepend(yd->url_datas, url_data); |
0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22770
diff
changeset
|
4115 else { |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4116 const char *yahoo_mail_url = (yd->jp ? YAHOOJP_MAIL_URL : YAHOO_MAIL_URL); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4117 purple_debug_error("yahoo", |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
4118 "Unable to request mail login token; forwarding to login screen.\n"); |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4119 purple_notify_uri(gc, yahoo_mail_url); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4120 } |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4121 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4122 } |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4123 |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4124 |
15823 | 4125 static void yahoo_show_act_id(PurplePluginAction *action) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4126 { |
15823 | 4127 PurpleConnection *gc = (PurpleConnection *) action->context; |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
4128 purple_request_input(gc, NULL, _("Activate which ID?"), NULL, |
15823 | 4129 purple_connection_get_display_name(gc), FALSE, FALSE, NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4130 _("OK"), G_CALLBACK(yahoo_act_id), |
16442
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15946
diff
changeset
|
4131 _("Cancel"), NULL, |
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15946
diff
changeset
|
4132 purple_connection_get_account(gc), NULL, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
4133 gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4134 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4135 |
15823 | 4136 static void yahoo_show_chat_goto(PurplePluginAction *action) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4137 { |
15823 | 4138 PurpleConnection *gc = (PurpleConnection *) action->context; |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
4139 purple_request_input(gc, NULL, _("Join whom in chat?"), NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4140 "", FALSE, FALSE, NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4141 _("OK"), G_CALLBACK(yahoo_chat_goto), |
16442
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15946
diff
changeset
|
4142 _("Cancel"), NULL, |
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15946
diff
changeset
|
4143 purple_connection_get_account(gc), NULL, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
4144 gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4145 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4146 |
15823 | 4147 static GList *yahoo_actions(PurplePlugin *plugin, gpointer context) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4148 GList *m = NULL; |
15823 | 4149 PurplePluginAction *act; |
4150 | |
4151 act = purple_plugin_action_new(_("Activate ID..."), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4152 yahoo_show_act_id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4153 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4154 |
15823 | 4155 act = purple_plugin_action_new(_("Join User in Chat..."), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4156 yahoo_show_chat_goto); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4157 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4158 |
18743
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4159 m = g_list_append(m, NULL); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4160 act = purple_plugin_action_new(_("Open Inbox"), |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4161 yahoo_show_inbox); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4162 m = g_list_append(m, act); |
dbaf12fb6ac7
Add "Open Inbox" account action to the yahoo prpl that logs your browser into your yahoo account and opens your inbox.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18650
diff
changeset
|
4163 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4164 return m; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4165 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4166 |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4167 struct yahoo_sms_carrier_cb_data { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4168 PurpleConnection *gc; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4169 char *who; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4170 char *what; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4171 }; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4172 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4173 static int yahoo_send_im(PurpleConnection *gc, const char *who, const char *what, PurpleMessageFlags flags); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4174 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4175 static void yahoo_get_sms_carrier_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4176 const gchar *webdata, size_t len, const gchar *error_message) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4177 { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4178 struct yahoo_sms_carrier_cb_data *sms_cb_data = user_data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4179 PurpleConnection *gc = sms_cb_data->gc; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4180 struct yahoo_data *yd = gc->proto_data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4181 char *mobile_no = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4182 char *status = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4183 char *carrier = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4184 PurpleAccount *account = purple_connection_get_account(gc); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4185 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, sms_cb_data->who, account); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4186 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4187 if (error_message != NULL) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4188 purple_conversation_write(conv, NULL, "Cant send SMS, Unable to obtain mobile carrier", PURPLE_MESSAGE_SYSTEM, time(NULL)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4189 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4190 g_free(sms_cb_data->who); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4191 g_free(sms_cb_data->what); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4192 g_free(sms_cb_data); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4193 return ; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4194 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4195 else if (len > 0 && webdata && *webdata) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4196 xmlnode *validate_data_root = xmlnode_from_str(webdata, -1); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4197 xmlnode *validate_data_child = xmlnode_get_child(validate_data_root, "mobile_no"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4198 mobile_no = (char *)xmlnode_get_attrib(validate_data_child, "msisdn"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4199 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4200 validate_data_root = xmlnode_copy(validate_data_child); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4201 validate_data_child = xmlnode_get_child(validate_data_root, "status"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4202 status = xmlnode_get_data(validate_data_child); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4203 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4204 validate_data_child = xmlnode_get_child(validate_data_root, "carrier"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4205 carrier = xmlnode_get_data(validate_data_child); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4206 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4207 purple_debug_info("yahoo","SMS validate data: Mobile:%s, Status:%s, Carrier:%s\n", mobile_no, status, carrier); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4208 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4209 if( strcmp(status, "Valid") == 0) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4210 g_hash_table_insert(yd->sms_carrier, g_strdup_printf("+%s", mobile_no), g_strdup(carrier)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4211 yahoo_send_im(sms_cb_data->gc, sms_cb_data->who, sms_cb_data->what, PURPLE_MESSAGE_SEND); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4212 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4213 else { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4214 g_hash_table_insert(yd->sms_carrier, g_strdup_printf("+%s", mobile_no), g_strdup("Unknown")); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4215 purple_conversation_write(conv, NULL, "Cant send SMS, Unknown mobile carrier", PURPLE_MESSAGE_SYSTEM, time(NULL)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4216 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4217 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4218 xmlnode_free(validate_data_child); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4219 xmlnode_free(validate_data_root); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4220 g_free(sms_cb_data->who); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4221 g_free(sms_cb_data->what); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4222 g_free(sms_cb_data); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4223 g_free(mobile_no); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4224 g_free(status); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4225 g_free(carrier); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4226 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4227 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4228 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4229 static void yahoo_get_sms_carrier(PurpleConnection *gc, gpointer data) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4230 { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4231 struct yahoo_data *yd = gc->proto_data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4232 PurpleUtilFetchUrlData *url_data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4233 struct yahoo_sms_carrier_cb_data *sms_cb_data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4234 char *validate_request_str = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4235 char *request = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4236 gboolean use_whole_url = FALSE; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4237 xmlnode *validate_request_root = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4238 xmlnode *validate_request_child = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4239 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4240 if(!(sms_cb_data = data)) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4241 return; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4242 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4243 validate_request_root = xmlnode_new("validate"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4244 xmlnode_set_attrib(validate_request_root, "intl", "us"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4245 xmlnode_set_attrib(validate_request_root, "version", YAHOO_CLIENT_VERSION); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4246 xmlnode_set_attrib(validate_request_root, "qos", "0"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4247 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4248 validate_request_child = xmlnode_new_child(validate_request_root, "mobile_no"); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4249 xmlnode_set_attrib(validate_request_child, "msisdn", sms_cb_data->who + 1); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4250 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4251 validate_request_str = xmlnode_to_str(validate_request_root, NULL); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4252 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4253 xmlnode_free(validate_request_child); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4254 xmlnode_free(validate_request_root); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4255 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4256 request = g_strdup_printf( |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4257 "POST /mobileno?intl=us&version=%s HTTP/1.1\r\n" |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4258 "Cookie: T=%s; path=/; domain=.yahoo.com; Y=%s; path=/; domain=.yahoo.com;\r\n" |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4259 "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n" |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4260 "Host: validate.msg.yahoo.com\r\n" |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4261 "Content-Length: %d\r\n" |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4262 "Cache-Control: no-cache\r\n\r\n%s", |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4263 YAHOO_CLIENT_VERSION, yd->cookie_t, yd->cookie_y, strlen(validate_request_str), validate_request_str); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4264 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4265 /* use whole URL if using HTTP Proxy */ |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4266 if ((gc->account->proxy_info) && (gc->account->proxy_info->type == PURPLE_PROXY_HTTP)) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4267 use_whole_url = TRUE; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4268 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4269 url_data = purple_util_fetch_url_request(YAHOO_SMS_CARRIER_URL, use_whole_url, |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4270 "Mozilla/4.0 (compatible; MSIE 5.5)", TRUE, request, FALSE, |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4271 yahoo_get_sms_carrier_cb, data); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4272 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4273 g_free(request); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4274 g_free(validate_request_str); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4275 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4276 if (!url_data) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4277 PurpleAccount *account = purple_connection_get_account(gc); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4278 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, sms_cb_data->who, account); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4279 purple_conversation_write(conv, NULL, "Cant send SMS, Unable to obtain mobile carrier", PURPLE_MESSAGE_SYSTEM, time(NULL)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4280 g_free(sms_cb_data->who); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4281 g_free(sms_cb_data->what); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4282 g_free(sms_cb_data); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4283 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4284 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4285 |
15823 | 4286 static int yahoo_send_im(PurpleConnection *gc, const char *who, const char *what, PurpleMessageFlags flags) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4287 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4288 struct yahoo_data *yd = gc->proto_data; |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4289 struct yahoo_packet *pkt; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4290 char *msg = yahoo_html_to_codes(what); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4291 char *msg2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4292 gboolean utf8 = TRUE; |
15823 | 4293 PurpleWhiteboard *wb; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4294 int ret = 1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4295 YahooFriend *f = NULL; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
4296 struct yahoo_p2p_data *p2p_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4297 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4298 msg2 = yahoo_string_encode(gc, msg, &utf8); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4299 |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4300 if( strncmp(who, "+", 1) == 0 ) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4301 /* we have an sms to be sent */ |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4302 gchar *carrier = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4303 const char *alias = NULL; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4304 PurpleAccount *account = purple_connection_get_account(gc); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4305 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, account); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4306 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4307 carrier = g_hash_table_lookup(yd->sms_carrier, who); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4308 if (!carrier) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4309 struct yahoo_sms_carrier_cb_data *sms_cb_data; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4310 sms_cb_data = g_malloc(sizeof(struct yahoo_sms_carrier_cb_data)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4311 sms_cb_data->gc = gc; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4312 sms_cb_data->who = g_malloc(strlen(who)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4313 sms_cb_data->what = g_malloc(strlen(what)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4314 strcpy(sms_cb_data->who, who); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4315 strcpy(sms_cb_data->what, what); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4316 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4317 purple_conversation_write(conv, NULL, "Getting mobile carrier to send the sms", PURPLE_MESSAGE_SYSTEM, time(NULL)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4318 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4319 yahoo_get_sms_carrier(gc, sms_cb_data); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4320 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4321 g_free(msg); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4322 g_free(msg2); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4323 return ret; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4324 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4325 else if( strcmp(carrier,"Unknown") == 0 ) { |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4326 purple_conversation_write(conv, NULL, "Cant send SMS, Unknown mobile carrier", PURPLE_MESSAGE_SYSTEM, time(NULL)); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4327 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4328 g_free(msg); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4329 g_free(msg2); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4330 return -1; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4331 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4332 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4333 alias = purple_account_get_alias(account); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4334 pkt = yahoo_packet_new(YAHOO_SERVICE_SMS_MSG, YAHOO_STATUS_AVAILABLE, 0); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4335 yahoo_packet_hash(pkt, "sssss", |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4336 1, purple_connection_get_display_name(gc), |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4337 69, alias, |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4338 5, who + 1, |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4339 68, carrier, |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4340 14, msg2); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4341 yahoo_packet_send_and_free(pkt, yd); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4342 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4343 g_free(msg); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4344 g_free(msg2); |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4345 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4346 return ret; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4347 } |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4348 |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4349 pkt = yahoo_packet_new(YAHOO_SERVICE_MESSAGE, YAHOO_STATUS_OFFLINE, 0); |
15823 | 4350 yahoo_packet_hash(pkt, "ss", 1, purple_connection_get_display_name(gc), 5, who); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4351 if ((f = yahoo_friend_find(gc, who)) && f->protocol) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4352 yahoo_packet_hash_int(pkt, 241, f->protocol); |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4353 else |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4354 if(strchr(who,'@')) |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4355 yahoo_packet_hash_int(pkt, 241, 2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4356 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4357 if (utf8) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4358 yahoo_packet_hash_str(pkt, 97, "1"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4359 yahoo_packet_hash_str(pkt, 14, msg2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4360 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4361 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4362 * IMVironment. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4363 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4364 * If this message is to a user who is also Doodling with the local user, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4365 * format the chat packet with the correct IMV information (thanks Yahoo!) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4366 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4367 * Otherwise attempt to use the same IMVironment as the remote user, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4368 * just so that we don't inadvertantly reset their IMVironment back |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4369 * to nothing. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4370 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4371 * If they have no set an IMVironment, then use the default. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4372 */ |
15823 | 4373 wb = purple_whiteboard_get_session(gc->account, who); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4374 if (wb) |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18763
diff
changeset
|
4375 yahoo_packet_hash_str(pkt, 63, DOODLE_IMV_KEY); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4376 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4377 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4378 const char *imv; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4379 imv = g_hash_table_lookup(yd->imvironments, who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4380 if (imv != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4381 yahoo_packet_hash_str(pkt, 63, imv); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4382 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4383 yahoo_packet_hash_str(pkt, 63, ";0"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4384 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4385 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4386 yahoo_packet_hash_str(pkt, 64, "0"); /* no idea */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4387 yahoo_packet_hash_str(pkt, 1002, "1"); /* no idea, Yahoo 6 or later only it seems */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4388 if (!yd->picture_url) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4389 yahoo_packet_hash_str(pkt, 206, "0"); /* 0 = no picture, 2 = picture, maybe 1 = avatar? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4390 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4391 yahoo_packet_hash_str(pkt, 206, "2"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4392 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4393 /* We may need to not send any packets over 2000 bytes, but I'm not sure yet. */ |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4394 if ((YAHOO_PACKET_HDRLEN + yahoo_packet_length(pkt)) <= 2000) { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
4395 /* if p2p link exists, send through it. To-do: key 15, time value to be sent in case of p2p */ |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
4396 if( (p2p_data = g_hash_table_lookup(yd->peers, who)) ) { |
25621
860d8ed4f7a6
Check for session id (value for key 11) in the received IMs and Notifications against our session id. Disconnect in
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25620
diff
changeset
|
4397 yahoo_packet_hash_int(pkt, 11, p2p_data->session_id); |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
4398 yahoo_p2p_write_pkt(p2p_data->source, pkt); |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4399 } |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
4400 else { |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4401 yahoo_packet_send(pkt, yd); |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
4402 yahoo_send_p2p_pkt(gc, who, 0); /* send p2p packet, with val_13=0 */ |
25617
f16aba67b685
Sending of p2p packet, providing peer with our IP address to make a connection to us.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25615
diff
changeset
|
4403 } |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4404 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4405 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4406 ret = -E2BIG; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4407 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4408 yahoo_packet_free(pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4409 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4410 g_free(msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4411 g_free(msg2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4412 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4413 return ret; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4414 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4415 |
15823 | 4416 static unsigned int yahoo_send_typing(PurpleConnection *gc, const char *who, PurpleTypingState state) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4417 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4418 struct yahoo_data *yd = gc->proto_data; |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
4419 struct yahoo_p2p_data *p2p_data; |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4420 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4421 struct yahoo_packet *pkt = yahoo_packet_new(YAHOO_SERVICE_NOTIFY, YAHOO_STATUS_TYPING, 0); |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4422 |
26218
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4423 /* Don't do anything if sms is being typed */ |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4424 if( strncmp(who, "+", 1) == 0 ) |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4425 return 0; |
2666b864dc89
Send and receive SMS through yahoo
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26217
diff
changeset
|
4426 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
4427 /* check to see if p2p link exists, send through it */ |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
4428 if( (p2p_data = g_hash_table_lookup(yd->peers, who)) ) { |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4429 yahoo_packet_hash(pkt, "sssssis", 49, "TYPING", 1, purple_connection_get_display_name(gc), |
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4430 14, " ", 13, state == PURPLE_TYPING ? "1" : "0", |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
4431 5, who, 11, p2p_data->session_id, 1002, "1"); /* To-do: key 15 to be sent in case of p2p */ |
25620
6da23dc3000d
Changed user_data to more apt p2p_data, change in variable name.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25619
diff
changeset
|
4432 yahoo_p2p_write_pkt(p2p_data->source, pkt); |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4433 yahoo_packet_free(pkt); |
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4434 } |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
4435 else { /* send through yahoo server */ |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4436 yahoo_packet_hash(pkt, "ssssss", 49, "TYPING", 1, purple_connection_get_display_name(gc), |
15823 | 4437 14, " ", 13, state == PURPLE_TYPING ? "1" : "0", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4438 5, who, 1002, "1"); |
25574
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4439 yahoo_packet_send_and_free(pkt, yd); |
d11d1ac96a0d
Send IMs and Typing notifications through p2p, Redesign p2p
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25573
diff
changeset
|
4440 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4441 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4442 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4443 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4444 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4445 static void yahoo_session_presence_remove(gpointer key, gpointer value, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4446 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4447 YahooFriend *f = value; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4448 if (f && f->presence == YAHOO_PRESENCE_ONLINE) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4449 f->presence = YAHOO_PRESENCE_DEFAULT; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4450 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4451 |
15823 | 4452 static void yahoo_set_status(PurpleAccount *account, PurpleStatus *status) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4453 { |
15823 | 4454 PurpleConnection *gc; |
4455 PurplePresence *presence; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4456 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4457 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4458 int old_status; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4459 const char *msg = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4460 char *tmp = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4461 char *conv_msg = NULL; |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
4462 gboolean utf8 = TRUE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4463 |
15823 | 4464 if (!purple_status_is_active(status)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4465 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4466 |
15823 | 4467 gc = purple_account_get_connection(account); |
4468 presence = purple_status_get_presence(status); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4469 yd = (struct yahoo_data *)gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4470 old_status = yd->current_status; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4471 |
15823 | 4472 yd->current_status = get_yahoo_status_from_purple_status(status); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4473 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4474 if (yd->current_status == YAHOO_STATUS_CUSTOM) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4475 { |
15823 | 4476 msg = purple_status_get_attr_string(status, "message"); |
4477 | |
4478 if (purple_status_is_available(status)) { | |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
4479 tmp = yahoo_string_encode(gc, msg, &utf8); |
15823 | 4480 conv_msg = purple_markup_strip_html(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4481 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4482 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4483 if ((msg == NULL) || (*msg == '\0')) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4484 msg = _("Away"); |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
4485 tmp = yahoo_string_encode(gc, msg, &utf8); |
15823 | 4486 conv_msg = purple_markup_strip_html(tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4487 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4488 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4489 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4490 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4491 if (yd->current_status == YAHOO_STATUS_INVISIBLE) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4492 pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_VISIBLE_TOGGLE, YAHOO_STATUS_AVAILABLE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4493 yahoo_packet_hash_str(pkt, 13, "2"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4494 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4495 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4496 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4497 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4498 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4499 pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_STATUS_UPDATE, YAHOO_STATUS_AVAILABLE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4500 yahoo_packet_hash_int(pkt, 10, yd->current_status); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4501 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4502 if (yd->current_status == YAHOO_STATUS_CUSTOM) { |
18758
0a2059a1b0cc
Did you know we didn't support i18n in Yahoo status messages? We do now! Fixes #2356
Sean Egan <seanegan@gmail.com>
parents:
18743
diff
changeset
|
4503 yahoo_packet_hash_str(pkt, 97, utf8 ? "1" : 0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4504 yahoo_packet_hash_str(pkt, 19, conv_msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4505 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4506 yahoo_packet_hash_str(pkt, 19, ""); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4507 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4508 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4509 g_free(conv_msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4510 |
15823 | 4511 if (purple_presence_is_idle(presence)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4512 yahoo_packet_hash_str(pkt, 47, "2"); |
15823 | 4513 else if (!purple_status_is_available(status)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4514 yahoo_packet_hash_str(pkt, 47, "1"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4515 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4516 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4517 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4518 if (old_status == YAHOO_STATUS_INVISIBLE) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4519 pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_VISIBLE_TOGGLE, YAHOO_STATUS_AVAILABLE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4520 yahoo_packet_hash_str(pkt, 13, "1"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4521 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4522 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4523 /* Any per-session presence settings are removed */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4524 g_hash_table_foreach(yd->friends, yahoo_session_presence_remove, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4525 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4526 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4527 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4528 |
15823 | 4529 static void yahoo_set_idle(PurpleConnection *gc, int idle) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4530 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4531 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4532 struct yahoo_packet *pkt = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4533 char *msg = NULL, *msg2 = NULL; |
15823 | 4534 PurpleStatus *status = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4535 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4536 if (idle && yd->current_status != YAHOO_STATUS_CUSTOM) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4537 yd->current_status = YAHOO_STATUS_IDLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4538 else if (!idle && yd->current_status == YAHOO_STATUS_IDLE) { |
15823 | 4539 status = purple_presence_get_active_status(purple_account_get_presence(purple_connection_get_account(gc))); |
4540 yd->current_status = get_yahoo_status_from_purple_status(status); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4541 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4542 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4543 pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_STATUS_UPDATE, YAHOO_STATUS_AVAILABLE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4544 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4545 yahoo_packet_hash_int(pkt, 10, yd->current_status); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4546 if (yd->current_status == YAHOO_STATUS_CUSTOM) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4547 const char *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4548 if (status == NULL) |
15823 | 4549 status = purple_presence_get_active_status(purple_account_get_presence(purple_connection_get_account(gc))); |
4550 tmp = purple_status_get_attr_string(status, "message"); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4551 if (tmp != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4552 msg = yahoo_string_encode(gc, tmp, NULL); |
15823 | 4553 msg2 = purple_markup_strip_html(msg); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4554 yahoo_packet_hash_str(pkt, 19, msg2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4555 } else { |
15823 | 4556 /* get_yahoo_status_from_purple_status() returns YAHOO_STATUS_CUSTOM for |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4557 * the generic away state (YAHOO_STATUS_TYPE_AWAY) with no message */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4558 yahoo_packet_hash_str(pkt, 19, _("Away")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4559 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4560 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4561 yahoo_packet_hash_str(pkt, 19, ""); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4562 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4563 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4564 if (idle) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4565 yahoo_packet_hash_str(pkt, 47, "2"); |
15823 | 4566 else if (!purple_presence_is_available(purple_account_get_presence(purple_connection_get_account(gc)))) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4567 yahoo_packet_hash_str(pkt, 47, "1"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4568 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4569 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4570 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4571 g_free(msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4572 g_free(msg2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4573 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4574 |
15823 | 4575 static GList *yahoo_status_types(PurpleAccount *account) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4576 { |
15823 | 4577 PurpleStatusType *type; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4578 GList *types = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4579 |
15823 | 4580 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE, YAHOO_STATUS_TYPE_AVAILABLE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4581 NULL, TRUE, TRUE, FALSE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4582 "message", _("Message"), |
15823 | 4583 purple_value_new(PURPLE_TYPE_STRING), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4584 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4585 |
15823 | 4586 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_AWAY, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4587 NULL, TRUE, TRUE, FALSE, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4588 "message", _("Message"), |
15823 | 4589 purple_value_new(PURPLE_TYPE_STRING), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4590 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4591 |
15823 | 4592 type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_BRB, _("Be Right Back"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4593 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4594 |
15823 | 4595 type = purple_status_type_new(PURPLE_STATUS_UNAVAILABLE, YAHOO_STATUS_TYPE_BUSY, _("Busy"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4596 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4597 |
15823 | 4598 type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_NOTATHOME, _("Not at Home"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4599 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4600 |
15823 | 4601 type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_NOTATDESK, _("Not at Desk"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4602 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4603 |
15823 | 4604 type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_NOTINOFFICE, _("Not in Office"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4605 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4606 |
15823 | 4607 type = purple_status_type_new(PURPLE_STATUS_UNAVAILABLE, YAHOO_STATUS_TYPE_ONPHONE, _("On the Phone"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4608 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4609 |
15823 | 4610 type = purple_status_type_new(PURPLE_STATUS_EXTENDED_AWAY, YAHOO_STATUS_TYPE_ONVACATION, _("On Vacation"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4611 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4612 |
15823 | 4613 type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_OUTTOLUNCH, _("Out to Lunch"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4614 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4615 |
15823 | 4616 type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_STEPPEDOUT, _("Stepped Out"), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4617 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4618 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4619 |
15823 | 4620 type = purple_status_type_new(PURPLE_STATUS_INVISIBLE, YAHOO_STATUS_TYPE_INVISIBLE, NULL, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4621 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4622 |
15823 | 4623 type = purple_status_type_new(PURPLE_STATUS_OFFLINE, YAHOO_STATUS_TYPE_OFFLINE, NULL, TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4624 types = g_list_append(types, type); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4625 |
15823 | 4626 type = purple_status_type_new_full(PURPLE_STATUS_MOBILE, YAHOO_STATUS_TYPE_MOBILE, NULL, FALSE, FALSE, TRUE); |
15525 | 4627 types = g_list_append(types, type); |
4628 | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4629 return types; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4630 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4631 |
15823 | 4632 static void yahoo_keepalive(PurpleConnection *gc) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4633 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4634 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4635 struct yahoo_packet *pkt = yahoo_packet_new(YAHOO_SERVICE_PING, YAHOO_STATUS_AVAILABLE, 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4636 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4637 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4638 if (!yd->chat_online) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4639 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4640 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4641 if (yd->wm) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4642 ycht_chat_send_keepalive(yd->ycht); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4643 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4644 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4645 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4646 pkt = yahoo_packet_new(YAHOO_SERVICE_CHATPING, YAHOO_STATUS_AVAILABLE, 0); |
15823 | 4647 yahoo_packet_hash_str(pkt, 109, purple_connection_get_display_name(gc)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4648 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4649 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4650 |
22239
1ca7a70f1faa
Use the group passed into yahoo_add_buddy() instead of looking
Mark Doliner <mark@kingant.net>
parents:
22238
diff
changeset
|
4651 static void yahoo_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *g) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4652 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4653 struct yahoo_data *yd = (struct yahoo_data *)gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4654 struct yahoo_packet *pkt; |
19348
f0c4b4fdbd16
Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19299
diff
changeset
|
4655 const char *group = NULL; |
f0c4b4fdbd16
Add some additional yahoo keys to the stealth packets to make them work again. Fixes #2654.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19299
diff
changeset
|
4656 char *group2; |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
4657 YahooFriend *f; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4658 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4659 if (!yd->logged_in) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4660 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4661 |
22238
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
4662 if (!purple_privacy_check(purple_connection_get_account(gc), |
4cc1dfbc499b
Get rid of yahoo_privacy_check and use purple_privacy_check directly.
Mark Doliner <mark@kingant.net>
parents:
22236
diff
changeset
|
4663 purple_buddy_get_name(buddy))) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4664 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4665 |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
4666 f = yahoo_friend_find(gc, purple_buddy_get_name(buddy)); |
19358
b3901a15147a
Fully fix #2654 by parsing the yahoo stealth information from the buddy list at logon time.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19348
diff
changeset
|
4667 |
22239
1ca7a70f1faa
Use the group passed into yahoo_add_buddy() instead of looking
Mark Doliner <mark@kingant.net>
parents:
22238
diff
changeset
|
4668 g = purple_buddy_get_group(buddy); |
1ca7a70f1faa
Use the group passed into yahoo_add_buddy() instead of looking
Mark Doliner <mark@kingant.net>
parents:
22238
diff
changeset
|
4669 if (g) |
1ca7a70f1faa
Use the group passed into yahoo_add_buddy() instead of looking
Mark Doliner <mark@kingant.net>
parents:
22238
diff
changeset
|
4670 group = g->name; |
1ca7a70f1faa
Use the group passed into yahoo_add_buddy() instead of looking
Mark Doliner <mark@kingant.net>
parents:
22238
diff
changeset
|
4671 else |
1ca7a70f1faa
Use the group passed into yahoo_add_buddy() instead of looking
Mark Doliner <mark@kingant.net>
parents:
22238
diff
changeset
|
4672 group = "Buddies"; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4673 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4674 group2 = yahoo_string_encode(gc, group, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4675 pkt = yahoo_packet_new(YAHOO_SERVICE_ADDBUDDY, YAHOO_STATUS_AVAILABLE, 0); |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4676 if(strchr(buddy->name, '@')) { |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4677 yahoo_packet_hash(pkt, "sssssssssss", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4678 14, "", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4679 65, group2, |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4680 97, "1", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4681 1, purple_connection_get_display_name(gc), |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4682 302, "319", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4683 300, "319", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4684 7, buddy->name, |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4685 241, "2", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4686 334, "0", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4687 301, "319", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4688 303, "319" |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4689 ); |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4690 } |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4691 else { |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4692 yahoo_packet_hash(pkt, "ssssssssss", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4693 14, "", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4694 65, group2, |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4695 97, "1", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4696 1, purple_connection_get_display_name(gc), |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4697 302, "319", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4698 300, "319", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4699 7, buddy->name, |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4700 334, "0", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4701 301, "319", |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4702 303, "319" |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4703 ); |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4704 } |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4705 |
19299
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
4706 if (f && f->protocol) |
b3a5e7c45b5c
Allow you to authorize msn buddies to add your yahoo account.
Tim Ringenbach <marv@pidgin.im>
parents:
19199
diff
changeset
|
4707 yahoo_packet_hash_int(pkt, 241, f->protocol); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4708 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4709 g_free(group2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4710 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4711 |
15823 | 4712 static void yahoo_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4713 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4714 struct yahoo_data *yd = (struct yahoo_data *)gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4715 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4716 GSList *buddies, *l; |
15823 | 4717 PurpleGroup *g; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4718 gboolean remove = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4719 char *cg; |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4720 YahooFriend *f = yahoo_friend_find(gc, buddy->name); |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4721 |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4722 if (!f) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4723 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4724 |
15823 | 4725 buddies = purple_find_buddies(purple_connection_get_account(gc), buddy->name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4726 for (l = buddies; l; l = l->next) { |
15823 | 4727 g = purple_buddy_get_group(l->data); |
4728 if (purple_utf8_strcasecmp(group->name, g->name)) { | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4729 remove = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4730 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4731 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4732 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4733 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4734 g_slist_free(buddies); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4735 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4736 if (remove) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4737 g_hash_table_remove(yd->friends, buddy->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4738 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4739 cg = yahoo_string_encode(gc, group->name, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4740 pkt = yahoo_packet_new(YAHOO_SERVICE_REMBUDDY, YAHOO_STATUS_AVAILABLE, 0); |
15823 | 4741 yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4742 7, buddy->name, 65, cg); |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4743 if(f->protocol) |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4744 yahoo_packet_hash_int(pkt, 241, f->protocol); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4745 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4746 g_free(cg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4747 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4748 |
15823 | 4749 static void yahoo_add_deny(PurpleConnection *gc, const char *who) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4750 struct yahoo_data *yd = (struct yahoo_data *)gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4751 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4752 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4753 if (!yd->logged_in) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4754 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4755 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4756 if (!who || who[0] == '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4757 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4758 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4759 pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, 0); |
15823 | 4760 yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4761 7, who, 13, "1"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4762 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4763 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4764 |
15823 | 4765 static void yahoo_rem_deny(PurpleConnection *gc, const char *who) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4766 struct yahoo_data *yd = (struct yahoo_data *)gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4767 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4768 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4769 if (!yd->logged_in) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4770 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4771 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4772 if (!who || who[0] == '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4773 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4774 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4775 pkt = yahoo_packet_new(YAHOO_SERVICE_IGNORECONTACT, YAHOO_STATUS_AVAILABLE, 0); |
15823 | 4776 yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), 7, who, 13, "2"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4777 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4778 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4779 |
22243 | 4780 static void yahoo_set_permit_deny(PurpleConnection *gc) |
4781 { | |
4782 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4783 GSList *deny; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4784 |
22243 | 4785 account = purple_connection_get_account(gc); |
4786 | |
4787 switch (account->perm_deny) | |
4788 { | |
15823 | 4789 case PURPLE_PRIVACY_ALLOW_ALL: |
22243 | 4790 for (deny = account->deny; deny; deny = deny->next) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4791 yahoo_rem_deny(gc, deny->data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4792 break; |
22243 | 4793 |
15823 | 4794 case PURPLE_PRIVACY_ALLOW_BUDDYLIST: |
22245
31863f2d7c3c
Our Yahoo! protocol has this crappy implementation where it tries
Mark Doliner <mark@kingant.net>
parents:
22243
diff
changeset
|
4795 case PURPLE_PRIVACY_ALLOW_USERS: |
15823 | 4796 case PURPLE_PRIVACY_DENY_USERS: |
22245
31863f2d7c3c
Our Yahoo! protocol has this crappy implementation where it tries
Mark Doliner <mark@kingant.net>
parents:
22243
diff
changeset
|
4797 case PURPLE_PRIVACY_DENY_ALL: |
22243 | 4798 for (deny = account->deny; deny; deny = deny->next) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4799 yahoo_add_deny(gc, deny->data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4800 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4801 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4802 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4803 |
15823 | 4804 static gboolean yahoo_unload_plugin(PurplePlugin *plugin) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4805 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4806 yahoo_dest_colorht(); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4807 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4808 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4809 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4810 |
15823 | 4811 static void yahoo_change_buddys_group(PurpleConnection *gc, const char *who, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4812 const char *old_group, const char *new_group) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4813 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4814 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4815 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4816 char *gpn, *gpo; |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4817 YahooFriend *f = yahoo_friend_find(gc, who); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4818 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4819 /* Step 0: If they aren't on the server list anyway, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4820 * don't bother letting the server know. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4821 */ |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4822 if (!f) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4823 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4824 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4825 /* If old and new are the same, we would probably |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4826 * end up deleting the buddy, which would be bad. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4827 * This might happen because of the charset conversation. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4828 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4829 gpn = yahoo_string_encode(gc, new_group, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4830 gpo = yahoo_string_encode(gc, old_group, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4831 if (!strcmp(gpn, gpo)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4832 g_free(gpn); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4833 g_free(gpo); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4834 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4835 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4836 |
19189
07413ddcd49c
Allow you to move your Yahoo! buddies between groups again.
Tim Ringenbach <marv@pidgin.im>
parents:
18769
diff
changeset
|
4837 pkt = yahoo_packet_new(YAHOO_SERVICE_CHGRP_15, YAHOO_STATUS_AVAILABLE, 0); |
26224
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4838 if(f->protocol) |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4839 yahoo_packet_hash(pkt, "ssssissss", 1, purple_connection_get_display_name(gc), |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4840 302, "240", 300, "240", 7, who, 241, f->protocol, 224, gpo, 264, gpn, 301, |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4841 "240", 303, "240"); |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4842 else |
3b19ea3c8165
MSN Interoperability, add, remove buddies, change group, send im, etc
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26223
diff
changeset
|
4843 yahoo_packet_hash(pkt, "ssssssss", 1, purple_connection_get_display_name(gc), |
19189
07413ddcd49c
Allow you to move your Yahoo! buddies between groups again.
Tim Ringenbach <marv@pidgin.im>
parents:
18769
diff
changeset
|
4844 302, "240", 300, "240", 7, who, 224, gpo, 264, gpn, 301, |
07413ddcd49c
Allow you to move your Yahoo! buddies between groups again.
Tim Ringenbach <marv@pidgin.im>
parents:
18769
diff
changeset
|
4845 "240", 303, "240"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4846 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4847 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4848 g_free(gpn); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4849 g_free(gpo); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4850 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4851 |
15823 | 4852 static void yahoo_rename_group(PurpleConnection *gc, const char *old_name, |
4853 PurpleGroup *group, GList *moved_buddies) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4854 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4855 struct yahoo_data *yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4856 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4857 char *gpn, *gpo; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4858 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4859 gpn = yahoo_string_encode(gc, group->name, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4860 gpo = yahoo_string_encode(gc, old_name, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4861 if (!strcmp(gpn, gpo)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4862 g_free(gpn); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4863 g_free(gpo); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4864 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4865 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4866 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4867 pkt = yahoo_packet_new(YAHOO_SERVICE_GROUPRENAME, YAHOO_STATUS_AVAILABLE, 0); |
15823 | 4868 yahoo_packet_hash(pkt, "sss", 1, purple_connection_get_display_name(gc), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4869 65, gpo, 67, gpn); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4870 yahoo_packet_send_and_free(pkt, yd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4871 g_free(gpn); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4872 g_free(gpo); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4873 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4874 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4875 /********************************* Commands **********************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4876 |
15823 | 4877 static PurpleCmdRet |
4878 yahoopurple_cmd_buzz(PurpleConversation *c, const gchar *cmd, gchar **args, gchar **error, void *data) { | |
4879 PurpleAccount *account = purple_conversation_get_account(c); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4880 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4881 if (*args && args[0]) |
15823 | 4882 return PURPLE_CMD_RET_FAILED; |
4883 | |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4884 serv_send_attention(account->gc, c->name, YAHOO_BUZZ); |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4885 |
15823 | 4886 return PURPLE_CMD_RET_OK; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4887 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4888 |
15823 | 4889 static PurplePlugin *my_protocol = NULL; |
4890 | |
4891 static PurpleCmdRet | |
4892 yahoopurple_cmd_chat_join(PurpleConversation *conv, const char *cmd, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4893 char **args, char **error, void *data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4894 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4895 GHashTable *comp; |
15823 | 4896 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4897 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4898 int id; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4899 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4900 if (!args || !args[0]) |
15823 | 4901 return PURPLE_CMD_RET_FAILED; |
4902 | |
4903 gc = purple_conversation_get_gc(conv); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4904 yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4905 id = yd->conf_id; |
15823 | 4906 purple_debug(PURPLE_DEBUG_INFO, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4907 "Trying to join %s \n", args[0]); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4908 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4909 comp = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4910 g_hash_table_replace(comp, g_strdup("room"), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4911 g_strdup_printf("%s", g_ascii_strdown(args[0], strlen(args[0])))); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4912 g_hash_table_replace(comp, g_strdup("type"), g_strdup("Chat")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4913 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4914 yahoo_c_join(gc, comp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4915 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4916 g_hash_table_destroy(comp); |
15823 | 4917 return PURPLE_CMD_RET_OK; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4918 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4919 |
15823 | 4920 static PurpleCmdRet |
4921 yahoopurple_cmd_chat_list(PurpleConversation *conv, const char *cmd, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4922 char **args, char **error, void *data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4923 { |
15823 | 4924 PurpleAccount *account = purple_conversation_get_account(conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4925 if (*args && args[0]) |
15823 | 4926 return PURPLE_CMD_RET_FAILED; |
4927 purple_roomlist_show_with_account(account); | |
4928 return PURPLE_CMD_RET_OK; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4929 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4930 |
15823 | 4931 static gboolean yahoo_offline_message(const PurpleBuddy *buddy) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4932 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4933 return TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4934 } |
20589
5723dbc6212d
Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19718
diff
changeset
|
4935 |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4936 gboolean yahoo_send_attention(PurpleConnection *gc, const char *username, guint type) |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4937 { |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4938 PurpleConversation *c; |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4939 |
20589
5723dbc6212d
Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19718
diff
changeset
|
4940 c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4941 username, gc->account); |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4942 |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4943 g_return_val_if_fail(c != NULL, FALSE); |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4944 |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4945 purple_debug(PURPLE_DEBUG_INFO, "yahoo", |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4946 "Sending <ding> on account %s to buddy %s.\n", username, c->name); |
19511
ea26d30449fd
Add a new flag PURPLE_MESSAGE_INVISIBLE which can be used to send a message
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19465
diff
changeset
|
4947 purple_conv_im_send_with_flags(PURPLE_CONV_IM(c), "<ding>", PURPLE_MESSAGE_INVISIBLE); |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4948 |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4949 return TRUE; |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4950 } |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4951 |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4952 GList *yahoo_attention_types(PurpleAccount *account) |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4953 { |
19465
d9d9283680a4
In MSN prpl, use attention API. Can be disabled by undefining
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19464
diff
changeset
|
4954 static GList *list = NULL; |
d9d9283680a4
In MSN prpl, use attention API. Can be disabled by undefining
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19464
diff
changeset
|
4955 |
d9d9283680a4
In MSN prpl, use attention API. Can be disabled by undefining
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19464
diff
changeset
|
4956 if (!list) { |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4957 /* Yahoo only supports one attention command: the 'buzz'. */ |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4958 /* This is index number YAHOO_BUZZ. */ |
22097
eab7d03edfcb
This adds accessor and mutator API for the PurpleAttentionType struct.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22080
diff
changeset
|
4959 list = g_list_append(list, purple_attention_type_new("Buzz", _("Buzz"), |
eab7d03edfcb
This adds accessor and mutator API for the PurpleAttentionType struct.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22080
diff
changeset
|
4960 _("%s has buzzed you!"), _("Buzzing %s..."))); |
20589
5723dbc6212d
Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19718
diff
changeset
|
4961 } |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4962 |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4963 return list; |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
4964 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4965 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4966 /************************** Plugin Initialization ****************************/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4967 static void |
15823 | 4968 yahoopurple_register_commands(void) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4969 { |
15823 | 4970 purple_cmd_register("join", "s", PURPLE_CMD_P_PRPL, |
4971 PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT | | |
4972 PURPLE_CMD_FLAG_PRPL_ONLY, | |
4973 "prpl-yahoo", yahoopurple_cmd_chat_join, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4974 _("join <room>: Join a chat room on the Yahoo network"), NULL); |
15823 | 4975 purple_cmd_register("list", "", PURPLE_CMD_P_PRPL, |
4976 PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT | | |
4977 PURPLE_CMD_FLAG_PRPL_ONLY, | |
4978 "prpl-yahoo", yahoopurple_cmd_chat_list, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4979 _("list: List rooms on the Yahoo network"), NULL); |
15823 | 4980 purple_cmd_register("buzz", "", PURPLE_CMD_P_PRPL, |
4981 PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_PRPL_ONLY, | |
4982 "prpl-yahoo", yahoopurple_cmd_buzz, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4983 _("buzz: Buzz a user to get their attention"), NULL); |
15823 | 4984 purple_cmd_register("doodle", "", PURPLE_CMD_P_PRPL, |
4985 PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_PRPL_ONLY, | |
4986 "prpl-yahoo", yahoo_doodle_purple_cmd_start, | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4987 _("doodle: Request user to start a Doodle session"), NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4988 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4989 |
15823 | 4990 static PurpleAccount *find_acct(const char *prpl, const char *acct_id) |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
4991 { |
15823 | 4992 PurpleAccount *acct = NULL; |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
4993 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
4994 /* If we have a specific acct, use it */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
4995 if (acct_id) { |
15823 | 4996 acct = purple_accounts_find(acct_id, prpl); |
4997 if (acct && !purple_account_is_connected(acct)) | |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
4998 acct = NULL; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
4999 } else { /* Otherwise find an active account for the protocol */ |
18063
926ccb104da0
disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents:
18058
diff
changeset
|
5000 GList *l = purple_accounts_get_all(); |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5001 while (l) { |
15823 | 5002 if (!strcmp(prpl, purple_account_get_protocol_id(l->data)) |
5003 && purple_account_is_connected(l->data)) { | |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5004 acct = l->data; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5005 break; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5006 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5007 l = l->next; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5008 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5009 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5010 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5011 return acct; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5012 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5013 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5014 /* This may not be the best way to do this, but we find the first key w/o a value |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5015 * and assume it is the screenname */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5016 static void yahoo_find_uri_novalue_param(gpointer key, gpointer value, gpointer user_data) |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5017 { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5018 char **retval = user_data; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5019 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5020 if (value == NULL && *retval == NULL) { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5021 *retval = key; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5022 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5023 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5024 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5025 static gboolean yahoo_uri_handler(const char *proto, const char *cmd, GHashTable *params) |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5026 { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5027 char *acct_id = g_hash_table_lookup(params, "account"); |
15823 | 5028 PurpleAccount *acct; |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5029 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5030 if (g_ascii_strcasecmp(proto, "ymsgr")) |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5031 return FALSE; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5032 |
15823 | 5033 acct = find_acct(purple_plugin_get_id(my_protocol), acct_id); |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5034 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5035 if (!acct) |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5036 return FALSE; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5037 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5038 /* ymsgr:SendIM?screename&m=The+Message */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5039 if (!g_ascii_strcasecmp(cmd, "SendIM")) { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5040 char *sname = NULL; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5041 g_hash_table_foreach(params, yahoo_find_uri_novalue_param, &sname); |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5042 if (sname) { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5043 char *message = g_hash_table_lookup(params, "m"); |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5044 |
15823 | 5045 PurpleConversation *conv = purple_find_conversation_with_account( |
5046 PURPLE_CONV_TYPE_IM, sname, acct); | |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5047 if (conv == NULL) |
15823 | 5048 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, sname); |
5049 purple_conversation_present(conv); | |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5050 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5051 if (message) { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5052 /* Spaces are encoded as '+' */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5053 g_strdelimit(message, "+", ' '); |
18642
3f0204c58dfa
Don't actually send messages using the protocol handlers (open the window and pre-populate the message, but require the user to actually send the message). Fixes #1961.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18063
diff
changeset
|
5054 purple_conv_send_confirm(conv, message); |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5055 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5056 } |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
5057 /* else |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5058 **If pidgindialogs_im() was in the core, we could use it here. |
15823 | 5059 * It is all purple_request_* based, but I'm not sure it really belongs in the core |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
5060 pidgindialogs_im(); */ |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5061 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5062 return TRUE; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5063 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5064 /* ymsgr:Chat?roomname */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5065 else if (!g_ascii_strcasecmp(cmd, "Chat")) { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5066 char *rname = NULL; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5067 g_hash_table_foreach(params, yahoo_find_uri_novalue_param, &rname); |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5068 if (rname) { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5069 /* This is somewhat hacky, but the params aren't useful after this command */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5070 g_hash_table_insert(params, g_strdup("room"), g_strdup(rname)); |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5071 g_hash_table_insert(params, g_strdup("type"), g_strdup("Chat")); |
15823 | 5072 serv_join_chat(purple_account_get_connection(acct), params); |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5073 } |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
5074 /* else |
15823 | 5075 ** Same as above (except that this would have to be re-written using purple_request_*) |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5076 pidgin_blist_joinchat_show(); */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5077 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5078 return TRUE; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5079 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5080 /* ymsgr:AddFriend?name */ |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5081 else if (!g_ascii_strcasecmp(cmd, "AddFriend")) { |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5082 char *name = NULL; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5083 g_hash_table_foreach(params, yahoo_find_uri_novalue_param, &name); |
15823 | 5084 purple_blist_request_add_buddy(acct, name, NULL, NULL); |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5085 return TRUE; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5086 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5087 |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5088 return FALSE; |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5089 } |
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5090 |
15823 | 5091 static PurpleWhiteboardPrplOps yahoo_whiteboard_prpl_ops = |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5092 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5093 yahoo_doodle_start, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5094 yahoo_doodle_end, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5095 yahoo_doodle_get_dimensions, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5096 NULL, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5097 yahoo_doodle_get_brush, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5098 yahoo_doodle_set_brush, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5099 yahoo_doodle_send_draw_list, |
16675
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5100 yahoo_doodle_clear, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5101 |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5102 /* padding */ |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5103 NULL, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5104 NULL, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5105 NULL, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5106 NULL |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5107 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5108 |
15823 | 5109 static PurplePluginProtocolInfo prpl_info = |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5110 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5111 OPT_PROTO_MAIL_CHECK | OPT_PROTO_CHAT_TOPIC, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5112 NULL, /* user_splits */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5113 NULL, /* protocol_options */ |
15823 | 5114 {"png,gif,jpeg", 96, 96, 96, 96, 0, PURPLE_ICON_SCALE_SEND}, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5115 yahoo_list_icon, |
15463 | 5116 yahoo_list_emblem, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5117 yahoo_status_text, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5118 yahoo_tooltip_text, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5119 yahoo_status_types, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5120 yahoo_blist_node_menu, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5121 yahoo_c_info, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5122 yahoo_c_info_defaults, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5123 yahoo_login, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5124 yahoo_close, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5125 yahoo_send_im, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5126 NULL, /* set info */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5127 yahoo_send_typing, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5128 yahoo_get_info, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5129 yahoo_set_status, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5130 yahoo_set_idle, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5131 NULL, /* change_passwd*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5132 yahoo_add_buddy, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5133 NULL, /* add_buddies */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5134 yahoo_remove_buddy, |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
5135 NULL, /* remove_buddies */ |
22242
d5b65bead569
Yahoo! has no permit list, so get rid of the add_permit and rem_permit prpl
Mark Doliner <mark@kingant.net>
parents:
22239
diff
changeset
|
5136 NULL, /* add_permit */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5137 yahoo_add_deny, |
22242
d5b65bead569
Yahoo! has no permit list, so get rid of the add_permit and rem_permit prpl
Mark Doliner <mark@kingant.net>
parents:
22239
diff
changeset
|
5138 NULL, /* rem_permit */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5139 yahoo_rem_deny, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5140 yahoo_set_permit_deny, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5141 yahoo_c_join, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5142 NULL, /* reject chat invite */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5143 yahoo_get_chat_name, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5144 yahoo_c_invite, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5145 yahoo_c_leave, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5146 NULL, /* chat whisper */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5147 yahoo_c_send, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5148 yahoo_keepalive, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5149 NULL, /* register_user */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5150 NULL, /* get_cb_info */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5151 NULL, /* get_cb_away */ |
18763
08a6a01b7ebe
Yahoo server-side aliases patch from John Moody. Fixes #1653 Thanks!
Sean Egan <seanegan@gmail.com>
parents:
18758
diff
changeset
|
5152 yahoo_update_alias, /* alias_buddy */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5153 yahoo_change_buddys_group, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5154 yahoo_rename_group, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5155 NULL, /* buddy_free */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5156 NULL, /* convo_closed */ |
15823 | 5157 purple_normalize_nocase, /* normalize */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5158 yahoo_set_buddy_icon, |
15823 | 5159 NULL, /* void (*remove_group)(PurpleConnection *gc, const char *group);*/ |
5160 NULL, /* char *(*get_cb_real_name)(PurpleConnection *gc, int id, const char *who); */ | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5161 NULL, /* set_chat_topic */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5162 NULL, /* find_blist_chat */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5163 yahoo_roomlist_get_list, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5164 yahoo_roomlist_cancel, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5165 yahoo_roomlist_expand_category, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5166 NULL, /* can_receive_file */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5167 yahoo_send_file, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5168 yahoo_new_xfer, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5169 yahoo_offline_message, /* offline_message */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5170 &yahoo_whiteboard_prpl_ops, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5171 NULL, /* send_raw */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5172 NULL, /* roomlist_room_serialize */ |
19488
ebe2d2e71223
Fixed merge errors stemming from the fact that the main branch and my branch both added something to the prpl struct
Andreas Monitzer <pidgin@monitzer.com>
parents:
19465
diff
changeset
|
5173 NULL, /* unregister_user */ |
16675
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5174 |
19464
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
5175 yahoo_send_attention, |
ca45543c11a3
Change Yahoo prpl to use attention API in libpurple. Previous behavior can
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19444
diff
changeset
|
5176 yahoo_attention_types, |
16675
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5177 |
23111
718a9c287839
Use up the last padding for PurplePluginProtocolInfo in a way that allows
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22666
diff
changeset
|
5178 sizeof(PurplePluginProtocolInfo), /* struct_size */ |
16675
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5179 NULL |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5180 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5181 |
15823 | 5182 static PurplePluginInfo info = |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5183 { |
15823 | 5184 PURPLE_PLUGIN_MAGIC, |
5185 PURPLE_MAJOR_VERSION, | |
5186 PURPLE_MINOR_VERSION, | |
5187 PURPLE_PLUGIN_PROTOCOL, /**< type */ | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5188 NULL, /**< ui_requirement */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5189 0, /**< flags */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5190 NULL, /**< dependencies */ |
15823 | 5191 PURPLE_PRIORITY_DEFAULT, /**< priority */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5192 "prpl-yahoo", /**< id */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5193 "Yahoo", /**< name */ |
21030
3cc856ca2338
Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <stu@nosnilmot.com>
parents:
20687
diff
changeset
|
5194 DISPLAY_VERSION, /**< version */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5195 /** summary */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5196 N_("Yahoo Protocol Plugin"), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5197 /** description */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5198 N_("Yahoo Protocol Plugin"), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5199 NULL, /**< author */ |
15823 | 5200 PURPLE_WEBSITE, /**< homepage */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5201 NULL, /**< load */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5202 yahoo_unload_plugin, /**< unload */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5203 NULL, /**< destroy */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5204 NULL, /**< ui_info */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5205 &prpl_info, /**< extra_info */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5206 NULL, |
16675
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5207 yahoo_actions, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5208 |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5209 /* padding */ |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5210 NULL, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5211 NULL, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5212 NULL, |
a338acd14365
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16530
diff
changeset
|
5213 NULL |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5214 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5215 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5216 static void |
15823 | 5217 init_plugin(PurplePlugin *plugin) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5218 { |
15823 | 5219 PurpleAccountOption *option; |
5220 | |
5221 option = purple_account_option_bool_new(_("Yahoo Japan"), "yahoojp", FALSE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5222 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5223 |
15823 | 5224 option = purple_account_option_string_new(_("Pager server"), "server", YAHOO_PAGER_HOST); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5225 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5226 |
15823 | 5227 option = purple_account_option_string_new(_("Japan Pager server"), "serverjp", YAHOOJP_PAGER_HOST); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5228 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5229 |
15823 | 5230 option = purple_account_option_int_new(_("Pager port"), "port", YAHOO_PAGER_PORT); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5231 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5232 |
15823 | 5233 option = purple_account_option_string_new(_("File transfer server"), "xfer_host", YAHOO_XFER_HOST); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5234 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5235 |
15823 | 5236 option = purple_account_option_string_new(_("Japan file transfer server"), "xferjp_host", YAHOOJP_XFER_HOST); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5237 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5238 |
15823 | 5239 option = purple_account_option_int_new(_("File transfer port"), "xfer_port", YAHOO_XFER_PORT); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5240 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5241 |
15823 | 5242 option = purple_account_option_string_new(_("Chat room locale"), "room_list_locale", YAHOO_ROOMLIST_LOCALE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5243 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5244 |
15823 | 5245 option = purple_account_option_bool_new(_("Ignore conference and chatroom invitations"), "ignore_invites", FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5246 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5247 |
15823 | 5248 option = purple_account_option_string_new(_("Encoding"), "local_charset", "ISO-8859-1"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5249 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5250 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5251 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5252 #if 0 |
15823 | 5253 option = purple_account_option_string_new(_("Chat room list URL"), "room_list", YAHOO_ROOMLIST_URL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5254 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5255 |
15823 | 5256 option = purple_account_option_string_new(_("Yahoo Chat server"), "ycht-server", YAHOO_YCHT_HOST); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5257 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5258 |
15823 | 5259 option = purple_account_option_int_new(_("Yahoo Chat port"), "ycht-port", YAHOO_YCHT_PORT); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5260 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5261 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5262 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5263 my_protocol = plugin; |
15823 | 5264 yahoopurple_register_commands(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5265 yahoo_init_colorht(); |
15624
71af5b6209d5
uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15525
diff
changeset
|
5266 |
15823 | 5267 purple_signal_connect(purple_get_core(), "uri-handler", plugin, |
5268 PURPLE_CALLBACK(yahoo_uri_handler), NULL); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5269 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5270 |
15823 | 5271 PURPLE_INIT_PLUGIN(yahoo, init_plugin, info); |