lots more stuff

- proper gzip download for disk system (aka WNI reinventing the Content-Encoding: gzip wheel)
- send Last-Modified for static files
- send wtv-checksum for all disk system downloads
- other fixes
This commit is contained in:
zefie
2021-08-11 00:56:21 -04:00
parent 11935a5886
commit 95442a12af
21 changed files with 185 additions and 100 deletions

View File

@@ -6,15 +6,15 @@ class WTVFlashrom {
bf0app_update = false;
service_vaults = new Array();
service_name = "";
zdebug = false;
minisrv_config = [];
constructor(service_vaults, service_name, use_zefie_server = true, bf0app_update = false, debug = false) {
constructor(minisrv_config, service_vaults, service_name, use_zefie_server = true, bf0app_update = false, debug = false) {
this.service_vaults = service_vaults;
this.service_name = service_name;
this.use_zefie_server = use_zefie_server;
this.bf0app_update = bf0app_update;
this.zdebug = debug;
this.minisrv_config.config.debug_flags.debug = debug;
}
@@ -95,31 +95,31 @@ class WTVFlashrom {
if (flashrom_info.magic == flashrom_magic) flashrom_info.valid_flashrom = true;
if (!flashrom_info.valid_flashrom) console.error(" * Warning! FlashROM File Magic (" + flashrom_info.magic + ") did not match expected magic (" + flashrom_magic + ")...");
if (this.zdebug) console.log(" # FlashROM File Magic (" + flashrom_info.magic + "), expected magic (" + flashrom_magic + "), OK = " + flashrom_info.valid_flashrom + "...");
if (this.minisrv_config.config.debug_flags.debug) console.log(" # FlashROM File Magic (" + flashrom_info.magic + "), expected magic (" + flashrom_magic + "), OK = " + flashrom_info.valid_flashrom + "...");
flashrom_info.byte_progress = data.readUInt32BE(68);
if (this.zdebug) console.log(" # Flashrom Part Bytes Sent:", flashrom_info.byte_progress);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom Part Bytes Sent:", flashrom_info.byte_progress);
flashrom_info.compression_type = parseInt(part_header[16], 16);
if (this.zdebug) console.log(" # Flashrom Part Compression Type:", flashrom_info.compression_type);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom Part Compression Type:", flashrom_info.compression_type);
flashrom_info.part_data_size = data.readUInt32BE(4);
if (this.zdebug) console.log(" # Flashrom Part Data Size:", flashrom_info.part_data_size);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom Part Data Size:", flashrom_info.part_data_size);
flashrom_info.part_total_size = flashrom_info.part_data_size + flashrom_info.header_length;
if (this.zdebug) console.log(" # Flashrom Part Total Size:", flashrom_info.part_total_size);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom Part Total Size:", flashrom_info.part_total_size);
flashrom_info.total_parts_size = data.readUInt32BE(32);
if (this.zdebug) console.log(" # Flashrom All Parts Total Size:", flashrom_info.total_parts_size);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom All Parts Total Size:", flashrom_info.total_parts_size);
// read current part number bit from part header
flashrom_info.part_number = data.readUInt16BE(28);
if (this.zdebug) console.log(" # Flashrom Current Part Number:", flashrom_info.part_number);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom Current Part Number:", flashrom_info.part_number);
// read current part display message from part header
flashrom_info.message = new Buffer.from(part_header.toString('hex').substring(36 * 2, 68 * 2), 'hex').toString('ascii').replace(/[^0-9a-z\ \.\-]/gi, "");
flashrom_info.is_last_part = ((flashrom_info.byte_progress + flashrom_info.part_total_size) == flashrom_info.total_parts_size) ? true : false;
flashrom_info.rompath = `wtv-flashrom:/${path}`;
if (this.zdebug) console.log(" # Flashrom Part Bytes Sent (after this part):", flashrom_info.byte_progress + flashrom_info.part_total_size);
if (this.zdebug) console.log(" # Flashrom Part is Last Part", flashrom_info.is_last_part);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom Part Bytes Sent (after this part):", flashrom_info.byte_progress + flashrom_info.part_total_size);
if (this.minisrv_config.config.debug_flags.debug) console.log(" # Flashrom Part is Last Part", flashrom_info.is_last_part);
if (flashrom_info.is_last_part && this.bf0app_update) {
flashrom_info.next_rompath = null;
@@ -179,7 +179,7 @@ class WTVFlashrom {
})
res.on('end', function () {
if (this.zdebug) console.log(` * Zefie's FlashROM Server HTTP Status: ${res.statusCode} ${res.statusMessage}`)
if (this.minisrv_config.config.debug_flags.debug) console.log(` * Zefie's FlashROM Server HTTP Status: ${res.statusCode} ${res.statusMessage}`)
if (res.statusCode == 200) {
var data = Buffer.from(data_hex, 'hex');
} else if (res.statusCode == 206) {