loleaflet/js/global.js |   20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

New commits:
commit ec48b7c746110a5779ec505ed1ba4700222c62d3
Author:     Michael Meeks <michael.me...@collabora.com>
AuthorDate: Thu May 21 21:25:34 2020 +0100
Commit:     Michael Meeks <michael.me...@collabora.com>
CommitDate: Thu May 21 23:02:39 2020 +0200

    Proxy: handle connection failure during session gracefully.
    
    Change-Id: Ib8bda31352de6fea406b32b86bc134ee2a7841d8
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94652
    Tested-by: Jenkins
    Reviewed-by: Michael Meeks <michael.me...@collabora.com>

diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js
index 6cc75b7b5..373d1635e 100644
--- a/loleaflet/js/global.js
+++ b/loleaflet/js/global.js
@@ -295,6 +295,17 @@
                        }
                };
                this.sendQueue = '';
+               this._signalErrorClose = function() {
+                       if (that.readyState < 3)
+                       {
+                               this.onerror();
+                               this.onclose();
+                               clearInterval(this.waitInterval);
+                               this.waitInterval = undefined;
+                               this.sessionId = 'open';
+                       }
+                       this.readyState = 3; // CLOSED
+               };
                this.doSend = function () {
                        if (that.sessionId === 'open')
                        {
@@ -315,7 +326,10 @@
                                if (this.status == 200)
                                        that.parseIncomingArray(new 
Uint8Array(this.response));
                                else
-                                       console.debug('proxy: error on incoming 
response');
+                               {
+                                       console.debug('proxy: error on incoming 
response ' + this.status);
+                                       that._signalErrorClose();
+                               }
                        });
                        req.addEventListener('loadend', function() {
                                that.msgInflight--;
@@ -333,9 +347,7 @@
                                if (this.responseText.indexOf('\n') >= 0)
                                {
                                        console.debug('Error: failed to fetch 
session id!');
-                                       that.onerror();
-                                       that.onclose();
-                                       that.readyState = 3;
+                                       that._signalErrorClose();
                                }
                                else
                                {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to