src/server.c

Tue, 27 May 2003 03:38:52 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Tue, 27 May 2003 03:38:52 +0000
changeset 5537
812794b97b08
parent 5498
01eec144d71b
child 5539
a13dd0ba205a
permissions
-rw-r--r--

[gaim-migrate @ 5937]
This is:
-AIM over OSCAR use Christian's new, kick ass
gaim_notify_email stuff for new mail notification. This
should be good, but it's kind of a pain to test. Let me
know if you have any problems

-Minor fix to the translation README

-2 minor changes to the doxygen of 2 major header files
(this means you'll have to recompile a lot of files :-) )

-If your global proxy setting is "No Proxy" and your global
proxy host is empty, but $http_proxy is set to something,
gaim used to switch your global proxy setting to "HTTP." It
no longer does this. This makes more sense to me. If you
disagree, please let me know--this is open to debate, and
what not. Also, the use of environmental proxy settings
will be changed a bit in the next day or two

1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
22 #ifdef HAVE_CONFIG_H
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2048
diff changeset
23 #include <config.h>
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 338
diff changeset
24 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #include <time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #include <stdio.h>
1057
0161606a8549 [gaim-migrate @ 1067]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1056
diff changeset
27 #include <stdlib.h>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <string.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <sys/types.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30 #include <sys/stat.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31 #include <sys/time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
32 #include <unistd.h>
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2108
diff changeset
33 #include <errno.h>
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
34 #include "gtkimhtml.h"
981
00723c9a507c [gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 980
diff changeset
35 #include "prpl.h"
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
36 #include "multi.h"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37 #include "gaim.h"
4767
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
38 #include "sound.h"
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
39 #include "pounce.h"
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5411
diff changeset
40 #include "notify.h"
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
41
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
42 void serv_login(struct gaim_account *account)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
43 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
44 GaimPlugin *p = gaim_find_prpl(account->protocol);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
45 GaimPluginProtocolInfo *prpl_info = NULL;
4040
d5716b804412 [gaim-migrate @ 4248]
Nathan Walp <nwalp@pidgin.im>
parents: 3985
diff changeset
46
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
47 if (account->gc != NULL || p == NULL)
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
48 return;
2531
fc386c329837 [gaim-migrate @ 2544]
Rob Flynn <gaim@robflynn.com>
parents: 2506
diff changeset
49
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
50 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(p);
3572
d07e14aa6f26 [gaim-migrate @ 3670]
Sean Egan <seanegan@pidgin.im>
parents: 3570
diff changeset
51
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
52 if (prpl_info->login) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
53 if (!strlen(account->password) && !(prpl_info->options & OPT_PROTO_NO_PASSWORD) &&
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
54 !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL)) {
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5411
diff changeset
55 gaim_notify_error(NULL, NULL,
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5411
diff changeset
56 _("Please enter your password"), NULL);
2531
fc386c329837 [gaim-migrate @ 2544]
Rob Flynn <gaim@robflynn.com>
parents: 2506
diff changeset
57 return;
fc386c329837 [gaim-migrate @ 2544]
Rob Flynn <gaim@robflynn.com>
parents: 2506
diff changeset
58 }
fc386c329837 [gaim-migrate @ 2544]
Rob Flynn <gaim@robflynn.com>
parents: 2506
diff changeset
59
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
60 gaim_debug(GAIM_DEBUG_INFO, "server",
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
61 PACKAGE " " VERSION " logging in %s using %s\n",
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
62 account->username, p->info->name);
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
63 account->connecting = TRUE;
3517
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
64 connecting_count++;
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
65 gaim_debug(GAIM_DEBUG_MISC, "server",
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
66 "connection count: %d\n", connecting_count);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
67 gaim_event_broadcast(event_connecting, account);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
68 prpl_info->login(account);
423
3b1668d30afc [gaim-migrate @ 433]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 414
diff changeset
69 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
70 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
71
2382
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
72 static gboolean send_keepalive(gpointer d)
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
73 {
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
74 struct gaim_connection *gc = d;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
75 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
76
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
77 if (gc != NULL && gc->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
78 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
79
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
80 if (prpl_info && prpl_info->keepalive)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
81 prpl_info->keepalive(gc);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
82
2382
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
83 return TRUE;
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
84 }
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
85
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
86 static void update_keepalive(struct gaim_connection *gc, gboolean on)
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
87 {
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
88 if (on && !gc->keepalive) {
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
89 gaim_debug(GAIM_DEBUG_INFO, "server", "allowing NOP\n");
2382
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
90 gc->keepalive = g_timeout_add(60000, send_keepalive, gc);
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
91 } else if (!on && gc->keepalive > 0) {
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
92 gaim_debug(GAIM_DEBUG_INFO, "server", "removing NOP\n");
2382
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
93 g_source_remove(gc->keepalive);
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
94 gc->keepalive = 0;
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
95 }
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
96 }
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
97
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
98 void serv_close(struct gaim_connection *gc)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
99 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
100 GaimPlugin *prpl;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
101 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
102
2017
39809db22611 [gaim-migrate @ 2027]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2001
diff changeset
103 while (gc->buddy_chats) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
104 struct gaim_conversation *b = gc->buddy_chats->data;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
105
1063
f766a178ee59 [gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
106 gc->buddy_chats = g_slist_remove(gc->buddy_chats, b);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
107
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
108 /* TODO: Nuke the UI-specific code here. */
4398
ba901bb913e5 [gaim-migrate @ 4667]
Christian Hammond <chipx86@chipx86.com>
parents: 4359
diff changeset
109 if (GAIM_IS_GTK_CONVERSATION(b))
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
110 gaim_gtkconv_update_buttons_by_protocol(b);
1063
f766a178ee59 [gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
111 }
f766a178ee59 [gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
112
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
113 if (gc->idle_timer > 0)
2131
ef072ae1b2b8 [gaim-migrate @ 2141]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2123
diff changeset
114 g_source_remove(gc->idle_timer);
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
115 gc->idle_timer = 0;
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
116
2382
69a4e3665132 [gaim-migrate @ 2395]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2381
diff changeset
117 update_keepalive(gc, FALSE);
1050
3e0405bc3cf4 [gaim-migrate @ 1060]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1038
diff changeset
118
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
119 if (gc->prpl != NULL) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
120 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
121
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
122 if (prpl_info->close)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
123 prpl_info->close(gc);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
124 }
4040
d5716b804412 [gaim-migrate @ 4248]
Nathan Walp <nwalp@pidgin.im>
parents: 3985
diff changeset
125
3572
d07e14aa6f26 [gaim-migrate @ 3670]
Sean Egan <seanegan@pidgin.im>
parents: 3570
diff changeset
126 prpl = gc->prpl;
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
127 account_offline(gc);
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
128 destroy_gaim_conn(gc);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
129 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
130
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
131 void serv_touch_idle(struct gaim_connection *gc)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
132 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
133 /* Are we idle? If so, not anymore */
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
134 if (gc->is_idle > 0) {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
135 gc->is_idle = 0;
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
136 serv_set_idle(gc, 0);
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
137 }
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
138 time(&gc->lastsent);
1834
929b136ac3b7 [gaim-migrate @ 1844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1815
diff changeset
139 if (gc->is_auto_away)
929b136ac3b7 [gaim-migrate @ 1844]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1815
diff changeset
140 check_idle(gc);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
141 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
142
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
143 void serv_finish_login(struct gaim_connection *gc)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
144 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
145 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
146
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
147 if (gc != NULL && gc->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
148 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
149
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
150 if (strlen(gc->account->user_info)) {
1976
9fd3356e3a24 [gaim-migrate @ 1986]
Rob Flynn <gaim@robflynn.com>
parents: 1938
diff changeset
151 /* g_malloc(strlen(gc->user->user_info) * 4);
9fd3356e3a24 [gaim-migrate @ 1986]
Rob Flynn <gaim@robflynn.com>
parents: 1938
diff changeset
152 strncpy_withhtml(buf, gc->user->user_info, strlen(gc->user->user_info) * 4); */
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
153 serv_set_info(gc, gc->account->user_info);
1976
9fd3356e3a24 [gaim-migrate @ 1986]
Rob Flynn <gaim@robflynn.com>
parents: 1938
diff changeset
154 /* g_free(buf); */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
155 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
156
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
157 if (gc->idle_timer > 0)
2131
ef072ae1b2b8 [gaim-migrate @ 2141]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2123
diff changeset
158 g_source_remove(gc->idle_timer);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
159
2381
553cf0455173 [gaim-migrate @ 2394]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
160 gc->idle_timer = g_timeout_add(20000, check_idle, gc);
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
161 serv_touch_idle(gc);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
162
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
163 if (prpl_info->options & OPT_PROTO_CORRECT_TIME)
1995
b9457664ec78 [gaim-migrate @ 2005]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1981
diff changeset
164 serv_add_buddy(gc, gc->username);
b9457664ec78 [gaim-migrate @ 2005]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1981
diff changeset
165
1772
c759c01bd66f [gaim-migrate @ 1782]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1771
diff changeset
166 update_keepalive(gc, TRUE);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
167 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
168
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
169 /* This should return the elapsed time in seconds in which Gaim will not send
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
170 * typing notifications.
3001
9fc89391c8fa [gaim-migrate @ 3014]
Sean Egan <seanegan@pidgin.im>
parents: 2993
diff changeset
171 * if it returns zero, it will not send any more typing notifications
9fc89391c8fa [gaim-migrate @ 3014]
Sean Egan <seanegan@pidgin.im>
parents: 2993
diff changeset
172 * typing is a flag - TRUE for typing, FALSE for stopped typing */
9fc89391c8fa [gaim-migrate @ 3014]
Sean Egan <seanegan@pidgin.im>
parents: 2993
diff changeset
173 int serv_send_typing(struct gaim_connection *g, char *name, int typing) {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
174 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
175
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
176 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
177 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
178
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
179 if (g && prpl_info && prpl_info->send_typing)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
180 return prpl_info->send_typing(g, name, typing);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
181
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
182 return 0;
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
183 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
184
3815
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
185 struct queued_away_response {
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
186 char name[80];
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
187 time_t sent_away;
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
188 };
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
189
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
190 struct queued_away_response *find_queued_away_response_by_name(char *name);
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
191
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
192 int serv_send_im(struct gaim_connection *gc, char *name, char *message,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
193 int len, int flags)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
194 {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
195 struct gaim_conversation *c;
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2108
diff changeset
196 int val = -EINVAL;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
197 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
198
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
199 if (gc != NULL && gc->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
200 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
201
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
202 c = gaim_find_conversation(name);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
203
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
204 if (prpl_info && prpl_info->send_im)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
205 val = prpl_info->send_im(gc, name, message, len, flags);
94
0c6ba3d3fa90 [gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 79
diff changeset
206
2231
9d8593ab093e [gaim-migrate @ 2241]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2205
diff changeset
207 if (!(flags & IM_FLAG_AWAY))
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
208 serv_touch_idle(gc);
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2108
diff changeset
209
3815
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
210 if (gc->away && away_options & OPT_AWAY_DELAY_IN_USE &&
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
211 !(away_options & OPT_AWAY_NO_AUTO_RESP)) {
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
212 time_t t;
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
213 struct queued_away_response *qar;
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
214 time(&t);
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
215 qar = find_queued_away_response_by_name(name);
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
216 if (!qar) {
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
217 qar = (struct queued_away_response *)g_new0(struct queued_away_response, 1);
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
218 g_snprintf(qar->name, sizeof(qar->name), "%s", name);
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
219 qar->sent_away = 0;
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
220 away_time_queue = g_slist_append(away_time_queue, qar);
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
221 }
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
222 qar->sent_away = t;
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
223 }
111911707a8c [gaim-migrate @ 3962]
Joshua Blanton <jblanton@cs.ohiou.edu>
parents: 3792
diff changeset
224
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
225 if (c && gaim_im_get_type_again_timeout(GAIM_IM(c)))
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
226 gaim_im_stop_type_again_timeout(GAIM_IM(c));
3601
dce8ae5ad0bb [gaim-migrate @ 3703]
Nathan Walp <nwalp@pidgin.im>
parents: 3572
diff changeset
227
2123
4cfdde0aa3f1 [gaim-migrate @ 2133]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2108
diff changeset
228 return val;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
229 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
230
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
231 void serv_get_info(struct gaim_connection *g, char *name)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
232 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
233 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
234
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
235 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
236 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
237
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
238 if (g && prpl_info && prpl_info->get_info)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
239 prpl_info->get_info(g, name);
249
14b7e4f943ff [gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 248
diff changeset
240 }
14b7e4f943ff [gaim-migrate @ 259]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 248
diff changeset
241
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
242 void serv_get_away(struct gaim_connection *g, const char *name)
2773
3f711c709792 [gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2768
diff changeset
243 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
244 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
245
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
246 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
247 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
248
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
249 if (g && prpl_info && prpl_info->get_away)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
250 prpl_info->get_away(g, name);
2773
3f711c709792 [gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2768
diff changeset
251 }
3f711c709792 [gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2768
diff changeset
252
1032
c16107c10195 [gaim-migrate @ 1042]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
253 void serv_get_dir(struct gaim_connection *g, char *name)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
254 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
255 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
256
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
257 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
258 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
259
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
260 if (prpl_info && g_slist_find(connections, g) && prpl_info->get_dir)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
261 prpl_info->get_dir(g, name);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
262 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
263
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
264 void serv_set_dir(struct gaim_connection *g, const char *first,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
265 const char *middle, const char *last, const char *maiden,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
266 const char *city, const char *state, const char *country,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
267 int web)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
268 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
269 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
270
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
271 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
272 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
273
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
274 if (prpl_info && g_slist_find(connections, g) && prpl_info->set_dir)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
275 prpl_info->set_dir(g, first, middle, last, maiden, city, state,
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
276 country, web);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
277 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
278
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
279 void serv_dir_search(struct gaim_connection *g, const char *first,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
280 const char *middle, const char *last, const char *maiden,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
281 const char *city, const char *state, const char *country,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
282 const char *email)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
283 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
284 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
285
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
286 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
287 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
288
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
289 if (prpl_info && g_slist_find(connections, g) && prpl_info->dir_search)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
290 prpl_info->dir_search(g, first, middle, last, maiden, city, state,
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
291 country, email);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
292 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
293
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
294
1401
e81430ba5d7a [gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
295 void serv_set_away(struct gaim_connection *gc, char *state, char *message)
e81430ba5d7a [gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
296 {
5308
0f9de3e3b1b6 [gaim-migrate @ 5680]
Luke Schierer <lschiere@pidgin.im>
parents: 5304
diff changeset
297 GaimPluginProtocolInfo *prpl_info = NULL;
0f9de3e3b1b6 [gaim-migrate @ 5680]
Luke Schierer <lschiere@pidgin.im>
parents: 5304
diff changeset
298
5328
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
299 if (gc->away_state == NULL && state == NULL &&
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
300 gc->away == NULL && message == NULL) {
5311
6960ce592f44 [gaim-migrate @ 5683]
Christian Hammond <chipx86@chipx86.com>
parents: 5308
diff changeset
301
5304
d5808c5e5607 [gaim-migrate @ 5676]
David J. Brigada <brigada@prism.net>
parents: 5272
diff changeset
302 return;
5311
6960ce592f44 [gaim-migrate @ 5683]
Christian Hammond <chipx86@chipx86.com>
parents: 5308
diff changeset
303 }
5304
d5808c5e5607 [gaim-migrate @ 5676]
David J. Brigada <brigada@prism.net>
parents: 5272
diff changeset
304
5328
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
305 if ((gc->away_state != NULL && state != NULL &&
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
306 !strcmp(gc->away_state, state) &&
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
307 !strcmp(gc->away_state, GAIM_AWAY_CUSTOM)) &&
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
308 (gc->away != NULL && message != NULL && !strcmp(gc->away, message))) {
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
309
5311
6960ce592f44 [gaim-migrate @ 5683]
Christian Hammond <chipx86@chipx86.com>
parents: 5308
diff changeset
310 return;
5328
f0a6558e0fcb [gaim-migrate @ 5701]
Christian Hammond <chipx86@chipx86.com>
parents: 5325
diff changeset
311 }
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
312
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
313 if (gc != NULL && gc->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
314 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
315
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
316 if (prpl_info && prpl_info->set_away) {
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
317 char *buf = NULL;
4111
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
318
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
319 if (gc->away_state) {
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
320 g_free(gc->away_state);
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
321 gc->away_state = NULL;
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
322 }
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
323
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
324 if (message) {
5461
7c55d26c9855 [gaim-migrate @ 5852]
Matt Weber
parents: 5436
diff changeset
325 buf = g_malloc(strlen(message) * 4 + 1);
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2681
diff changeset
326 if (gc->flags & OPT_CONN_HTML)
5461
7c55d26c9855 [gaim-migrate @ 5852]
Matt Weber
parents: 5436
diff changeset
327 strncpy_withhtml(buf, message, strlen(message) * 4 + 1);
1938
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1937
diff changeset
328 else
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
329 strncpy_nohtml(buf, message, strlen(message) + 1);
1937
28dd326a2dc4 [gaim-migrate @ 1947]
Nathan Walp <nwalp@pidgin.im>
parents: 1920
diff changeset
330 }
1938
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1937
diff changeset
331
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
332 prpl_info->set_away(gc, state, buf);
2000
2ae58c11383c [gaim-migrate @ 2010]
Rob Flynn <gaim@robflynn.com>
parents: 1995
diff changeset
333
4111
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
334 if (gc->away && state) {
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
335 gc->away_state = g_strdup(state);
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
336 }
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
337
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
338 gaim_event_broadcast(event_away, gc, state, buf);
1938
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1937
diff changeset
339
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
340 if (buf)
1938
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1937
diff changeset
341 g_free(buf);
1404
e915b372f70a [gaim-migrate @ 1414]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
342 }
1937
28dd326a2dc4 [gaim-migrate @ 1947]
Nathan Walp <nwalp@pidgin.im>
parents: 1920
diff changeset
343
1938
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1937
diff changeset
344 system_log(log_away, gc, NULL, OPT_LOG_BUDDY_AWAY | OPT_LOG_MY_SIGNON);
1401
e81430ba5d7a [gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
345 }
e81430ba5d7a [gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
346
e81430ba5d7a [gaim-migrate @ 1411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1376
diff changeset
347 void serv_set_away_all(char *message)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
348 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
349 GSList *c;
976
553a33f54fe2 [gaim-migrate @ 986]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 973
diff changeset
350 struct gaim_connection *g;
553a33f54fe2 [gaim-migrate @ 986]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 973
diff changeset
351
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
352 for (c = connections; c != NULL; c = c->next) {
976
553a33f54fe2 [gaim-migrate @ 986]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 973
diff changeset
353 g = (struct gaim_connection *)c->data;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
354
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
355 serv_set_away(g, GAIM_AWAY_CUSTOM, message);
423
3b1668d30afc [gaim-migrate @ 433]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 414
diff changeset
356 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
357 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
358
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
359 void serv_set_info(struct gaim_connection *g, char *info)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
360 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
361 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
362
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
363 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
364 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
365
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
366 if (prpl_info && g_slist_find(connections, g) && prpl_info->set_info) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
367 if (gaim_event_broadcast(event_set_info, g, info))
3456
915542b9877e [gaim-migrate @ 3503]
Brian
parents: 3427
diff changeset
368 return;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
369
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
370 prpl_info->set_info(g, info);
1749
d2d9df57c63e [gaim-migrate @ 1759]
Sean Egan <seanegan@pidgin.im>
parents: 1734
diff changeset
371 }
237
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 200
diff changeset
372 }
83ff5f92ee7e [gaim-migrate @ 247]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 200
diff changeset
373
3466
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3457
diff changeset
374 void serv_change_passwd(struct gaim_connection *g, const char *orig, const char *new)
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
375 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
376 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
377
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
378 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
379 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
380
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
381 if (prpl_info && g_slist_find(connections, g) && prpl_info->change_passwd)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
382 prpl_info->change_passwd(g, orig, new);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
383 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
384
3466
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3457
diff changeset
385 void serv_add_buddy(struct gaim_connection *g, const char *name)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
386 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
387 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
388
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
389 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
390 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
391
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
392 if (prpl_info && g_slist_find(connections, g) && prpl_info->add_buddy)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
393 prpl_info->add_buddy(g, name);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
394 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
395
1336
fcec03d17b63 [gaim-migrate @ 1346]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1303
diff changeset
396 void serv_add_buddies(struct gaim_connection *g, GList *buddies)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
397 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
398 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
399
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
400 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
401 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
402
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
403 if (prpl_info && g_slist_find(connections, g)) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
404 if (prpl_info->add_buddies)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
405 prpl_info->add_buddies(g, buddies);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
406 else if (prpl_info->add_buddy) {
1336
fcec03d17b63 [gaim-migrate @ 1346]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1303
diff changeset
407 while (buddies) {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
408 prpl_info->add_buddy(g, buddies->data);
1336
fcec03d17b63 [gaim-migrate @ 1346]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1303
diff changeset
409 buddies = buddies->next;
fcec03d17b63 [gaim-migrate @ 1346]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1303
diff changeset
410 }
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
411 }
1336
fcec03d17b63 [gaim-migrate @ 1346]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1303
diff changeset
412 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
413 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
414
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
415
2681
73cd94b9e78e [gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
416 void serv_remove_buddy(struct gaim_connection *g, char *name, char *group)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
417 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
418 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
419
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
420 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
421 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
422
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
423 if (prpl_info && g_slist_find(connections, g) && prpl_info->remove_buddy)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
424 prpl_info->remove_buddy(g, name, group);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
425 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
426
2681
73cd94b9e78e [gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
427 void serv_remove_buddies(struct gaim_connection *gc, GList *g, char *group)
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
428 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
429 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
430
2586
c867f3e78ed3 [gaim-migrate @ 2599]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2546
diff changeset
431 if (!g_slist_find(connections, gc))
c867f3e78ed3 [gaim-migrate @ 2599]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2546
diff changeset
432 return;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
433
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
434 if (!gc->prpl)
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
435 return; /* how the hell did that happen? */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
436
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
437 if (gc != NULL && gc->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
438 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
439
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
440 if (prpl_info->remove_buddies)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
441 prpl_info->remove_buddies(gc, g, group);
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
442 else {
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
443 while (g) {
2681
73cd94b9e78e [gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2662
diff changeset
444 serv_remove_buddy(gc, g->data, group);
2334
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
445 g = g->next;
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
446 }
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
447 }
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
448 }
d7e3a9fe4a71 [gaim-migrate @ 2347]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
449
3136
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
450 /*
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
451 * Set buddy's alias on server roster/list
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
452 */
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
453 void serv_alias_buddy(struct buddy *b)
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
454 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
455 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
456
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
457 if (b != NULL && b->account->gc->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
458 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(b->account->gc->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
459
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
460 if (b && prpl_info && prpl_info->alias_buddy) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
461 prpl_info->alias_buddy(b->account->gc, b->name, b->alias);
3136
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
462 }
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
463 }
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
464
4227
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
465 void serv_got_alias(struct gaim_connection *gc, char *who, char *alias) {
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
466 struct buddy *b = gaim_find_buddy(gc->account, who);
4227
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
467 if(!b)
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
468 return;
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
469
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
470 if (b->server_alias)
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
471 g_free(b->server_alias);
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
472
4227
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
473 if(alias)
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
474 b->server_alias = g_strdup(alias);
4227
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
475 else
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
476 b->server_alias = NULL;
4227
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
477
4760
0545d9eeba0e [gaim-migrate @ 5077]
Mark Doliner <markdoliner@pidgin.im>
parents: 4732
diff changeset
478 gaim_blist_update_buddy_status(b, b->uc);
4227
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
479 }
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
480
3136
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
481 /*
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
482 * Move a buddy from one group to another on server.
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
483 *
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
484 * Note: For now we'll not deal with changing gc's at the same time, but
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
485 * it should be possible. Probably needs to be done, someday.
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
486 */
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
487 void serv_move_buddy(struct buddy *b, struct group *og, struct group *ng)
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
488 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
489 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
490
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
491 if (b->account->gc != NULL && b->account->gc->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
492 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(b->account->gc->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
493
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
494 if (b && b->account->gc && og && ng) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
495 if (prpl_info && prpl_info->group_buddy) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
496 prpl_info->group_buddy(b->account->gc, b->name, og->name, ng->name);
3136
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
497 }
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
498 }
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
499 }
8d988a6d2f4c [gaim-migrate @ 3151]
Rob Flynn <gaim@robflynn.com>
parents: 3124
diff changeset
500
3348
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
501 /*
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
502 * Rename a group on server roster/list.
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
503 */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
504 void serv_rename_group(struct gaim_connection *g, struct group *old_group,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
505 const char *new_name)
3348
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
506 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
507 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
508
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
509 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
510 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
511
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
512 if (prpl_info && old_group && new_name) {
3348
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
513 GList *tobemoved = NULL;
4969
7e6577f9d4b6 [gaim-migrate @ 5303]
Mark Doliner <markdoliner@pidgin.im>
parents: 4873
diff changeset
514 GaimBlistNode *b = ((GaimBlistNode*)old_group)->child;
3348
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
515
4969
7e6577f9d4b6 [gaim-migrate @ 5303]
Mark Doliner <markdoliner@pidgin.im>
parents: 4873
diff changeset
516 while (b) {
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
517 if(GAIM_BLIST_NODE_IS_BUDDY(b)) {
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
518 struct buddy *bd = (struct buddy *)b;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
519 if (bd->account == g->account)
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
520 tobemoved = g_list_append(tobemoved, bd->name);
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
521 }
4969
7e6577f9d4b6 [gaim-migrate @ 5303]
Mark Doliner <markdoliner@pidgin.im>
parents: 4873
diff changeset
522 b = b->next;
7e6577f9d4b6 [gaim-migrate @ 5303]
Mark Doliner <markdoliner@pidgin.im>
parents: 4873
diff changeset
523 }
3348
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
524
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
525 if (prpl_info->rename_group) {
3348
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
526 /* prpl's might need to check if the group already
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
527 * exists or not, and handle that differently */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
528 prpl_info->rename_group(g, old_group->name, new_name, tobemoved);
3348
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
529 } else {
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
530 serv_remove_buddies(g, tobemoved, old_group->name);
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
531 serv_add_buddies(g, tobemoved);
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
532 }
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
533
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
534 g_list_free(tobemoved);
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
535 }
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
536 }
57ed471963ba [gaim-migrate @ 3367]
Mark Doliner <markdoliner@pidgin.im>
parents: 3163
diff changeset
537
4349
a65175463a31 [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
538 void serv_add_permit(struct gaim_connection *g, const char *name)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
539 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
540 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
541
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
542 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
543 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
544
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
545 if (prpl_info && g_slist_find(connections, g) && prpl_info->add_permit)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
546 prpl_info->add_permit(g, name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
547 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
548
4349
a65175463a31 [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
549 void serv_add_deny(struct gaim_connection *g, const char *name)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
550 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
551 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
552
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
553 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
554 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
555
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
556 if (prpl_info && g_slist_find(connections, g) && prpl_info->add_deny)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
557 prpl_info->add_deny(g, name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
558 }
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
559
4349
a65175463a31 [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
560 void serv_rem_permit(struct gaim_connection *g, const char *name)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
561 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
562 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
563
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
564 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
565 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
566
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
567 if (prpl_info && g_slist_find(connections, g) && prpl_info->rem_permit)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
568 prpl_info->rem_permit(g, name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
569 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
570
4349
a65175463a31 [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
571 void serv_rem_deny(struct gaim_connection *g, const char *name)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
572 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
573 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
574
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
575 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
576 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
577
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
578 if (prpl_info && g_slist_find(connections, g) && prpl_info->rem_deny)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
579 prpl_info->rem_deny(g, name);
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
580 }
678
6e2cb341573a [gaim-migrate @ 688]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 660
diff changeset
581
1038
850b893e1ac9 [gaim-migrate @ 1048]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1032
diff changeset
582 void serv_set_permit_deny(struct gaim_connection *g)
1030
b9fa9eadc0a4 [gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1026
diff changeset
583 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
584 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
585
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
586 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
587 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
588
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
589 /*
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
590 * this is called when either you import a buddy list, and make lots
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
591 * of changes that way, or when the user toggles the permit/deny mode
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
592 * in the prefs. In either case you should probably be resetting and
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
593 * resending the permit/deny info when you get this.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
594 */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
595 if (prpl_info && g_slist_find(connections, g) && prpl_info->set_permit_deny)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
596 prpl_info->set_permit_deny(g);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
597 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
598
1026
fa6230b217bc [gaim-migrate @ 1036]
bryner
parents: 1015
diff changeset
599
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
600 void serv_set_idle(struct gaim_connection *g, int time)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
601 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
602 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
603
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
604 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
605 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
606
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
607 if (prpl_info && g_slist_find(connections, g) && prpl_info->set_idle)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
608 prpl_info->set_idle(g, time);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
609 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
610
976
553a33f54fe2 [gaim-migrate @ 986]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 973
diff changeset
611 void serv_warn(struct gaim_connection *g, char *name, int anon)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
612 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
613 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
614
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
615 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
616 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
617
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
618 if (prpl_info && g_slist_find(connections, g) && prpl_info->warn)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
619 prpl_info->warn(g, name, anon);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
620 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
621
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
622 void serv_join_chat(struct gaim_connection *g, GHashTable *data)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
623 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
624 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
625
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
626 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
627 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
628
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
629 if (prpl_info && g_slist_find(connections, g) && prpl_info->join_chat)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
630 prpl_info->join_chat(g, data);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
631 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
632
3466
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3457
diff changeset
633 void serv_chat_invite(struct gaim_connection *g, int id, const char *message, const char *name)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
634 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
635 GaimPluginProtocolInfo *prpl_info = NULL;
2359
27c1207ca513 [gaim-migrate @ 2372]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2345
diff changeset
636 char *buffy = message && *message ? g_strdup(message) : NULL;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
637
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
638 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
639 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
640
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
641 gaim_event_broadcast(event_chat_send_invite, g, (void *)id, name, &buffy);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
642
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
643 if (prpl_info && g_slist_find(connections, g) && prpl_info->chat_invite)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
644 prpl_info->chat_invite(g, id, buffy, name);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
645
2359
27c1207ca513 [gaim-migrate @ 2372]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2345
diff changeset
646 if (buffy)
27c1207ca513 [gaim-migrate @ 2372]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2345
diff changeset
647 g_free(buffy);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
648 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
649
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 962
diff changeset
650 void serv_chat_leave(struct gaim_connection *g, int id)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
651 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
652 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
653
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
654 if (!g_slist_find(connections, g))
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
655 return;
1015
954a02d6c5e5 [gaim-migrate @ 1025]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1013
diff changeset
656
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
657 if (g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
658 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
659
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
660 if (prpl_info && prpl_info->chat_leave)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
661 prpl_info->chat_leave(g, id);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
662 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
663
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 962
diff changeset
664 void serv_chat_whisper(struct gaim_connection *g, int id, char *who, char *message)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
665 {
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
666 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
667
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
668 if (g != NULL && g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
669 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
670
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
671 if (prpl_info && prpl_info->chat_whisper)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
672 prpl_info->chat_whisper(g, id, who, message);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
673 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
674
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2131
diff changeset
675 int serv_chat_send(struct gaim_connection *g, int id, char *message)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
676 {
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2131
diff changeset
677 int val = -EINVAL;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
678 GaimPluginProtocolInfo *prpl_info = NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
679
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
680 if (g->prpl != NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
681 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(g->prpl);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
682
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
683 if (prpl_info && prpl_info->chat_send)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
684 val = prpl_info->chat_send(g, id, message);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
685
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 931
diff changeset
686 serv_touch_idle(g);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
687
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2131
diff changeset
688 return val;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
689 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
690
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
691 int find_queue_row_by_name(char *name)
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
692 {
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
693 gchar *temp;
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
694 gint i = 0;
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
695 gboolean valid;
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
696 GtkTreeIter iter;
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
697
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
698 valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(awayqueuestore), &iter);
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
699 while(valid) {
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
700 gtk_tree_model_get(GTK_TREE_MODEL(awayqueuestore), &iter, 0, &temp, -1);
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
701 if(!strcmp(name, temp))
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
702 return i;
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
703 g_free(temp);
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
704
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
705 i++;
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
706 valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(awayqueuestore), &iter);
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
707 }
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
708
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
709 return -1;
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
710 }
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
711
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
712 int find_queue_total_by_name(char *name)
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
713 {
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
714 GSList *templist;
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
715 int i = 0;
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
716
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
717 templist = message_queue;
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
718
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
719 while (templist) {
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
720 struct queued_message *qm = (struct queued_message *)templist->data;
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
721 if ((qm->flags & WFLAG_RECV) && !strcmp(name, qm->name))
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
722 i++;
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
723
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
724 templist = templist->next;
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
725 }
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
726
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
727 return i;
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
728 }
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
729
1774
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
730 struct queued_away_response *find_queued_away_response_by_name(char *name)
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
731 {
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
732 GSList *templist;
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
733 struct queued_away_response *qar;
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
734
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
735 templist = away_time_queue;
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
736
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
737 while (templist) {
1774
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
738 qar = (struct queued_away_response *)templist->data;
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
739
1774
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
740 if (!strcmp(name, qar->name))
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
741 return qar;
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
742
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
743 templist = templist->next;
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
744 }
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
745
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
746 return NULL;
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
747 }
734cb657b51e [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1773
diff changeset
748
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
749 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
750 * woo. i'm actually going to comment this function. isn't that fun. make
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
751 * sure to follow along, kids
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
752 */
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
753 void serv_got_im(struct gaim_connection *gc, const char *who, const char *msg,
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
754 guint32 flags, time_t mtime, gint len)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
755 {
1981
c5c54a13e1ef [gaim-migrate @ 1991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
756 char *buffy;
c5c54a13e1ef [gaim-migrate @ 1991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
757 char *angel;
c5c54a13e1ef [gaim-migrate @ 1991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
758 int plugin_return;
2273
b7c08d737d81 [gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2231
diff changeset
759 int away = 0;
1981
c5c54a13e1ef [gaim-migrate @ 1991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
760
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
761 struct gaim_conversation *cnv;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
762
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
763 char *message, *name;
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
764
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
765 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
766 * Pay no attention to the man behind the curtain.
2273
b7c08d737d81 [gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2231
diff changeset
767 *
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
768 * The reason i feel okay with this is because it's useful to some
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
769 * plugins. Gaim doesn't ever use it itself. Besides, it's not entirely
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
770 * accurate; it's possible to have false negatives with most protocols.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
771 * Also with some it's easy to have false positives as well. So if you're
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
772 * a plugin author, don't rely on this, still do your own checks. But uh.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
773 * It's a start.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
774 */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
775
2273
b7c08d737d81 [gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2231
diff changeset
776 if (flags & IM_FLAG_GAIMUSER)
5215
5d45d8852c32 [gaim-migrate @ 5585]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
777 gaim_debug(GAIM_DEBUG_MISC, "server", "%s is a gaim user.\n", who);
2273
b7c08d737d81 [gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2231
diff changeset
778
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
779 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
780 * We should update the conversation window buttons and menu,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
781 * if it exists.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
782 */
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
783 cnv = gaim_find_conversation_with_account(who, gc->account);
2106
ecd1bec6376c [gaim-migrate @ 2116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2104
diff changeset
784
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
785 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
786 * Plugin stuff. we pass a char ** but we don't want to pass what's
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
787 * been given us by the prpls. So we create temp holders and pass
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
788 * those instead. It's basically just to avoid segfaults. Of course,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
789 * if the data is binary, plugins don't see it. Bitch all you want;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
790 * I really don't want you to be dealing with it.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
791 */
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
792 if (len < 0) {
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
793 buffy = g_malloc(MAX(strlen(msg) + 1, BUF_LONG));
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
794 strcpy(buffy, msg);
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
795 angel = g_strdup(who);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
796 plugin_return = gaim_event_broadcast(event_im_recv, gc, &angel, &buffy, &flags);
1339
7154ff47dc2b [gaim-migrate @ 1349]
Rob Flynn <gaim@robflynn.com>
parents: 1336
diff changeset
797
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
798 if (!buffy || !angel || plugin_return) {
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
799 if (buffy)
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
800 g_free(buffy);
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
801 if (angel)
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
802 g_free(angel);
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
803 return;
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
804 }
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
805 name = angel;
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
806 message = buffy;
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
807 } else {
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
808 name = g_strdup(who);
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
809 message = g_memdup(msg, len);
1100
efc7d10c7826 [gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
810 }
2104
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
811
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
812 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
813 * If you can't figure this out, stop reading right now.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
814 * "We're not worthy! We're not worthy!"
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
815 */
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
816 if ((len < 0) && (convo_options & OPT_CONVO_SEND_LINKS)) {
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
817 buffy = linkify_text(message);
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
818 g_free(message);
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
819 message = buffy;
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
820 }
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
821
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
822 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
823 * Um. When we call gaim_conversation_write with the message we received,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
824 * it's nice to pass whether or not it was an auto-response. So if it
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
825 * was an auto-response, we set the appropriate flag. This is just so
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
826 * prpls don't have to know about WFLAG_* (though some do anyway)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
827 */
2273
b7c08d737d81 [gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2231
diff changeset
828 if (flags & IM_FLAG_AWAY)
764
92f08820867b [gaim-migrate @ 774]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 752
diff changeset
829 away = WFLAG_AUTO;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
830
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
831 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
832 * Alright. Two cases for how to handle this. Either we're away or
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
833 * we're not. If we're not, then it's easy. If we are, then there
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
834 * are three or four different ways of handling it and different
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
835 * things we have to do for each.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
836 */
1404
e915b372f70a [gaim-migrate @ 1414]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1401
diff changeset
837 if (gc->away) {
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
838 time_t t;
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
839 char *tmpmsg;
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
840 struct buddy *b = gaim_find_buddy(gc->account, name);
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
841 char *alias = b ? gaim_get_buddy_alias(b) : name;
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
842 int row;
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
843 struct queued_away_response *qar;
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
844
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
845 time(&t);
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
846
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
847 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
848 * Either we're going to queue it or not. Because of the way
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
849 * awayness currently works, this is fucked up. It's possible
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
850 * for an account to be away without the imaway dialog being
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
851 * shown. In fact, it's possible for *all* the accounts to be
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
852 * away without the imaway dialog being shown. So in order for
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
853 * this to be queued properly, we have to make sure that the
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
854 * imaway dialog actually exists, first.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
855 */
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
856 if (!cnv && awayqueue && (away_options & OPT_AWAY_QUEUE)) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
857 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
858 * Alright, so we're going to queue it. Neat, eh? :)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
859 * So first we create something to store the message, and add
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
860 * it to our queue. Then we update the away dialog to indicate
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
861 * that we've queued something.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
862 */
1769
be8325abcb2a [gaim-migrate @ 1779]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1768
diff changeset
863 struct queued_message *qm;
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
864 GtkTreeIter iter;
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
865 gchar path[10];
4167
96a51df2ae94 [gaim-migrate @ 4396]
Robert McQueen <robot101@debian.org>
parents: 4162
diff changeset
866
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
867 qm = g_new0(struct queued_message, 1);
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
868 g_snprintf(qm->name, sizeof(qm->name), "%s", name);
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
869 qm->message = g_memdup(message, len == -1 ? strlen(message) + 1 : len);
4608
c165a90c65fc [gaim-migrate @ 4896]
Nathan Walp <nwalp@pidgin.im>
parents: 4491
diff changeset
870 qm->account = gc->account;
1769
be8325abcb2a [gaim-migrate @ 1779]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1768
diff changeset
871 qm->tm = mtime;
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
872 qm->flags = WFLAG_RECV | away;
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
873 qm->len = len;
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
874 message_queue = g_slist_append(message_queue, qm);
1768
2a69692c4432 [gaim-migrate @ 1778]
Rob Flynn <gaim@robflynn.com>
parents: 1764
diff changeset
875
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
876 row = find_queue_row_by_name(qm->name);
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
877 if (row >= 0) {
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
878 char number[32];
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
879 int qtotal;
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
880
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
881 qtotal = find_queue_total_by_name(qm->name);
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
882 g_snprintf(number, 32, _("(%d messages)"), qtotal);
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
883 g_snprintf(path, 10, "%d", row);
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
884 gtk_tree_model_get_iter_from_string(
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
885 GTK_TREE_MODEL(awayqueuestore), &iter, path);
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
886 gtk_list_store_set(awayqueuestore, &iter,
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
887 1, number, -1);
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
888 } else {
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
889 gtk_tree_model_get_iter_first(GTK_TREE_MODEL(awayqueuestore),
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
890 &iter);
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
891 gtk_list_store_append(awayqueuestore, &iter);
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
892 gtk_list_store_set(awayqueuestore, &iter,
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
893 0, qm->name,
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
894 1, _("(1 message)"),
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
895 -1);
1773
a3293b2b61fb [gaim-migrate @ 1783]
Rob Flynn <gaim@robflynn.com>
parents: 1772
diff changeset
896 }
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
897 } else {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
898 /*
4985
acca57b3fab3 [gaim-migrate @ 5320]
Sean Egan <seanegan@pidgin.im>
parents: 4969
diff changeset
899 * Make sure the conversation
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
900 * exists and is updated (partly handled above already), play
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
901 * the receive sound (sound.c will take care of not playing
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
902 * while away), and then write it to the convo window.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
903 */
4476
bf88170ba269 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4440
diff changeset
904 if (cnv == NULL)
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
905 cnv = gaim_conversation_new(GAIM_CONV_IM, gc->account, name);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
906
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
907 gaim_im_write(GAIM_IM(cnv), NULL, message, len,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
908 away | WFLAG_RECV, mtime);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
909 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
910
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
911 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
912 * Regardless of whether we queue it or not, we should send an
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
913 * auto-response. That is, of course, unless the horse.... no wait.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
914 * Don't autorespond if:
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
915 *
4111
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
916 * - it's not supported on this connection
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
917 * - or it's disabled
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
918 * - or the away message is empty
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
919 * - or we're not idle and the 'only auto respond if idle' pref
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
920 * is set
4111
93b27900416e [gaim-migrate @ 4326]
Robert McQueen <robot101@debian.org>
parents: 4074
diff changeset
921 */
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
922 if (!(gc->flags & OPT_CONN_AUTO_RESP) ||
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
923 (away_options & OPT_AWAY_NO_AUTO_RESP) || !strlen(gc->away) ||
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
924 ((away_options & OPT_AWAY_IDLE_RESP) && !gc->is_idle)) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
925
2104
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
926 g_free(name);
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
927 g_free(message);
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
928 return;
2104
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
929 }
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
930
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
931 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
932 * This used to be based on the conversation window. But um, if
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
933 * you went away, and someone sent you a message and got your
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
934 * auto-response, and then you closed the window, and then the
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
935 * sent you another one, they'd get the auto-response back too
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
936 * soon. Besides that, we need to keep track of this even if we've
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
937 * got a queue. So the rest of this block is just the auto-response,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
938 * if necessary
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
939 */
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
940 qar = find_queued_away_response_by_name(name);
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
941 if (!qar) {
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
942 qar = (struct queued_away_response *)g_new0(struct queued_away_response, 1);
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
943 g_snprintf(qar->name, sizeof(qar->name), "%s", name);
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
944 qar->sent_away = 0;
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
945 away_time_queue = g_slist_append(away_time_queue, qar);
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
946 }
2906
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2856
diff changeset
947 if ((t - qar->sent_away) < away_resend) {
2104
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
948 g_free(name);
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
949 g_free(message);
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
950 return;
2104
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
951 }
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
952 qar->sent_away = t;
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
953
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
954 /* apply default fonts and colors */
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
955 tmpmsg = stylize(gc->away, MSG_LEN);
3033
1f078ab46e76 [gaim-migrate @ 3046]
Sean Egan <seanegan@pidgin.im>
parents: 3002
diff changeset
956 serv_send_im(gc, name, away_subs(tmpmsg, alias), -1, IM_FLAG_AWAY);
4412
84c55d827c76 [gaim-migrate @ 4685]
Ari Pollak <ari@debian.org>
parents: 4398
diff changeset
957 if (!cnv && awayqueue && (away_options & OPT_AWAY_QUEUE)) {
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
958 struct queued_message *qm;
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
959 qm = g_new0(struct queued_message, 1);
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
960 g_snprintf(qm->name, sizeof(qm->name), "%s", name);
1785
8b56bba0a5a5 [gaim-migrate @ 1795]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1775
diff changeset
961 qm->message = g_strdup(away_subs(tmpmsg, alias));
4608
c165a90c65fc [gaim-migrate @ 4896]
Nathan Walp <nwalp@pidgin.im>
parents: 4491
diff changeset
962 qm->account = gc->account;
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
963 qm->tm = mtime;
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
964 qm->flags = WFLAG_SEND | WFLAG_AUTO;
2979
ea91012810b3 [gaim-migrate @ 2992]
Rob Flynn <gaim@robflynn.com>
parents: 2937
diff changeset
965 qm->len = -1;
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
966 message_queue = g_slist_append(message_queue, qm);
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
967 } else if (cnv != NULL)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
968 gaim_im_write(GAIM_IM(cnv), NULL, away_subs(tmpmsg, alias),
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
969 len, WFLAG_SEND | WFLAG_AUTO, mtime);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
970
1775
16de02b8c378 [gaim-migrate @ 1785]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1774
diff changeset
971 g_free(tmpmsg);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
972 } else {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
973 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
974 * We're not away. This is easy. If the convo window doesn't
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
975 * exist, create and update it (if it does exist it was updated
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
976 * earlier), then play a sound indicating we've received it and
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
977 * then display it. Easy.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
978 */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
979 if (away_options & OPT_AWAY_QUEUE_UNREAD &&
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
980 !gaim_find_conversation(name) && docklet_count) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
981
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
982 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
983 * We're gonna queue it up and wait for the user to ask for
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
984 * it... probably by clicking the docklet or windows tray icon.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
985 */
3517
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
986 struct queued_message *qm;
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
987 qm = g_new0(struct queued_message, 1);
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
988 g_snprintf(qm->name, sizeof(qm->name), "%s", name);
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
989 qm->message = g_strdup(message);
4608
c165a90c65fc [gaim-migrate @ 4896]
Nathan Walp <nwalp@pidgin.im>
parents: 4491
diff changeset
990 qm->account = gc->account;
3517
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
991 qm->tm = mtime;
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
992 qm->flags = away | WFLAG_RECV;
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
993 qm->len = len;
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
994 unread_message_queue = g_slist_append(unread_message_queue, qm);
ef03be2348a5 [gaim-migrate @ 3590]
Sean Egan <seanegan@pidgin.im>
parents: 3510
diff changeset
995 } else {
4476
bf88170ba269 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4440
diff changeset
996 if (cnv == NULL)
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
997 cnv = gaim_conversation_new(GAIM_CONV_IM, gc->account, name);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
998
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
999 /* CONV XXX gaim_conversation_set_name(cnv, name); */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1000
5073
c79efee8e196 [gaim-migrate @ 5426]
Sean Egan <seanegan@pidgin.im>
parents: 5068
diff changeset
1001 gaim_im_write(GAIM_IM(cnv), NULL, message, len,
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1002 away | WFLAG_RECV, mtime);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1003 gaim_window_flash(gaim_conversation_get_window(cnv));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1004 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1005 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1006
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1007 gaim_event_broadcast(event_im_displayed_rcvd, gc, name, message, flags, mtime);
2104
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
1008 g_free(name);
8d12ab6f798c [gaim-migrate @ 2114]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
1009 g_free(message);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1010 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1011
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1012
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1013
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1014 void serv_got_update(struct gaim_connection *gc, char *name, int loggedin,
4732
a0857625cadb [gaim-migrate @ 5047]
Nathan Walp <nwalp@pidgin.im>
parents: 4687
diff changeset
1015 int evil, time_t signon, time_t idle, int type)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1016 {
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1017 struct buddy *b = gaim_find_buddy(gc->account, name);
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1018
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1019 if (signon && (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->options &
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1020 OPT_PROTO_CORRECT_TIME)) {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1021
1435
82038dac0c36 [gaim-migrate @ 1445]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1434
diff changeset
1022 char *tmp = g_strdup(normalize(name));
4793
1da93f6c80f3 [gaim-migrate @ 5113]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
1023 if (!gaim_utf8_strcasecmp(tmp, normalize(gc->username))) {
2506
c494b0b6410e [gaim-migrate @ 2519]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2505
diff changeset
1024 gc->evil = evil;
4841
65cf779d4f49 [gaim-migrate @ 5166]
Mark Doliner <markdoliner@pidgin.im>
parents: 4793
diff changeset
1025 gc->login_time_official = signon;
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1026 /*update_idle_times();*/
1995
b9457664ec78 [gaim-migrate @ 2005]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1981
diff changeset
1027 }
1435
82038dac0c36 [gaim-migrate @ 1445]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1434
diff changeset
1028 g_free(tmp);
82038dac0c36 [gaim-migrate @ 1445]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1434
diff changeset
1029 }
82038dac0c36 [gaim-migrate @ 1445]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1434
diff changeset
1030
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1031 if (!b) {
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
1032 gaim_debug(GAIM_DEBUG_ERROR, "server",
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
1033 "No such buddy: %s\n", name);
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1034 return;
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1035 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1036
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1037 /* This code will 'align' the name from the TOC */
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1038 /* server with what's in our record. We want to */
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1039 /* store things how THEY want it... */
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1040 if (strcmp(name, b->name)) {
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1041 gaim_blist_rename_buddy(b, name);
4349
a65175463a31 [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4333
diff changeset
1042 gaim_blist_save();
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1043 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1044
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1045 if (!b->idle && idle) {
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1046 gaim_pounce_execute(gc->account, b->name, GAIM_POUNCE_IDLE);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1047 gaim_event_broadcast(event_buddy_idle, gc, b->name);
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1048 system_log(log_idle, gc, b, OPT_LOG_BUDDY_IDLE);
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1049 }
1140
425e6580ec09 [gaim-migrate @ 1150]
Rob Flynn <gaim@robflynn.com>
parents: 1102
diff changeset
1050 if (b->idle && !idle) {
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1051 gaim_pounce_execute(gc->account, b->name, GAIM_POUNCE_IDLE_RETURN);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1052 gaim_event_broadcast(event_buddy_unidle, gc, b->name);
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1053 system_log(log_unidle, gc, b, OPT_LOG_BUDDY_IDLE);
1140
425e6580ec09 [gaim-migrate @ 1150]
Rob Flynn <gaim@robflynn.com>
parents: 1102
diff changeset
1054 }
1000
66436e94d53f [gaim-migrate @ 1010]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 990
diff changeset
1055
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1056 gaim_blist_update_buddy_idle(b, idle);
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1057 gaim_blist_update_buddy_evil(b, evil);
780
0513afaaf062 [gaim-migrate @ 790]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 771
diff changeset
1058
136
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 115
diff changeset
1059 if ((b->uc & UC_UNAVAILABLE) && !(type & UC_UNAVAILABLE)) {
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1060 gaim_pounce_execute(gc->account, b->name, GAIM_POUNCE_AWAY_RETURN);
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1061 system_log(log_back, gc, b, OPT_LOG_BUDDY_AWAY);
780
0513afaaf062 [gaim-migrate @ 790]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 771
diff changeset
1062 } else if (!(b->uc & UC_UNAVAILABLE) && (type & UC_UNAVAILABLE)) {
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1063 gaim_pounce_execute(gc->account, b->name, GAIM_POUNCE_AWAY);
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1064 system_log(log_away, gc, b, OPT_LOG_BUDDY_AWAY);
136
d8dee47cbeb7 [gaim-migrate @ 146]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 115
diff changeset
1065 }
780
0513afaaf062 [gaim-migrate @ 790]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 771
diff changeset
1066
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4635
diff changeset
1067 gaim_blist_update_buddy_status(b, type);
5170
1cf4ec14063f [gaim-migrate @ 5534]
Nathan Walp <nwalp@pidgin.im>
parents: 5136
diff changeset
1068
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1069
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1070 if (loggedin) {
5068
0d4c4df65dd0 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5063
diff changeset
1071 if (!GAIM_BUDDY_IS_ONLINE(b)) {
4767
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1072 struct gaim_conversation *c = gaim_find_conversation(b->name);
4873
0fb522c879cd [gaim-migrate @ 5203]
James Vega
parents: 4841
diff changeset
1073 if (c && (im_options & OPT_IM_LOGON)) {
4767
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1074 char *tmp = g_strdup_printf(_("%s logged in."), gaim_get_buddy_alias(b));
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1075 gaim_conversation_write(c, NULL, tmp, -1,
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1076 WFLAG_SYSTEM, time(NULL));
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1077 g_free(tmp);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1078 } else if (awayqueue && find_queue_total_by_name(b->name)) {
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1079 struct queued_message *qm = g_new0(struct queued_message, 1);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1080 g_snprintf(qm->name, sizeof(qm->name), "%s", b->name);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1081 qm->message = g_strdup_printf(_("%s logged in."),
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1082 gaim_get_buddy_alias(b));
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1083 qm->account = gc->account;
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1084 qm->tm = time(NULL);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1085 qm->flags = WFLAG_SYSTEM;
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1086 qm->len = -1;
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1087 message_queue = g_slist_append(message_queue, qm);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1088 }
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1089 gaim_sound_play_event(GAIM_SOUND_BUDDY_ARRIVE);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1090 gaim_pounce_execute(gc->account, b->name, GAIM_POUNCE_SIGNON);
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1091 system_log(log_signon, gc, b, OPT_LOG_BUDDY_SIGNON);
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1092 }
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1093 } else {
5068
0d4c4df65dd0 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5063
diff changeset
1094 if (GAIM_BUDDY_IS_ONLINE(b)) {
4767
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1095 struct gaim_conversation *c = gaim_find_conversation(b->name);
4873
0fb522c879cd [gaim-migrate @ 5203]
James Vega
parents: 4841
diff changeset
1096 if (c && (im_options & OPT_IM_LOGON)) {
4767
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1097 char *tmp = g_strdup_printf(_("%s logged out."), gaim_get_buddy_alias(b));
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1098 gaim_conversation_write(c, NULL, tmp, -1,
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1099 WFLAG_SYSTEM, time(NULL));
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1100 g_free(tmp);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1101 } else if (awayqueue && find_queue_total_by_name(b->name)) {
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1102 struct queued_message *qm = g_new0(struct queued_message, 1);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1103 g_snprintf(qm->name, sizeof(qm->name), "%s", b->name);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1104 qm->message = g_strdup_printf(_("%s logged out."),
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1105 gaim_get_buddy_alias(b));
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1106 qm->account = gc->account;
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1107 qm->tm = time(NULL);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1108 qm->flags = WFLAG_SYSTEM;
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1109 qm->len = -1;
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1110 message_queue = g_slist_append(message_queue, qm);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1111 }
5272
0c6b307d6920 [gaim-migrate @ 5644]
Nathan Walp <nwalp@pidgin.im>
parents: 5271
diff changeset
1112 serv_got_typing_stopped(gc, name); /* obviously not typing */
4767
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1113 gaim_sound_play_event(GAIM_SOUND_BUDDY_LEAVE);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1114 gaim_pounce_execute(gc->account, b->name, GAIM_POUNCE_SIGNOFF);
1575
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1115 system_log(log_signoff, gc, b, OPT_LOG_BUDDY_SIGNON);
220b4d845309 [gaim-migrate @ 1585]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1555
diff changeset
1116 }
4767
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1117 }
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1118
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1119 gaim_blist_update_buddy_presence(b, loggedin);
c212c2738d77 [gaim-migrate @ 5085]
Sean Egan <seanegan@pidgin.im>
parents: 4760
diff changeset
1120
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1121 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1122
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1123
1100
efc7d10c7826 [gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
1124 void serv_got_eviled(struct gaim_connection *gc, char *name, int lev)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1125 {
1771
a1214bda72f2 [gaim-migrate @ 1781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1769
diff changeset
1126 char buf2[1024];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1127
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1128 gaim_event_broadcast(event_warned, gc, name, lev);
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
1129
2646
5390988e70cd [gaim-migrate @ 2659]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2607
diff changeset
1130 if (gc->evil >= lev) {
1771
a1214bda72f2 [gaim-migrate @ 1781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1769
diff changeset
1131 gc->evil = lev;
a1214bda72f2 [gaim-migrate @ 1781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1769
diff changeset
1132 return;
a1214bda72f2 [gaim-migrate @ 1781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1769
diff changeset
1133 }
a1214bda72f2 [gaim-migrate @ 1781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1769
diff changeset
1134
a1214bda72f2 [gaim-migrate @ 1781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1769
diff changeset
1135 gc->evil = lev;
a1214bda72f2 [gaim-migrate @ 1781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1769
diff changeset
1136
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1137 g_snprintf(buf2, sizeof(buf2),
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1138 _("%s has just been warned by %s.\n"
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1139 "Your new warning level is %d%%"),
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1140 gc->username,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1141 ((name == NULL)? _("an anonymous person") : name), lev);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1142
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5411
diff changeset
1143 gaim_notify_info(NULL, NULL, buf2, NULL);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1144 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1145
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1146 void serv_got_typing(struct gaim_connection *gc, char *name, int timeout,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1147 int state) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1148
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1149 struct buddy *b;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1150 struct gaim_conversation *cnv = gaim_find_conversation(name);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1151 struct gaim_im *im;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1152
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1153 if (!cnv)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1154 return;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1155
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1156 im = GAIM_IM(cnv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1157
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
1158 gaim_conversation_set_account(cnv, gc->account);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1159 gaim_im_set_typing_state(im, state);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1160 gaim_im_update_typing(im);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1161
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1162 b = gaim_find_buddy(gc->account, name);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1163
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1164 gaim_event_broadcast(event_got_typing, gc, name);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1165
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1166 if (b != NULL)
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1167 gaim_pounce_execute(gc->account, name, GAIM_POUNCE_TYPING);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1168
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1169 if (timeout > 0)
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1170 gaim_im_start_typing_timeout(im, timeout);
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
1171 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1172
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
1173 void serv_got_typing_stopped(struct gaim_connection *gc, char *name) {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1174
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1175 struct gaim_conversation *c = gaim_find_conversation(name);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1176 struct gaim_im *im;
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1177 struct buddy *b;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1178
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1179 if (!c)
3787
3dae2482e786 [gaim-migrate @ 3927]
Nathan Walp <nwalp@pidgin.im>
parents: 3768
diff changeset
1180 return;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1181
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1182 im = GAIM_IM(c);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1183
5304
d5808c5e5607 [gaim-migrate @ 5676]
David J. Brigada <brigada@prism.net>
parents: 5272
diff changeset
1184 if (im->typing_state == NOT_TYPING)
d5808c5e5607 [gaim-migrate @ 5676]
David J. Brigada <brigada@prism.net>
parents: 5272
diff changeset
1185 return;
d5808c5e5607 [gaim-migrate @ 5676]
David J. Brigada <brigada@prism.net>
parents: 5272
diff changeset
1186
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1187 gaim_im_stop_typing_timeout(im);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1188 gaim_im_set_typing_state(im, NOT_TYPING);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1189 gaim_im_update_typing(im);
5032
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1190
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1191 b = gaim_find_buddy(gc->account, name);
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1192
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1193 if (b != NULL)
2276c67b0243 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
1194 gaim_pounce_execute(gc->account, name, GAIM_POUNCE_TYPING_STOPPED);
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2979
diff changeset
1195 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1196
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1197 struct chat_invite_data {
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1198 struct gaim_connection *gc;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
1199 GHashTable *components;
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1200 };
1723
c953322c625e [gaim-migrate @ 1733]
Adam Fritzler <mid@auk.cx>
parents: 1722
diff changeset
1201
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1202 static void chat_invite_data_free(struct chat_invite_data *cid)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1203 {
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
1204 if (cid->components)
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
1205 g_hash_table_destroy(cid->components);
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1206 g_free(cid);
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1207 }
1723
c953322c625e [gaim-migrate @ 1733]
Adam Fritzler <mid@auk.cx>
parents: 1722
diff changeset
1208
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1209 static void chat_invite_accept(struct chat_invite_data *cid)
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1210 {
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
1211 serv_join_chat(cid->gc, cid->components);
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1212
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1213 chat_invite_data_free(cid);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1214 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1215
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1216
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1217
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1218 void serv_got_chat_invite(struct gaim_connection *gc, char *name,
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
1219 char *who, char *message, GHashTable *data)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1220 {
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1221 char buf2[BUF_LONG];
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1222 struct chat_invite_data *cid = g_new0(struct chat_invite_data, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1223
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1224
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1225 gaim_event_broadcast(event_chat_invited, gc, who, name, message);
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
1226
414
b2f9d5e4841a [gaim-migrate @ 424]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
1227 if (message)
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1228 g_snprintf(buf2, sizeof(buf2),
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1229 _("User '%s' invites %s to buddy chat room: '%s'\n%s"),
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1230 who, gc->username, name, message);
414
b2f9d5e4841a [gaim-migrate @ 424]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 411
diff changeset
1231 else
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1232 g_snprintf(buf2, sizeof(buf2),
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1233 _("User '%s' invites %s to buddy chat room: '%s'\n"),
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1234 who, gc->username, name);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1235
4487
7cc15aad17db [gaim-migrate @ 4762]
Nathan Walp <nwalp@pidgin.im>
parents: 4476
diff changeset
1236 cid->gc = gc;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5215
diff changeset
1237 cid->components = data;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1238
5498
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5461
diff changeset
1239 gaim_request_accept_cancel(gc, NULL, _("Accept chat invitation?"),
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5461
diff changeset
1240 buf2, 0, cid,
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5461
diff changeset
1241 G_CALLBACK(chat_invite_accept),
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5461
diff changeset
1242 G_CALLBACK(chat_invite_data_free));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1243 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1244
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1245 struct gaim_conversation *serv_got_joined_chat(struct gaim_connection *gc,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1246 int id, char *name)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1247 {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1248 struct gaim_conversation *b;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1249 struct gaim_chat *chat;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1250
4491
715515ab95da [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4487
diff changeset
1251 b = gaim_conversation_new(GAIM_CONV_CHAT, gc->account, name);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1252 chat = GAIM_CHAT(b);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1253
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1254 gc->buddy_chats = g_slist_append(gc->buddy_chats, b);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1255
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1256 gaim_chat_set_id(chat, id);
4476
bf88170ba269 [gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents: 4440
diff changeset
1257
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1258 if ((logging_options & OPT_LOG_CHATS) ||
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1259 find_log_info(gaim_conversation_get_name(b))) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1260
888
291963d9d83f [gaim-migrate @ 898]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1261 FILE *fd;
291963d9d83f [gaim-migrate @ 898]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1262 char *filename;
291963d9d83f [gaim-migrate @ 898]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1263
291963d9d83f [gaim-migrate @ 898]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1264 filename = (char *)malloc(100);
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1265 g_snprintf(filename, 100, "%s.chat", gaim_conversation_get_name(b));
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1266
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1267 fd = open_log_file(filename, TRUE);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1268
1722
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1269 if (fd) {
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1270 if (!(logging_options & OPT_LOG_STRIP_HTML))
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1271 fprintf(fd,
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1272 "<HR><BR><H3 Align=Center> ---- New Conversation @ %s ----</H3><BR>\n",
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1273 full_date());
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1274 else
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1275 fprintf(fd, "---- New Conversation @ %s ----\n", full_date());
1437
b51cd857866c [gaim-migrate @ 1447]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1435
diff changeset
1276
1722
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1277 fclose(fd);
d64eabfd88e3 [gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1721
diff changeset
1278 }
888
291963d9d83f [gaim-migrate @ 898]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1279 free(filename);
291963d9d83f [gaim-migrate @ 898]
Rob Flynn <gaim@robflynn.com>
parents: 834
diff changeset
1280 }
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1281
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1282 gaim_window_show(gaim_conversation_get_window(b));
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1283 gaim_window_switch_conversation(gaim_conversation_get_window(b),
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1284 gaim_conversation_get_index(b));
1785
8b56bba0a5a5 [gaim-migrate @ 1795]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1775
diff changeset
1285
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1286 gaim_event_broadcast(event_chat_join, gc, id, name);
3710
fafc6dbd69ce [gaim-migrate @ 3843]
Etan Reisner <deryni@pidgin.im>
parents: 3620
diff changeset
1287
1785
8b56bba0a5a5 [gaim-migrate @ 1795]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1775
diff changeset
1288 return b;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1289 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1290
964
6642a090394e [gaim-migrate @ 974]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 962
diff changeset
1291 void serv_got_chat_left(struct gaim_connection *g, int id)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1292 {
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1293 GSList *bcs;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1294 struct gaim_conversation *conv = NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1295 struct gaim_chat *chat = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1296
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1297 for (bcs = g->buddy_chats; bcs != NULL; bcs = bcs->next) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1298 conv = (struct gaim_conversation *)bcs->data;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1299
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1300 chat = GAIM_CHAT(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1301
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1302 if (gaim_chat_get_id(chat) == id)
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1303 break;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1304
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1305 conv = NULL;
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1306 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1307
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1308 if (!conv)
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1309 return;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1310
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1311 gaim_event_broadcast(event_chat_leave, g, gaim_chat_get_id(chat));
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
1312
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
1313 gaim_debug(GAIM_DEBUG_INFO, "server", "Leaving room: %s\n",
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
1314 gaim_conversation_get_name(conv));
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1315
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1316 g->buddy_chats = g_slist_remove(g->buddy_chats, conv);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1317
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1318 gaim_conversation_destroy(conv);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1319 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1320
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1321 void serv_got_chat_in(struct gaim_connection *g, int id, char *who,
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1322 int whisper, char *message, time_t mtime)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1323 {
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1324 int w;
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1325 GSList *bcs;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1326 struct gaim_conversation *conv = NULL;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1327 struct gaim_chat *chat = NULL;
2296
58690602d624 [gaim-migrate @ 2306]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1328 char *buf;
3163
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1329 char *buffy, *angel;
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1330 int plugin_return;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1331
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1332 for (bcs = g->buddy_chats; bcs != NULL; bcs = bcs->next) {
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1333 conv = (struct gaim_conversation *)bcs->data;
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1334
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1335 chat = GAIM_CHAT(conv);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1336
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1337 if (gaim_chat_get_id(chat) == id)
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1338 break;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1339
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1340 conv = NULL;
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1341 }
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1342
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1343 if (!conv)
1100
efc7d10c7826 [gaim-migrate @ 1110]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1089
diff changeset
1344 return;
391
677e4414a83f [gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 368
diff changeset
1345
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1346 /*
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1347 * Plugin stuff. We pass a char ** but we don't want to pass what's
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1348 * been given us by the prpls. so we create temp holders and pass those
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1349 * instead. It's basically just to avoid segfaults. Of course, if the
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1350 * data is binary, plugins don't see it. Bitch all you want; i really
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1351 * don't want you to be dealing with it.
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1352 */
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1353
3163
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1354 buffy = g_malloc(MAX(strlen(message) + 1, BUF_LONG));
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1355 strcpy(buffy, message);
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1356 angel = g_strdup(who);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5170
diff changeset
1357 plugin_return = gaim_event_broadcast(event_chat_recv, g, gaim_chat_get_id(chat),
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1358 &angel, &buffy);
3163
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1359
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1360 if (!buffy || !angel || plugin_return) {
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1361 if (buffy)
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1362 g_free(buffy);
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1363 if (angel)
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1364 g_free(angel);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2359
diff changeset
1365 return;
3163
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1366 }
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1367 who = angel;
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1368 message = buffy;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1369
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
1370
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
1371
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2309
diff changeset
1372 if (convo_options & OPT_CONVO_SEND_LINKS)
5136
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
1373 buf = linkify_text(message);
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
1374 else
81079a81ebc6 [gaim-migrate @ 5500]
Nathan Walp <nwalp@pidgin.im>
parents: 5073
diff changeset
1375 buf = g_strdup(message);
1643
7a782e156daf [gaim-migrate @ 1653]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1587
diff changeset
1376
1252
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1377 if (whisper)
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1378 w = WFLAG_WHISPER;
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1379 else
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1380 w = 0;
94fbface2d84 [gaim-migrate @ 1262]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1250
diff changeset
1381
4359
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1382 gaim_chat_write(chat, who, buf, w, mtime);
cf899ee07d1d [gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents: 4349
diff changeset
1383
3163
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1384 g_free(who);
8b5447fbbb9f [gaim-migrate @ 3179]
Sean Egan <seanegan@pidgin.im>
parents: 3136
diff changeset
1385 g_free(message);
2296
58690602d624 [gaim-migrate @ 2306]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2289
diff changeset
1386 g_free(buf);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1387 }
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1388
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1389 static void des_popup(GtkWidget *w, GtkWidget *window)
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1390 {
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1391 if (w == window) {
4635
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4608
diff changeset
1392 char *u = g_object_get_data(G_OBJECT(window), "url");
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1393 g_free(u);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1394 }
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1395 gtk_widget_destroy(window);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1396 }
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1397
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1398 void serv_got_popup(char *msg, char *u, int wid, int hei)
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1399 {
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1400 GtkWidget *window;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1401 GtkWidget *vbox;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1402 GtkWidget *sw;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1403 GtkWidget *text;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1404 GtkWidget *hbox;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1405 GtkWidget *button;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1406 char *url = g_strdup(u);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1407
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1408 GAIM_DIALOG(window);
4074
c69100a0ede9 [gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents: 4072
diff changeset
1409 gtk_window_set_role(GTK_WINDOW(window), "popup");
4635
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4608
diff changeset
1410 gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
5411
b3683d2acbb4 [gaim-migrate @ 5787]
Mark Doliner <markdoliner@pidgin.im>
parents: 5328
diff changeset
1411 gtk_window_set_title(GTK_WINDOW(window), _("Gaim - Popup"));
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1412 gtk_container_set_border_width(GTK_CONTAINER(window), 5);
5314
56ef6a09fb99 [gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents: 5311
diff changeset
1413 g_signal_connect(G_OBJECT(window), "destroy",
56ef6a09fb99 [gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents: 5311
diff changeset
1414 G_CALLBACK(des_popup), window);
4635
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4608
diff changeset
1415 g_object_set_data(G_OBJECT(window), "url", url);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1416 gtk_widget_realize(window);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1417
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1418 vbox = gtk_vbox_new(FALSE, 5);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1419 gtk_container_add(GTK_CONTAINER(window), vbox);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1420
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1421 sw = gtk_scrolled_window_new(NULL, NULL);
4635
475ccd9dc3ac [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4608
diff changeset
1422 gtk_widget_set_size_request(sw, wid, hei);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1423 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1424 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1425
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1426 text = gtk_imhtml_new(NULL, NULL);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1427 gtk_container_add(GTK_CONTAINER(sw), text);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1428 gaim_setup_imhtml(text);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1429
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1430 hbox = gtk_hbox_new(FALSE, 5);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1431 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1432
5024
3b5412e4b483 [gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents: 4996
diff changeset
1433 button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1434 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
5314
56ef6a09fb99 [gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents: 5311
diff changeset
1435 g_signal_connect(G_OBJECT(button), "clicked",
56ef6a09fb99 [gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents: 5311
diff changeset
1436 G_CALLBACK(des_popup), window);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1437
5024
3b5412e4b483 [gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents: 4996
diff changeset
1438 button = gaim_pixbuf_button_from_stock(_("More Info"), GTK_STOCK_FIND, GAIM_BUTTON_HORIZONTAL);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1439 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
5314
56ef6a09fb99 [gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents: 5311
diff changeset
1440 g_signal_connect(G_OBJECT(button), "clicked",
56ef6a09fb99 [gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents: 5311
diff changeset
1441 G_CALLBACK(open_url), url);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1442
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1443 gtk_widget_show_all(window);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1444
2856
046ed5e89321 [gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2827
diff changeset
1445 gtk_imhtml_append_text(GTK_IMHTML(text), msg, -1, GTK_IMHTML_NO_NEWLINE);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
1446 }

mercurial