Mercurial > pidgin
comparison libpurple/protocols/bonjour/jabber.c @ 24675:35d0ce5f319a
Further cleanup to fix CID 373.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Wed, 10 Dec 2008 02:44:03 +0000 |
parents | 7b10acb20526 |
children | f38799160cfa 65cfc59858cf 1260a3fb60f4 |
comparison
equal
deleted
inserted
replaced
24674:7b10acb20526 | 24675:35d0ce5f319a |
---|---|
75 PARTIALLY_SENT = 1, | 75 PARTIALLY_SENT = 1, |
76 FULLY_SENT = 2 | 76 FULLY_SENT = 2 |
77 }; | 77 }; |
78 | 78 |
79 static void | 79 static void |
80 xep_iq_parse(xmlnode *packet, PurpleConnection *connection, PurpleBuddy *pb); | 80 xep_iq_parse(xmlnode *packet, PurpleBuddy *pb); |
81 | 81 |
82 static BonjourJabberConversation * | 82 static BonjourJabberConversation * |
83 bonjour_jabber_conv_new(PurpleBuddy *pb, PurpleAccount *account, const char *ip) { | 83 bonjour_jabber_conv_new(PurpleBuddy *pb, PurpleAccount *account, const char *ip) { |
84 | 84 |
85 BonjourJabberConversation *bconv = g_new0(BonjourJabberConversation, 1); | 85 BonjourJabberConversation *bconv = g_new0(BonjourJabberConversation, 1); |
362 g_return_if_fail(pb != NULL); | 362 g_return_if_fail(pb != NULL); |
363 | 363 |
364 if (!strcmp(packet->name, "message")) | 364 if (!strcmp(packet->name, "message")) |
365 _jabber_parse_and_write_message_to_ui(packet, pb); | 365 _jabber_parse_and_write_message_to_ui(packet, pb); |
366 else if(!strcmp(packet->name, "iq")) | 366 else if(!strcmp(packet->name, "iq")) |
367 xep_iq_parse(packet, NULL, pb); | 367 xep_iq_parse(packet, pb); |
368 else | 368 else |
369 purple_debug_warning("bonjour", "Unknown packet: %s\n", packet->name ? packet->name : "(null)"); | 369 purple_debug_warning("bonjour", "Unknown packet: %s\n", packet->name ? packet->name : "(null)"); |
370 } | 370 } |
371 | 371 |
372 static void bonjour_jabber_stream_ended(BonjourJabberConversation *bconv) { | 372 static void bonjour_jabber_stream_ended(BonjourJabberConversation *bconv) { |
1156 | 1156 |
1157 static gboolean | 1157 static gboolean |
1158 check_if_blocked(PurpleBuddy *pb) | 1158 check_if_blocked(PurpleBuddy *pb) |
1159 { | 1159 { |
1160 gboolean blocked = FALSE; | 1160 gboolean blocked = FALSE; |
1161 GSList *l = NULL; | 1161 GSList *l; |
1162 PurpleAccount *acc = NULL; | 1162 PurpleAccount *acc = purple_buddy_get_account(pb); |
1163 | 1163 |
1164 if(pb == NULL) | 1164 if(acc == NULL) |
1165 return FALSE; | 1165 return FALSE; |
1166 | |
1167 acc = pb->account; | |
1168 | 1166 |
1169 for(l = acc->deny; l != NULL; l = l->next) { | 1167 for(l = acc->deny; l != NULL; l = l->next) { |
1170 if(!purple_utf8_strcasecmp(pb->name, (char *)l->data)) { | 1168 if(!purple_utf8_strcasecmp(pb->name, (char *)l->data)) { |
1171 purple_debug_info("bonjour", "%s has been blocked by %s.\n", pb->name, acc->username); | 1169 purple_debug_info("bonjour", "%s has been blocked by %s.\n", pb->name, acc->username); |
1172 blocked = TRUE; | 1170 blocked = TRUE; |
1175 } | 1173 } |
1176 return blocked; | 1174 return blocked; |
1177 } | 1175 } |
1178 | 1176 |
1179 static void | 1177 static void |
1180 xep_iq_parse(xmlnode *packet, PurpleConnection *connection, PurpleBuddy *pb) | 1178 xep_iq_parse(xmlnode *packet, PurpleBuddy *pb) |
1181 { | 1179 { |
1182 xmlnode *child = NULL; | 1180 xmlnode *child; |
1183 | |
1184 if(packet == NULL || pb == NULL) | |
1185 return; | |
1186 | |
1187 if(connection == NULL) { | |
1188 if(pb->account != NULL) | |
1189 connection = (pb->account)->gc; | |
1190 } | |
1191 | 1181 |
1192 if(check_if_blocked(pb)) | 1182 if(check_if_blocked(pb)) |
1193 return; | 1183 return; |
1194 | 1184 |
1195 if ((child = xmlnode_get_child(packet, "si")) || (child = xmlnode_get_child(packet, "error"))) | 1185 if ((child = xmlnode_get_child(packet, "si")) || (child = xmlnode_get_child(packet, "error"))) |
1196 xep_si_parse(connection, packet, pb); | 1186 xep_si_parse(purple_account_get_connection(pb->account), |
1187 packet, pb); | |
1197 else | 1188 else |
1198 xep_bytestreams_parse(connection, packet, pb); | 1189 xep_bytestreams_parse(purple_account_get_connection(pb->account), |
1190 packet, pb); | |
1199 } | 1191 } |
1200 | 1192 |
1201 int | 1193 int |
1202 xep_iq_send_and_free(XepIq *iq) | 1194 xep_iq_send_and_free(XepIq *iq) |
1203 { | 1195 { |