include remote server errors in errors that should trigger a self ping

This commit is contained in:
Daniel Gultsch 2019-06-30 20:08:28 +02:00
parent 0ecdb43be6
commit 9f08a32ffb

View file

@ -266,12 +266,12 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
Message.STATUS_SEND_FAILED, Message.STATUS_SEND_FAILED,
extractErrorMessage(packet)); extractErrorMessage(packet));
final Element error = packet.findChild("error"); final Element error = packet.findChild("error");
final boolean notAcceptable = error != null && error.hasChild("not-acceptable"); final boolean pingWorthyError = error != null && (error.hasChild("not-acceptable") || error.hasChild("remote-server-timeout") || error.hasChild("remote-server-not-found"));
if (notAcceptable) { if (pingWorthyError) {
Conversation conversation = mXmppConnectionService.find(account,from); Conversation conversation = mXmppConnectionService.find(account,from);
if (conversation != null && conversation.getMode() == Conversational.MODE_MULTI) { if (conversation != null && conversation.getMode() == Conversational.MODE_MULTI) {
if (conversation.getMucOptions().online()) { if (conversation.getMucOptions().online()) {
Log.d(Config.LOGTAG,account.getJid().asBareJid()+": received not-acceptable error for seemingly online muc at "+from); Log.d(Config.LOGTAG,account.getJid().asBareJid()+": received ping worthy error for seemingly online muc at "+from);
mXmppConnectionService.mucSelfPingAndRejoin(conversation); mXmppConnectionService.mucSelfPingAndRejoin(conversation);
} }
} }