faulty otr messages now generate an error

This commit is contained in:
iNPUTmice 2014-06-26 16:42:24 +02:00
parent 3bb585c020
commit 3a57f6df89
3 changed files with 25 additions and 5 deletions

View File

@ -88,4 +88,22 @@ public class MessageGenerator {
} }
return packet; return packet;
} }
public MessagePacket generateNotAcceptable(MessagePacket origin) {
MessagePacket packet = generateError(origin);
Element error = packet.addChild("error");
error.setAttribute("type", "modify");
error.setAttribute("code", "406");
error.addChild("not-acceptable");
return packet;
}
private MessagePacket generateError(MessagePacket origin) {
MessagePacket packet = new MessagePacket();
packet.setId(origin.getId());
packet.setTo(origin.getFrom());
packet.setBody(origin.getBody());
packet.setType(MessagePacket.TYPE_ERROR);
return packet;
}
} }

View File

@ -92,9 +92,9 @@ public class MessageParser extends AbstractParser {
} catch (Exception e) { } catch (Exception e) {
String receivedId = packet.getId(); String receivedId = packet.getId();
if (receivedId!=null) { if (receivedId!=null) {
mXmppConnectionService.replyWithError(account,packet); mXmppConnectionService.replyWithNotAcceptable(account,packet);
} }
conversation.resetOtrSession(); conversation.endOtrIfNeeded();
return null; return null;
} }
} }

View File

@ -1475,8 +1475,10 @@ public class XmppConnectionService extends Service {
return this.pm; return this.pm;
} }
public void replyWithError(Account account, MessagePacket packet) { public void replyWithNotAcceptable(Account account, MessagePacket packet) {
// TODO Auto-generated method stub if (account.getStatus() == Account.STATUS_ONLINE) {
MessagePacket error = this.mMessageGenerator.generateNotAcceptable(packet);
account.getXmppConnection().sendMessagePacket(error);
}
} }
} }