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 {