浏览代码

Make sure IQ timeouts are properly logged

JC Brand 5 年之前
父节点
当前提交
35de251ce7
共有 2 个文件被更改,包括 6 次插入1 次删除
  1. 5 0
      src/headless/converse-core.js
  2. 1 1
      src/headless/converse-disco.js

+ 5 - 0
src/headless/converse-core.js

@@ -885,6 +885,11 @@ const api = _converse.api = {
         let promise;
         if (reject) {
             promise = new Promise((resolve, reject) => _converse.connection.sendIQ(stanza, resolve, reject, timeout));
+            promise.catch(e => {
+                if (e === null) {
+                    throw new TimeoutError(`Timeout error after ${timeout}ms for the following IQ stanza: ${stanza}`);
+                }
+            });
         } else {
             promise = new Promise(resolve => _converse.connection.sendIQ(stanza, resolve, resolve, timeout));
         }

+ 1 - 1
src/headless/converse-disco.js

@@ -147,7 +147,7 @@ converse.plugins.add('converse-disco', {
                 try {
                     stanza = await api.disco.info(this.get('jid'), null);
                 } catch (iq) {
-                    log.error(iq);
+                    iq === null ? log.error(`Timeout for disco#info query for ${this.get('jid')}`) : log.error(iq);
                     this.waitUntilFeaturesDiscovered.resolve(this);
                     return;
                 }