diff --git a/setup.sh b/setup.sh index 66be41c..cc9185b 100755 --- a/setup.sh +++ b/setup.sh @@ -1370,7 +1370,10 @@ install_debian_packages() { CURRENT_STEP=0 progress "Updating APT package lists" - $SUDO apt-get update -y >/dev/null + if ! $SUDO apt-get update -y >/dev/null 2>&1; then + warn "apt-get update reported errors (possibly from third-party repos on your system)." + warn "Continuing anyway — if package installs fail, check your APT sources." + fi progress "Installing RTL-SDR" if ! $IS_DRAGONOS; then diff --git a/static/js/modes/meteor.js b/static/js/modes/meteor.js index 933205d..bb620a5 100644 --- a/static/js/modes/meteor.js +++ b/static/js/modes/meteor.js @@ -88,7 +88,7 @@ const MeteorScatter = (function () { } function start() { - if (_running) stop(); + if (_running || _ws) stop(); const freq = parseFloat(document.getElementById('meteorFrequency')?.value) || 143.05; const gain = parseFloat(document.getElementById('meteorGain')?.value) || 0; @@ -126,9 +126,13 @@ const MeteorScatter = (function () { } _ws.onopen = function () { + // Guard against race: if start() was called again before this + // connection opened, _ws now points to a different socket. + if (_ws !== this) { try { this.close(); } catch (e) { /* */ } return; } + _running = true; _updateUI(); - _ws.send(JSON.stringify({ + this.send(JSON.stringify({ cmd: 'start', frequency_mhz: freq, gain: gain === 0 ? 'auto' : gain,