diff --git a/exec/avatars.js b/exec/avatars.js index 2b70f59fdf0fb3906b6cc0664094197e896c4bee..568c8d5a2b8451a2a5c5f4a3861c65f68c911b9b 100644 --- a/exec/avatars.js +++ b/exec/avatars.js @@ -83,7 +83,7 @@ function find_name(objs, name) function import_netuser_list(hdr, list) { var objs = []; - var file = new File(this.netuser_fname(hdr.from_netaddr)); + var file = new File(this.netuser_fname(hdr.from_net_addr)); if(file.open("r")) { objs = file.iniGetAllObjects(); file.close(); @@ -109,13 +109,30 @@ function import_netuser_list(hdr, list) return result; } +function valid_shared_file(filename) +{ + var sauce = SAUCE.read(filename); + if(!sauce) { + alert(filename + " has no SAUCE!"); + return false; + } + if(sauce.datatype != SAUCE.defs.datatype.bin + || sauce.cols != lib.defs.width + || (sauce.filesize%lib.size) != 0) { + alert(format("%s has invalid SAUCE! (datatype=%u cols=%u size=%u)" + ,filename, sauce.datatype, sauce.cols, sauce.filesize)); + return false; + } + return true; +} + function import_shared_file(hdr, body) { var data = parse_file_msg(body); if(!data) return false; - var filename = format("%s.%s", hdr.msg_net_addr, file_getname(hdr.subject)); + var filename = format("%s.%s", hdr.from_net_addr, file_getname(hdr.subject)); if(file_getext(filename).toLowerCase() != '.bin') filename += '.bin'; @@ -127,18 +144,8 @@ function import_shared_file(hdr, body) file.write(data); file.close(); print(file.name + " created successfully"); - var sauce = SAUCE.read(file.name); - if(!sauce) { - alert(file.name + " has no SAUCE!"); - return false; - } - if(sauce.datatype != SAUCE.defs.datatype.bin - || sauce.cols != lib.defs.width - || (sauce.filesize%lib.size) != 0) { - alert(format("%s has invalid SAUCE! (datatype=%u cols=%u size=%u)" - ,file.name, sauce.datatype, sauce.cols, sauce.filesize)); - return false; - } + if(!valid_shared_file(file.name)) + return false; var new_path = format("%s%s", lib.local_library(), filename); var result = file_copy(file.name, new_path); if(!result) @@ -354,8 +361,11 @@ function main() success = export_users(msgbase, realnames); } if(success && filename) { - printf("Exporting avatar file: %s\n", filename); - success = export_file(msgbase, filename); + printf("Exporting avatar file: %s\n", filename); + if(!valid_shared_file(filename)) + success = false; + else + success = export_file(msgbase, filename); } printf("%s\r\n", success ? "Successful" : "FAILED: " + msgbase.last_error); break;