comparison libpurple/protocols/jabber/buddy.c @ 29453:89f072f356ef

jabber: --header_contents;
author Paul Aurich <paul@darkrain42.org>
date Mon, 15 Feb 2010 06:39:09 +0000
parents 86204988c522
children fbefcfbb5377
comparison
equal deleted inserted replaced
29452:86204988c522 29453:89f072f356ef
55 PurpleNotifyUserInfo *user_info; 55 PurpleNotifyUserInfo *user_info;
56 long last_seconds; 56 long last_seconds;
57 gchar *last_message; 57 gchar *last_message;
58 } JabberBuddyInfo; 58 } JabberBuddyInfo;
59 59
60 static void
61 jabber_buddy_resource_free(JabberBuddyResource *jbr)
62 {
63 g_return_if_fail(jbr != NULL);
64
65 jbr->jb->resources = g_list_remove(jbr->jb->resources, jbr);
66
67 while(jbr->commands) {
68 JabberAdHocCommands *cmd = jbr->commands->data;
69 g_free(cmd->jid);
70 g_free(cmd->node);
71 g_free(cmd->name);
72 g_free(cmd);
73 jbr->commands = g_list_delete_link(jbr->commands, jbr->commands);
74 }
75
76 while (jbr->caps.exts) {
77 g_free(jbr->caps.exts->data);
78 jbr->caps.exts = g_list_delete_link(jbr->caps.exts, jbr->caps.exts);
79 }
80
81 g_free(jbr->name);
82 g_free(jbr->status);
83 g_free(jbr->thread_id);
84 g_free(jbr->client.name);
85 g_free(jbr->client.version);
86 g_free(jbr->client.os);
87 g_free(jbr);
88 }
89
60 void jabber_buddy_free(JabberBuddy *jb) 90 void jabber_buddy_free(JabberBuddy *jb)
61 { 91 {
62 g_return_if_fail(jb != NULL); 92 g_return_if_fail(jb != NULL);
63 93
64 g_free(jb->error_msg); 94 g_free(jb->error_msg);
215 jbr->status = g_strdup(status); 245 jbr->status = g_strdup(status);
216 246
217 jb->resources = g_list_insert_sorted(jb->resources, jbr, 247 jb->resources = g_list_insert_sorted(jb->resources, jbr,
218 resource_compare_cb); 248 resource_compare_cb);
219 return jbr; 249 return jbr;
220 }
221
222 void jabber_buddy_resource_free(JabberBuddyResource *jbr)
223 {
224 g_return_if_fail(jbr != NULL);
225
226 jbr->jb->resources = g_list_remove(jbr->jb->resources, jbr);
227
228 while(jbr->commands) {
229 JabberAdHocCommands *cmd = jbr->commands->data;
230 g_free(cmd->jid);
231 g_free(cmd->node);
232 g_free(cmd->name);
233 g_free(cmd);
234 jbr->commands = g_list_delete_link(jbr->commands, jbr->commands);
235 }
236
237 if (jbr->caps.exts) {
238 g_list_foreach(jbr->caps.exts, (GFunc)g_free, NULL);
239 g_list_free(jbr->caps.exts);
240 }
241 g_free(jbr->name);
242 g_free(jbr->status);
243 g_free(jbr->thread_id);
244 g_free(jbr->client.name);
245 g_free(jbr->client.version);
246 g_free(jbr->client.os);
247 g_free(jbr);
248 } 250 }
249 251
250 void jabber_buddy_remove_resource(JabberBuddy *jb, const char *resource) 252 void jabber_buddy_remove_resource(JabberBuddy *jb, const char *resource)
251 { 253 {
252 JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, resource); 254 JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, resource);