Support type=error without the an error element

This is against the specification, but allows us to receives messages
from Openfire's misbehaving packet filter plugin.
cefexperiments
Ingo Bauersachs 12 years ago
parent f3fdce5d66
commit e6f8e4a3ed

@ -929,22 +929,31 @@ public void processPacket(Packet packet)
if (logger.isInfoEnabled())
logger.info("Message error received from " + userBareID);
int errorCode = packet.getError().getCode();
int errorResultCode = MessageDeliveryFailedEvent.UNKNOWN_ERROR;
if(errorCode == 503)
if (packet.getError() != null)
{
org.jivesoftware.smackx.packet.MessageEvent msgEvent =
(org.jivesoftware.smackx.packet.MessageEvent)
packet.getExtension("x", "jabber:x:event");
if(msgEvent != null && msgEvent.isOffline())
int errorCode = packet.getError().getCode();
if(errorCode == 503)
{
errorResultCode =
MessageDeliveryFailedEvent
.OFFLINE_MESSAGES_NOT_SUPPORTED;
org.jivesoftware.smackx.packet.MessageEvent msgEvent =
(org.jivesoftware.smackx.packet.MessageEvent)
packet.getExtension("x", "jabber:x:event");
if(msgEvent != null && msgEvent.isOffline())
{
errorResultCode =
MessageDeliveryFailedEvent
.OFFLINE_MESSAGES_NOT_SUPPORTED;
}
}
}
if (sourceContact == null)
{
sourceContact = opSetPersPresence.createVolatileContact(
userFullId, isPrivateMessaging);
}
MessageDeliveryFailedEvent ev
= new MessageDeliveryFailedEvent(newMessage,
sourceContact,

Loading…
Cancel
Save