From 9d7a67e09580805e857ebe39e0ceca55052bee05 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Sat, 15 Jun 2019 03:07:56 +0000 Subject: [PATCH] Don't call alert() - (load-libraries shouldn't be doing that), instead return a string on error which can be logged/displayed/ignored as desired by the caller. Catch JSON.parse() errors gracefully and return an error (string). --- exec/load/sbbsimsg_lib.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/exec/load/sbbsimsg_lib.js b/exec/load/sbbsimsg_lib.js index 5d96e66b58..e45a2292c3 100644 --- a/exec/load/sbbsimsg_lib.js +++ b/exec/load/sbbsimsg_lib.js @@ -85,16 +85,19 @@ function parse_active_users(message, logon_callback, logoff_callback) if(!message) return false; var sys = sys_list[message.ip_address]; - if(!sys) { - alert("Unknown system: " + message.ip_address); - return false; - } + if(!sys) + return "Unknown system: " + message.ip_address; sys.last_response = time(); var old_users = sys.users.slice(); - if(message.data[0] == '[') - sys.users = JSON.parse(message.data); + if(message.data[0] == '[') { + try { + sys.users = JSON.parse(message.data); + } catch(e) { + return e; + } + } else { var response = message.data.split("\r\n"); @@ -167,8 +170,8 @@ function poll_systems(sent, interval, timeout, callback) replies++; var result = parse_active_users(message); - if(!result) - alert("Failed to parse: " + JSON.stringify(message)); + if(result !== true) + return format("%s: %s", result, JSON.stringify(message)); } return replies; } -- GitLab