comparison src/protocols/bonjour/bonjour.c @ 13061:6332531e14a7

[gaim-migrate @ 15423] Strip markup from Bonjour available and away messages. iChat doesn't seem to support it. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sat, 28 Jan 2006 22:47:28 +0000
parents ec9b92104904
children 41ec0316cd65
comparison
equal deleted inserted replaced
13060:cb66695da326 13061:6332531e14a7
27 #include <windows.h> 27 #include <windows.h>
28 #include <lm.h> 28 #include <lm.h>
29 #endif 29 #endif
30 30
31 #include "internal.h" 31 #include "internal.h"
32
32 #include "account.h" 33 #include "account.h"
33 #include "accountopt.h" 34 #include "accountopt.h"
35 #include "debug.h"
36 #include "util.h"
34 #include "version.h" 37 #include "version.h"
35 #include "debug.h"
36 38
37 #include "bonjour.h" 39 #include "bonjour.h"
38 #include "dns_sd.h" 40 #include "dns_sd.h"
39 #include "jabber.h" 41 #include "jabber.h"
40 #include "buddy.h" 42 #include "buddy.h"
41 43
42 /* 44 /*
43 * TODO: Should implement an add_buddy callback that removes the buddy 45 * TODO: Should implement an add_buddy callback that removes the buddy
44 * from the local list. Bonjour manages buddies for you, and 46 * from the local list. Bonjour manages buddies for you, and
45 * adding someone locally by hand is stupid. 47 * adding someone locally by hand is stupid. Or, maybe even better,
48 * if a PRPL does not have an add_buddy callback then do not allow
49 * users to add buddies.
46 */ 50 */
47 51
48 static char *default_firstname; 52 static char *default_firstname;
49 static char *default_lastname; 53 static char *default_lastname;
50 static char *default_hostname; 54 static char *default_hostname;
202 gboolean disconnected; 206 gboolean disconnected;
203 GaimStatusType *type; 207 GaimStatusType *type;
204 int primitive; 208 int primitive;
205 GaimPresence *presence; 209 GaimPresence *presence;
206 const char *message, *bonjour_status; 210 const char *message, *bonjour_status;
211 gchar *stripped;
207 212
208 gc = gaim_account_get_connection(account); 213 gc = gaim_account_get_connection(account);
209 bd = gc->proto_data; 214 bd = gc->proto_data;
210 disconnected = gaim_account_is_disconnected(account); 215 disconnected = gaim_account_is_disconnected(account);
211 type = gaim_status_get_type(status); 216 type = gaim_status_get_type(status);
213 presence = gaim_account_get_presence(account); 218 presence = gaim_account_get_presence(account);
214 219
215 message = gaim_status_get_attr_string(status, "message"); 220 message = gaim_status_get_attr_string(status, "message");
216 if (message == NULL) 221 if (message == NULL)
217 message = ""; 222 message = "";
223 stripped = gaim_markup_strip_html(message);
218 224
219 /* 225 /*
220 * The three possible status for Bonjour are 226 * The three possible status for Bonjour are
221 * -available ("avail") 227 * -available ("avail")
222 * -idle ("away") 228 * -idle ("away")
228 else if (gaim_presence_is_idle(presence)) 234 else if (gaim_presence_is_idle(presence))
229 bonjour_status = "away"; 235 bonjour_status = "away";
230 else 236 else
231 bonjour_status = "dnd"; 237 bonjour_status = "dnd";
232 238
233 bonjour_dns_sd_send_status(bd->dns_sd_data, bonjour_status, message); 239 bonjour_dns_sd_send_status(bd->dns_sd_data, bonjour_status, stripped);
240 g_free(stripped);
234 } 241 }
235 242
236 static GList * 243 static GList *
237 bonjour_status_types(GaimAccount *account) 244 bonjour_status_types(GaimAccount *account)
238 { 245 {