Wed, 16 Nov 2005 00:01:23 +0000
[gaim-migrate @ 14408]
A patch from Sadrul
"when you set an account to offline while it is "connecting", it
doesn't disconnect. marv hit on this last night"
committer: Mark Doliner <markdoliner@pidgin.im>
| 981 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 8046 | 4 | * Gaim is the legal property of its developers, whose names are too numerous |
| 5 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 6 | * source distribution. | |
|
6460
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
7 | * |
| 981 | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License as published by | |
| 10 | * the Free Software Foundation; either version 2 of the License, or | |
| 11 | * (at your option) any later version. | |
| 12 | * | |
| 13 | * This program is distributed in the hope that it will be useful, | |
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 16 | * GNU General Public License for more details. | |
| 17 | * | |
| 18 | * You should have received a copy of the GNU General Public License | |
| 19 | * along with this program; if not, write to the Free Software | |
| 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 21 | * | |
| 22 | */ | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
23 | #include "internal.h" |
|
5945
941f14d90d22
[gaim-migrate @ 6386]
Christian Hammond <chipx86@chipx86.com>
parents:
5943
diff
changeset
|
24 | #include "conversation.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
25 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
26 | #include "notify.h" |
| 981 | 27 | #include "prpl.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
28 | #include "request.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
29 | #include "util.h" |
| 3738 | 30 | |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
31 | /**************************************************************************/ |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
32 | /** @name Protocol Plugin API */ |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
33 | /**************************************************************************/ |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
34 | void |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
35 | gaim_prpl_got_account_idle(GaimAccount *account, gboolean idle, |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
36 | time_t idle_time) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
37 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
38 | g_return_if_fail(account != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
39 | g_return_if_fail(gaim_account_is_connected(account)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
40 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
41 | gaim_presence_set_idle(gaim_account_get_presence(account), |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
42 | idle, idle_time); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
43 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
44 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
45 | void |
|
10870
028006831b79
[gaim-migrate @ 12557]
Mark Doliner <markdoliner@pidgin.im>
parents:
10554
diff
changeset
|
46 | gaim_prpl_got_account_login_time(GaimAccount *account, time_t login_time) |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
47 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
48 | GaimPresence *presence; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
49 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
50 | g_return_if_fail(account != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
51 | g_return_if_fail(gaim_account_is_connected(account)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
52 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
53 | if (login_time == 0) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
54 | login_time = time(NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
55 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
56 | presence = gaim_account_get_presence(account); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
57 | |
|
10007
2dfaf7384d90
[gaim-migrate @ 10924]
Mark Doliner <markdoliner@pidgin.im>
parents:
10006
diff
changeset
|
58 | gaim_presence_set_login_time(presence, login_time); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
59 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
60 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
61 | static gboolean |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
62 | set_value_from_arg(GaimStatus *status, const char *id, va_list *args) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
63 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
64 | GaimValue *value; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
65 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
66 | value = gaim_status_get_attr_value(status, id); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
67 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
68 | if (value == NULL) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
69 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
70 | gaim_debug_error("prpl", |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
71 | "Attempted to set an unknown attribute %s on " |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
72 | "status %s\n", |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
73 | id, gaim_status_get_id(status)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
74 | return FALSE; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
75 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
76 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
77 | switch (gaim_value_get_type(value)) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
78 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
79 | case GAIM_TYPE_CHAR: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
80 | gaim_value_set_char(value, (char)va_arg(*args, int)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
81 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
82 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
83 | case GAIM_TYPE_UCHAR: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
84 | gaim_value_set_uchar(value, |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
85 | (unsigned char)va_arg(*args, unsigned int)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
86 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
87 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
88 | case GAIM_TYPE_BOOLEAN: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
89 | gaim_value_set_boolean(value, va_arg(*args, gboolean)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
90 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
91 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
92 | case GAIM_TYPE_SHORT: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
93 | gaim_value_set_short(value, (short)va_arg(*args, int)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
94 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
95 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
96 | case GAIM_TYPE_USHORT: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
97 | gaim_value_set_ushort(value, |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
98 | (unsigned short)va_arg(*args, unsigned int)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
99 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
100 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
101 | case GAIM_TYPE_INT: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
102 | gaim_value_set_int(value, va_arg(*args, int)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
103 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
104 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
105 | case GAIM_TYPE_UINT: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
106 | gaim_value_set_uint(value, va_arg(*args, unsigned int)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
107 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
108 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
109 | case GAIM_TYPE_LONG: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
110 | gaim_value_set_long(value, va_arg(*args, long)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
111 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
112 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
113 | case GAIM_TYPE_ULONG: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
114 | gaim_value_set_ulong(value, va_arg(*args, unsigned long)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
115 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
116 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
117 | case GAIM_TYPE_INT64: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
118 | gaim_value_set_int64(value, va_arg(*args, gint64)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
119 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
120 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
121 | case GAIM_TYPE_UINT64: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
122 | gaim_value_set_uint64(value, va_arg(*args, guint64)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
123 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
124 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
125 | case GAIM_TYPE_STRING: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
126 | gaim_value_set_string(value, va_arg(*args, char *)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
127 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
128 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
129 | case GAIM_TYPE_OBJECT: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
130 | gaim_value_set_object(value, va_arg(*args, void *)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
131 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
132 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
133 | case GAIM_TYPE_POINTER: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
134 | gaim_value_set_pointer(value, va_arg(*args, void *)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
135 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
136 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
137 | case GAIM_TYPE_ENUM: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
138 | gaim_value_set_enum(value, va_arg(*args, int)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
139 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
140 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
141 | case GAIM_TYPE_BOXED: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
142 | gaim_value_set_boxed(value, va_arg(*args, void *)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
143 | break; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
144 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
145 | default: |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
146 | return FALSE; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
147 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
148 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
149 | return TRUE; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
150 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
151 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
152 | void |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
153 | gaim_prpl_got_account_status(GaimAccount *account, const char *status_id, |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
154 | const char *attr_id, ...) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
155 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
156 | GaimPresence *presence; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
157 | GaimStatus *status; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
158 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
159 | g_return_if_fail(account != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
160 | g_return_if_fail(status_id != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
161 | g_return_if_fail(gaim_account_is_connected(account)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
162 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
163 | presence = gaim_account_get_presence(account); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
164 | status = gaim_presence_get_status(presence, status_id); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
165 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
166 | g_return_if_fail(status != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
167 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
168 | if (attr_id != NULL) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
169 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
170 | va_list args; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
171 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
172 | va_start(args, attr_id); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
173 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
174 | while (attr_id != NULL) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
175 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
176 | set_value_from_arg(status, attr_id, &args); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
177 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
178 | attr_id = va_arg(args, char *); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
179 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
180 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
181 | va_end(args); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
182 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
183 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
184 | gaim_presence_set_status_active(presence, status_id, TRUE); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
185 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
186 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
187 | void |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
188 | gaim_prpl_got_user_idle(GaimAccount *account, const char *name, |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
189 | gboolean idle, time_t idle_time) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
190 | { |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
191 | GSList *l; |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
192 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
193 | g_return_if_fail(account != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
194 | g_return_if_fail(name != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
195 | g_return_if_fail(gaim_account_is_connected(account)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
196 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
197 | for (l = gaim_find_buddies(account, name); l != NULL; l = l->next) |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
198 | { |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
199 | GaimBuddy *buddy; |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
200 | GaimPresence *presence; |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
201 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
202 | buddy = (GaimBuddy *)l->data; |
|
10007
2dfaf7384d90
[gaim-migrate @ 10924]
Mark Doliner <markdoliner@pidgin.im>
parents:
10006
diff
changeset
|
203 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
204 | presence = gaim_buddy_get_presence(buddy); |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
205 | |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
206 | gaim_presence_set_idle(presence, idle, idle_time); |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
207 | } |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
208 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
209 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
210 | void |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
211 | gaim_prpl_got_user_login_time(GaimAccount *account, const char *name, |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
212 | time_t login_time) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
213 | { |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
214 | GSList *l; |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
215 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
216 | g_return_if_fail(account != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
217 | g_return_if_fail(name != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
218 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
219 | for (l = gaim_find_buddies(account, name); l != NULL; l = l->next) |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
220 | { |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
221 | GaimBuddy *buddy; |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
222 | GaimPresence *presence; |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
223 | |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
224 | buddy = (GaimBuddy *)l->data; |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
225 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
226 | if (login_time == 0) |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
227 | login_time = time(NULL); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
228 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
229 | presence = gaim_buddy_get_presence(buddy); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
230 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
231 | gaim_presence_set_login_time(presence, login_time); |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
232 | } |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
233 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
234 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
235 | void |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
236 | gaim_prpl_got_user_status(GaimAccount *account, const char *name, |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
237 | const char *status_id, const char *attr_id, ...) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
238 | { |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
239 | GSList *l; |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
240 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
241 | g_return_if_fail(account != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
242 | g_return_if_fail(name != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
243 | g_return_if_fail(status_id != NULL); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
244 | g_return_if_fail(gaim_account_is_connected(account)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
245 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
246 | for (l = gaim_find_buddies(account, name); l != NULL; l = l->next) |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
247 | { |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
248 | GaimBuddy *buddy; |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
249 | GaimPresence *presence; |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
250 | GaimStatus *status; |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
251 | GaimStatus *old_status; |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
252 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
253 | buddy = (GaimBuddy *)l->data; |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
254 | presence = gaim_buddy_get_presence(buddy); |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
255 | status = gaim_presence_get_status(presence, status_id); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
256 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
257 | g_return_if_fail(status != NULL); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
258 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
259 | if (attr_id != NULL) |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
260 | { |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
261 | va_list args; |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
262 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
263 | va_start(args, attr_id); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
264 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
265 | while (attr_id != NULL) |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
266 | { |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
267 | set_value_from_arg(status, attr_id, &args); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
268 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
269 | attr_id = va_arg(args, char *); |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
270 | } |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
271 | |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
272 | va_end(args); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
273 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
274 | |
|
10554
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
275 | old_status = gaim_presence_get_active_status(presence); |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
276 | gaim_presence_set_status_active(presence, status_id, TRUE); |
|
18efa4802ed5
[gaim-migrate @ 11931]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10447
diff
changeset
|
277 | gaim_blist_update_buddy_status(buddy, old_status); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
278 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
279 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
280 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
281 | void |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10052
diff
changeset
|
282 | gaim_prpl_change_account_status(GaimAccount *account, |
|
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10052
diff
changeset
|
283 | GaimStatus *old_status, GaimStatus *new_status) |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
284 | { |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
285 | GaimPlugin *prpl; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
286 | GaimPluginProtocolInfo *prpl_info; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
287 | |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10052
diff
changeset
|
288 | g_return_if_fail(account != NULL); |
|
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10052
diff
changeset
|
289 | g_return_if_fail(old_status != NULL); |
|
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10052
diff
changeset
|
290 | g_return_if_fail(new_status != NULL); |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
291 | |
|
11718
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
292 | if (gaim_status_is_online(new_status) && |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
293 | gaim_account_is_disconnected(account)) |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
294 | { |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
295 | gaim_account_connect(account); |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
296 | return; |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
297 | } |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
298 | |
|
11927
f9ede13499d0
[gaim-migrate @ 14218]
Mark Doliner <markdoliner@pidgin.im>
parents:
11730
diff
changeset
|
299 | if (!gaim_status_is_online(new_status)) |
|
11718
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
300 | { |
|
11927
f9ede13499d0
[gaim-migrate @ 14218]
Mark Doliner <markdoliner@pidgin.im>
parents:
11730
diff
changeset
|
301 | if (!gaim_account_is_disconnected(account)) |
|
f9ede13499d0
[gaim-migrate @ 14218]
Mark Doliner <markdoliner@pidgin.im>
parents:
11730
diff
changeset
|
302 | gaim_account_disconnect(account); |
|
11718
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
303 | return; |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
304 | } |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11628
diff
changeset
|
305 | |
|
12108
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
306 | if (gaim_account_is_connecting(account)) |
|
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
307 | /* |
|
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
308 | * We don't need to call the set_status PRPL function because |
|
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
309 | * the PRPL will take care of setting its status during the |
|
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
310 | * connection process. |
|
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
311 | */ |
|
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
312 | return; |
|
a74fd0d6b79c
[gaim-migrate @ 14408]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11948
diff
changeset
|
313 | |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
314 | prpl = gaim_find_prpl(gaim_account_get_protocol_id(account)); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
315 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
316 | if (prpl == NULL) |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
317 | return; |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
318 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
319 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(prpl); |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
320 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
321 | if (prpl_info->set_status != NULL) |
|
11628
cdd5df7cfbc1
[gaim-migrate @ 13903]
Casey Harkins <charkins@pidgin.im>
parents:
11257
diff
changeset
|
322 | { |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10052
diff
changeset
|
323 | prpl_info->set_status(account, new_status); |
|
11628
cdd5df7cfbc1
[gaim-migrate @ 13903]
Casey Harkins <charkins@pidgin.im>
parents:
11257
diff
changeset
|
324 | gaim_signal_emit(gaim_accounts_get_handle(), "account-status-changed", |
|
cdd5df7cfbc1
[gaim-migrate @ 13903]
Casey Harkins <charkins@pidgin.im>
parents:
11257
diff
changeset
|
325 | account, old_status, new_status); |
|
cdd5df7cfbc1
[gaim-migrate @ 13903]
Casey Harkins <charkins@pidgin.im>
parents:
11257
diff
changeset
|
326 | } |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
327 | } |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
328 | |
|
10006
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
329 | GList * |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
330 | gaim_prpl_get_statuses(GaimAccount *account, GaimPresence *presence) |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
331 | { |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
332 | GaimPlugin *prpl; |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
333 | GaimPluginProtocolInfo *prpl_info; |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
334 | GList *statuses = NULL; |
|
11730
649c38d2a8ab
[gaim-migrate @ 14021]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11718
diff
changeset
|
335 | GList *l, *list; |
|
10006
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
336 | GaimStatus *status; |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
337 | |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
10052
diff
changeset
|
338 | g_return_val_if_fail(account != NULL, NULL); |
|
10006
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
339 | g_return_val_if_fail(presence != NULL, NULL); |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
340 | |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
341 | prpl = gaim_find_prpl(gaim_account_get_protocol_id(account)); |
|
10046
7e9175ee9b63
[gaim-migrate @ 11007]
Mark Doliner <markdoliner@pidgin.im>
parents:
10036
diff
changeset
|
342 | |
|
10006
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
343 | if (prpl == NULL) |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
344 | return NULL; |
|
10046
7e9175ee9b63
[gaim-migrate @ 11007]
Mark Doliner <markdoliner@pidgin.im>
parents:
10036
diff
changeset
|
345 | |
|
10006
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
346 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(prpl); |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
347 | if (prpl_info == NULL || prpl_info->status_types == NULL) |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
348 | return NULL; |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
349 | |
|
11730
649c38d2a8ab
[gaim-migrate @ 14021]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11718
diff
changeset
|
350 | for (l = list = prpl_info->status_types(account); l != NULL; l = l->next) |
|
10006
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
351 | { |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
352 | status = gaim_status_new((GaimStatusType *)l->data, presence); |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
353 | statuses = g_list_append(statuses, status); |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
354 | } |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
355 | |
|
11730
649c38d2a8ab
[gaim-migrate @ 14021]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11718
diff
changeset
|
356 | g_list_free(list); |
|
649c38d2a8ab
[gaim-migrate @ 14021]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11718
diff
changeset
|
357 | |
|
10006
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
358 | return statuses; |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
359 | } |
|
800a81666868
[gaim-migrate @ 10923]
Dave West <kat@users.sourceforge.net>
parents:
9949
diff
changeset
|
360 | |
|
9949
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
361 | |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
362 | /************************************************************************** |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
363 | * Protocol Plugin Subsystem API |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
364 | **************************************************************************/ |
|
377cd65fab3d
[gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents:
9460
diff
changeset
|
365 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
366 | GaimPlugin * |
| 7956 | 367 | gaim_find_prpl(const char *id) |
| 981 | 368 | { |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
369 | GList *l; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
370 | GaimPlugin *plugin; |
| 981 | 371 | |
|
10036
743f585a1141
[gaim-migrate @ 10995]
Luke Schierer <lschiere@pidgin.im>
parents:
10023
diff
changeset
|
372 | g_return_val_if_fail(id != NULL, NULL); |
|
743f585a1141
[gaim-migrate @ 10995]
Luke Schierer <lschiere@pidgin.im>
parents:
10023
diff
changeset
|
373 | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
374 | for (l = gaim_plugins_get_protocols(); l != NULL; l = l->next) { |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
375 | plugin = (GaimPlugin *)l->data; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
376 | |
|
11948
94b27c352128
[gaim-migrate @ 14239]
Mark Doliner <markdoliner@pidgin.im>
parents:
11927
diff
changeset
|
377 | if (!strcmp(plugin->info->id, id)) |
|
94b27c352128
[gaim-migrate @ 14239]
Mark Doliner <markdoliner@pidgin.im>
parents:
11927
diff
changeset
|
378 | return plugin; |
| 981 | 379 | } |
| 380 | ||
| 381 | return NULL; | |
| 382 | } |