Merge branch 'main' into unison

unison
probonopd 1 week ago committed by GitHub
commit 8911b55e8a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 14
      .github/workflows/build.yml
  2. 8
      syslogserver.py
  3. 15
      updater.py

@ -64,11 +64,15 @@ jobs:
run: |
set -ex
export PATH=$(readlink -f ./gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin):$PATH
cd ./circle-stdlib/libs/circle/boot
make
make armstub64
cd -
cp -r ./circle-stdlib/libs/circle/boot/* sdcard
# cd ./circle-stdlib/libs/circle/boot
# make
# make armstub64
# cd -
# cp -r ./circle-stdlib/libs/circle/boot/* sdcard
cd ./sdcard
wget https://github.com/probonopd/MiniDexed/releases/download/assets/boot.zip
unzip boot.zip && rm boot.zip
cd ..
rm -rf sdcard/config*.txt sdcard/README sdcard/Makefile sdcard/armstub sdcard/COPYING.linux
cp ./src/config.txt ./src/minidexed.ini ./src/performance.ini sdcard/
cp ./getsysex.sh sdcard/

@ -15,6 +15,7 @@ class SyslogServer:
self.port = port
self.server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.server.bind((self.host, self.port))
self.server.settimeout(0.5) # Set timeout to allow checking self.running
self.start_time = None
self.running = True
@ -28,12 +29,17 @@ class SyslogServer:
try:
data, address = self.server.recvfrom(1024)
self.handle_message(data)
except socket.timeout:
continue # Check self.running again
except KeyboardInterrupt:
self.running = False
def handle_message(self, data):
message = data[2:].decode('utf-8').strip()
if "Time exceeded (0)" in message:
return
if self.start_time is None:
self.start_time = time.time()
relative_time = "0:00:00.000"
@ -57,4 +63,4 @@ class SyslogServer:
if __name__ == "__main__":
server = SyslogServer()
server.start()
print("Syslog server stopped.")
print("Syslog server stopped.")

@ -345,13 +345,18 @@ if __name__ == "__main__":
print(f"\nUploaded {file} to {selected_ip}.")
except ftplib.all_errors as e:
print(f"FTP error: {e}")
ftp = None # Mark ftp as unusable
# Only attempt to send BYE if ftp is connected and has a socket
try:
ftp.sendcmd("BYE")
print(f"Disconnected from {selected_ip}.")
except ftplib.all_errors as e:
if str(e).strip().lower() == "timed out":
# Suppress expected timeout after BYE
if ftp is not None and getattr(ftp, 'sock', None) is not None:
ftp.sendcmd("BYE")
print(f"Disconnected from {selected_ip}.")
else:
print(f"No active FTP connection to disconnect from.")
except (*ftplib.all_errors, AttributeError) as e:
# Handle timeout or already closed connection
if isinstance(e, TimeoutError) or (str(e).strip().lower() == "timed out"):
print(f"Disconnected from {selected_ip} (timeout after BYE, device likely restarted).")
else:
print(f"FTP error after BYE: {e}")

Loading…
Cancel
Save