equal
deleted
inserted
replaced
1383 char bpprio; |
1383 char bpprio; |
1384 time_t timestamp = 0L; |
1384 time_t timestamp = 0L; |
1385 LmMessageNode *muc_packet, *caps; |
1385 LmMessageNode *muc_packet, *caps; |
1386 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1386 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1387 |
1387 |
1388 // Check for MUC presence packet |
|
1389 muc_packet = lm_message_node_find_xmlns(m->node, NS_MUC_USER); |
|
1390 |
|
1391 from = lm_message_get_from(m); |
1388 from = lm_message_get_from(m); |
1392 if (!from) { |
1389 if (!from) { |
1393 scr_LogPrint(LPRINT_LOGNORM, "Unexpected presence packet!"); |
1390 scr_LogPrint(LPRINT_LOGNORM, "Unexpected presence packet!"); |
1394 |
1391 |
1395 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1392 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1397 lm_message_get_from(m)); |
1394 lm_message_get_from(m)); |
1398 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
1395 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
1399 } |
1396 } |
1400 return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; |
1397 return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; |
1401 } |
1398 } |
1402 |
|
1403 rname = jid_get_resource_name(from); |
|
1404 |
1399 |
1405 if (settings_opt_get_int("ignore_self_presence")) { |
1400 if (settings_opt_get_int("ignore_self_presence")) { |
1406 const char *self_fjid = lm_connection_get_jid(connection); |
1401 const char *self_fjid = lm_connection_get_jid(connection); |
1407 if (self_fjid && !strcasecmp(self_fjid, from)) { |
1402 if (self_fjid && !strcasecmp(self_fjid, from)) { |
1408 return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; // Ignoring self presence |
1403 return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS; // Ignoring self presence |
1462 if (ustmsg && !*ustmsg) |
1457 if (ustmsg && !*ustmsg) |
1463 ustmsg = NULL; |
1458 ustmsg = NULL; |
1464 |
1459 |
1465 // Timestamp? |
1460 // Timestamp? |
1466 timestamp = lm_message_node_get_timestamp(m->node); |
1461 timestamp = lm_message_node_get_timestamp(m->node); |
|
1462 // Check for MUC presence packet |
|
1463 muc_packet = lm_message_node_find_xmlns(m->node, NS_MUC_USER); |
|
1464 rname = jid_get_resource_name(from); |
1467 |
1465 |
1468 if (muc_packet) { |
1466 if (muc_packet) { |
1469 // This is a MUC presence message |
1467 // This is a MUC presence message |
1470 handle_muc_presence(from, muc_packet, bjid, rname, |
1468 handle_muc_presence(from, muc_packet, bjid, rname, |
1471 ust, ustmsg, timestamp, bpprio); |
1469 ust, ustmsg, timestamp, bpprio); |
1594 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1592 LmMessageSubType mstype = lm_message_get_sub_type(m); |
1595 const char *from = lm_message_get_from(m); |
1593 const char *from = lm_message_get_from(m); |
1596 const char *msg = lm_message_node_get_child_value(m->node, "status"); |
1594 const char *msg = lm_message_node_get_child_value(m->node, "status"); |
1597 |
1595 |
1598 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1596 if (mstype == LM_MESSAGE_SUB_TYPE_ERROR) { |
1599 display_server_error(lm_message_node_get_child(m->node, "error"), |
1597 display_server_error(lm_message_node_get_child(m->node, "error"), from); |
1600 lm_message_get_from(m)); |
|
1601 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
1598 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
1602 } |
1599 } |
1603 |
1600 |
1604 if (!from) { |
1601 if (!from) { |
1605 scr_LogPrint(LPRINT_DEBUG, "handle_s10n: Unexpected presence packet!"); |
1602 scr_LogPrint(LPRINT_DEBUG, "handle_s10n: Unexpected presence packet!"); |