request stanza count after every ibb data stanza to not fill our own stanza queue

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java               | 14 
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java |  1 
2 files changed, 9 insertions(+), 6 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java 🔗

@@ -957,7 +957,6 @@ public class XmppConnection implements Runnable {
 			disconnect(true);
 			return;
 		}
-		final String name = packet.getName();
 		tagWriter.writeStanzaAsync(packet);
 		if (packet instanceof AbstractAcknowledgeableStanza) {
 			AbstractAcknowledgeableStanza stanza = (AbstractAcknowledgeableStanza) packet;
@@ -973,9 +972,7 @@ public class XmppConnection implements Runnable {
 	}
 
 	public void sendPing() {
-		if (streamFeatures.hasChild("sm")) {
-			tagWriter.writeStanzaAsync(new RequestPacket(smVersion));
-		} else {
+		if (!r()) {
 			final IqPacket iq = new IqPacket(IqPacket.TYPE.GET);
 			iq.setFrom(account.getJid());
 			iq.addChild("ping", "urn:xmpp:ping");
@@ -1086,8 +1083,13 @@ public class XmppConnection implements Runnable {
 		return null;
 	}
 
-	public void r() {
-		this.tagWriter.writeStanzaAsync(new RequestPacket(smVersion));
+	public boolean r() {
+		if (getFeatures().sm()) {
+			this.tagWriter.writeStanzaAsync(new RequestPacket(smVersion));
+			return true;
+		} else {
+			return false;
+		}
 	}
 
 	public String getMucServer() {

src/main/java/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java 🔗

@@ -176,6 +176,7 @@ public class JingleInbandTransport extends JingleTransport {
 			data.setAttribute("sid", this.sessionId);
 			data.setContent(base64);
 			this.account.getXmppConnection().sendIqPacket(iq, this.onAckReceived);
+			this.account.getXmppConnection().r(); //don't fill up stanza queue too much
 			this.seq++;
 			if (this.remainingSize > 0) {
 				connection.updateProgress((int) ((((double) (this.fileSize - this.remainingSize)) / this.fileSize) * 100));