fix(exit-node): preserve raw exit-node responses

Return raw exit-node responses from Apps Script when requested and strip stale exit-node content-encoding headers after server-side decompression.
This commit is contained in:
Captain Mirage
2026-05-16 16:52:45 +03:30
committed by GitHub
parent e36263862e
commit d56ddc692b
2 changed files with 26 additions and 11 deletions
+10 -1
View File
@@ -202,6 +202,15 @@ function _doSingle(req) {
try {
var opts = _buildOpts(req);
var resp = UrlFetchApp.fetch(req.u, opts);
// Raw-return mode for exit-node path.
// r:true = return destination body verbatim so Rust gets {s,h,b} unwrapped.
if (req.r === true) {
return ContentService
.createTextOutput(resp.getContentText())
.setMimeType(ContentService.MimeType.JSON);
}
return _json({
s: resp.getResponseCode(),
h: _respHeaders(resp),
@@ -307,7 +316,7 @@ function _buildOpts(req) {
var opts = {
method: (req.m || "GET").toLowerCase(),
muteHttpExceptions: true,
followRedirects: req.r !== false,
followRedirects: true, // ← always true; r flag now has different meaning
validateHttpsCertificates: true,
escaping: false,
};