瀏覽代碼

Don't try to restore if rid, jid and sid are passed in.

Fixes an issue whereby those tokens are passed in but not used and instead
converse attempts to restore the session (and then totally ignores the tokens
when it fails).

Makes sense to me that you'd want your passed in tokens to be used always, even
when there are restorable tokens.
JC Brand 9 年之前
父節點
當前提交
3fd2225fae
共有 1 個文件被更改,包括 6 次插入8 次删除
  1. 6 8
      src/converse-core.js

+ 6 - 8
src/converse-core.js

@@ -1685,7 +1685,9 @@
         this.attemptPreboundSession = function (tokens) {
             /* Handle session resumption or initialization when prebind is being used.
              */
-            if (this.keepalive) {
+            if (this.jid && this.sid && this.rid) {
+                return this.connection.attach(this.jid, this.sid, this.rid, this.onConnectStatusChanged);
+            } else if (this.keepalive) {
                 if (!this.jid) {
                     throw new Error("initConnection: when using 'keepalive' with 'prebind, you must supply the JID of the current user.");
                 }
@@ -1695,13 +1697,9 @@
                     this.log("Could not restore session for jid: "+this.jid+" Error message: "+e.message);
                     this.clearSession(); // If there's a roster, we want to clear it (see #555)
                 }
-            } else { // Not keepalive
-                if (this.jid && this.sid && this.rid) {
-                    return this.connection.attach(this.jid, this.sid, this.rid, this.onConnectStatusChanged);
-                } else {
-                    throw new Error("initConnection: If you use prebind and not keepalive, "+
-                        "then you MUST supply JID, RID and SID values");
-                }
+            } else {
+                throw new Error("initConnection: If you use prebind and not keepalive, "+
+                    "then you MUST supply JID, RID and SID values");
             }
             // We haven't been able to attach yet. Let's see if there
             // is a prebind_url, otherwise there's nothing with which