diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js index e358d6b1..a2ad57e0 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js @@ -22,10 +22,10 @@ if (request_headers.query.raw || bf0app_update) { sendToClient(socket, headers, data); }); } else { - headers = "200 OK\n" if (request_headers.query.path) { - headers += "Content-type: text/html\n" - headers += "wtv-visit: " + service_name + ":/initiate-lc2-download?path=" + request_headers.query.path; + headers = "200 OK\n" + headers += "wtv-visit: " + service_name + ":/initiate-lc2-download?path=" + request_headers.query.path + "\n"; + headers += "Content-type: text/html" data = ''; } else { var errpage = doErrorPage(404) diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js index 963561a1..a7f93034 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js @@ -21,7 +21,7 @@ async function processLC2DownloadPage(path, flashrom_info, numparts = null) { if (numparts != null) flashrom_info.part_count = parseInt(numparts); if (!flashrom_info.part_count) flashrom_info.part_count = parseInt(flashrom_info.message.substring(flashrom_info.message.length - 4).replace(/\D/g, '')); if (!flashrom_info.part_number || !flashrom_info.is_last_part || !flashrom_info.rompath || !flashrom_info.next_rompath || !flashrom_info.is_bootrom) { - if (!flashrom_info.is_last_part) { + if (!flashrom_info.is_last_part || request_headers.query.last_part) { flashrom_info.next_rompath = request_headers.request_url.replace(escape(request_headers.query.path), escape(flashrom_info.next_rompath.replace(service_name+":/",""))); } diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js index dc6ca784..3a00509a 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js @@ -5,9 +5,8 @@ var romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); url = "client:updateflash?ipaddr=" + minisrv_config.services[service_name].host + "&port=" + minisrv_config.services[service_name].port + "&path=" + escape(service_name + ":/" +request_headers.query.path); if (request_headers.query.numparts) url += escape("&numparts=" + request_headers.query.numparts); } - headers = "300 OK\n"; + headers = "200 OK\n"; headers += "wtv-visit: " + url + "\n"; - headers += "Location: " + url + "\n"; headers += "Content-type: text/html"; data = ''; } else { diff --git a/zefie_wtvp_minisrv/WTVFlashrom.js b/zefie_wtvp_minisrv/WTVFlashrom.js index 5b69b01f..986c4666 100644 --- a/zefie_wtvp_minisrv/WTVFlashrom.js +++ b/zefie_wtvp_minisrv/WTVFlashrom.js @@ -43,7 +43,7 @@ class WTVFlashrom { } - async doLocalFlashROM(flashrom_file_path, callback, info_only = false) { + async doLocalFlashROM(flashrom_file_path, request_path, callback, info_only = false) { // use local flashrom files; console.log(info_only); var self = this; @@ -56,7 +56,7 @@ class WTVFlashrom { callback(data, headers); } else { if (info_only) { - callback(self.getFlashromData(data, flashrom_file_path)); + callback(self.getFlashromInfo(data, request_path)); } else { self.sendToClient(data, flashrom_file_path, callback); } @@ -202,7 +202,7 @@ class WTVFlashrom { }); req.end(); } else { - this.doLocalFlashROM(flashrom_file_path, callback, ((length != 0) ? true : false)); + this.doLocalFlashROM(flashrom_file_path, request_path, callback, ((length != 0) ? true : false)); } } }