From 10dda7683987a7d0735478374af1a256bca8e7f1 Mon Sep 17 00:00:00 2001 From: bobzel Date: Fri, 29 Apr 2022 20:37:22 -0400 Subject: another fix for Label's BigText to make multiline work better. fixed server bug for 'write after end' when servering web pages. --- src/server/server_Initialization.ts | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/server') diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts index 24cc3b796..81ed0d2a1 100644 --- a/src/server/server_Initialization.ts +++ b/src/server/server_Initialization.ts @@ -193,11 +193,11 @@ function proxyServe(req: any, requrl: string, response: any) { return `href="${resolvedServerUrl + "/corsProxy/http" + href}"`; }; const zipToStringDecoder = new (require('string_decoder').StringDecoder)('utf8'); - // const htmlText = zipToStringDecoder.write(zlib.gunzipSync(htmlBodyMemoryStream.read()).toString('utf8') - // .replace('', ' ') - // .replace(/href="http([^"]*)"/g, replacer) - // .replace(/target="_blank"/g, "")); - // rewrittenHtmlBody = zlib.gzipSync(htmlText); + const htmlText = zipToStringDecoder.write(zlib.gunzipSync(htmlBodyMemoryStream.read()).toString('utf8') + .replace('', ' ') + .replace(/href="http([^"]*)"/g, replacer) + .replace(/target="_blank"/g, "")); + rewrittenHtmlBody = zlib.gzipSync(htmlText); const bodyStream = htmlBodyMemoryStream.read(); if (bodyStream) { const htmlText = zipToStringDecoder.write(zlib.gunzipSync(bodyStream).toString('utf8') @@ -208,14 +208,25 @@ function proxyServe(req: any, requrl: string, response: any) { } else { console.log("EMPTY body: href"); } - } catch (e) { console.log(e); } + } catch (e) { + console.log("EROR?: ", e); + } } }); }) .on('data', (e: any) => { - rewrittenHtmlBody && response.send(rewrittenHtmlBody); + try { + if (!response.connection.writable) { + rewrittenHtmlBody && response.send(rewrittenHtmlBody); + } + } catch (e) { + console.log("ERROR data : ", e); + } rewrittenHtmlBody = undefined; }) + .on('error', (e: any) => { + console.log("ERROR ON SERVER: ", e); + }) .pipe(response); }) .pipe(htmlBodyMemoryStream); -- cgit v1.2.3-70-g09d2