equal
deleted
inserted
replaced
1256 // Timestamp? |
1256 // Timestamp? |
1257 timestamp = lm_message_node_get_timestamp(m->node); |
1257 timestamp = lm_message_node_get_timestamp(m->node); |
1258 |
1258 |
1259 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1259 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1260 x = lm_message_node_get_child(m->node, "error"); |
1260 x = lm_message_node_get_child(m->node, "error"); |
1261 display_server_error(x); |
1261 display_server_error(x, from); |
1262 #if defined XEP0022 || defined XEP0085 |
1262 #if defined XEP0022 || defined XEP0085 |
1263 // If the XEP85/22 support is probed, set it back to unknown so that |
1263 // If the XEP85/22 support is probed, set it back to unknown so that |
1264 // we probe it again. |
1264 // we probe it again. |
1265 chatstates_reset_probed(from); |
1265 chatstates_reset_probed(from); |
1266 #endif |
1266 #endif |
1297 char *ver = user_data; |
1297 char *ver = user_data; |
1298 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1298 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1299 |
1299 |
1300 caps_add(ver); |
1300 caps_add(ver); |
1301 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1301 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1302 display_server_error(lm_message_node_get_child(m->node, "error")); |
1302 display_server_error(lm_message_node_get_child(m->node, "error"), |
|
1303 lm_message_get_from(m)); |
1303 } else if (mstype == LM_MESSAGE_SUB_TYPE_RESULT) { |
1304 } else if (mstype == LM_MESSAGE_SUB_TYPE_RESULT) { |
1304 LmMessageNode *info; |
1305 LmMessageNode *info; |
1305 LmMessageNode *query = lm_message_node_get_child(m->node, "query"); |
1306 LmMessageNode *query = lm_message_node_get_child(m->node, "query"); |
1306 |
1307 |
1307 info = lm_message_node_get_child(query, "identity"); |
1308 info = lm_message_node_get_child(query, "identity"); |
1353 |
1354 |
1354 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1355 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1355 LmMessageNode *x; |
1356 LmMessageNode *x; |
1356 scr_LogPrint(LPRINT_LOGNORM, "Error presence packet from <%s>", bjid); |
1357 scr_LogPrint(LPRINT_LOGNORM, "Error presence packet from <%s>", bjid); |
1357 x = lm_message_node_find_child(m->node, "error"); |
1358 x = lm_message_node_find_child(m->node, "error"); |
1358 display_server_error(x); |
1359 display_server_error(x, from); |
1359 // Let's check it isn't a nickname conflict. |
1360 // Let's check it isn't a nickname conflict. |
1360 // XXX Note: We should handle the <conflict/> string condition. |
1361 // XXX Note: We should handle the <conflict/> string condition. |
1361 if ((p = lm_message_node_get_attribute(x, "code")) != NULL) { |
1362 if ((p = lm_message_node_get_attribute(x, "code")) != NULL) { |
1362 if (atoi(p) == 409) { |
1363 if (atoi(p) == 409) { |
1363 // 409 = conflict (nickname is in use or registered by another user) |
1364 // 409 = conflict (nickname is in use or registered by another user) |
1462 const char *xmlns = NULL; |
1463 const char *xmlns = NULL; |
1463 LmMessageNode *x; |
1464 LmMessageNode *x; |
1464 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1465 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1465 |
1466 |
1466 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1467 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1467 display_server_error(lm_message_node_get_child(m->node, "error")); |
1468 display_server_error(lm_message_node_get_child(m->node, "error"), |
|
1469 lm_message_get_from(m)); |
1468 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
1470 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
1469 } |
1471 } |
1470 |
1472 |
1471 for (x = m->node->children; x; x=x->next) { |
1473 for (x = m->node->children; x; x=x->next) { |
1472 xmlns = lm_message_node_get_attribute(x, "xmlns"); |
1474 xmlns = lm_message_node_get_attribute(x, "xmlns"); |