say ok on login, not x
This commit is contained in:
@@ -67,7 +67,6 @@ def authenticate(conn: socket.socket):
|
||||
salt = "".join(secrets.choice(string.ascii_lowercase) for _ in range(SALT_LENGTH))
|
||||
conn.sendall(salt.encode() + b"\n")
|
||||
expected_hash = hashlib.sha1((salt + PASSWORD).encode()).hexdigest().encode()
|
||||
tries = 0
|
||||
|
||||
while True:
|
||||
try:
|
||||
@@ -75,15 +74,13 @@ def authenticate(conn: socket.socket):
|
||||
if not data: break
|
||||
|
||||
if data.strip() == expected_hash.strip():
|
||||
conn.sendall(b"o1,0\n")
|
||||
conn.sendall(b"o1,0\nOK\n")
|
||||
return True
|
||||
else:
|
||||
tries += 1
|
||||
conn.sendall(b"a0\n") # You failed
|
||||
except BlockingIOError:
|
||||
if tries > 2:
|
||||
conn.close()
|
||||
break
|
||||
except BlockingIOError: pass
|
||||
conn.close()
|
||||
return False
|
||||
|
||||
def process_command(tef: TEF6686, data: bytes, state: State, conn: socket.socket):
|
||||
@@ -103,17 +100,15 @@ def process_command(tef: TEF6686, data: bytes, state: State, conn: socket.socket
|
||||
out += f"G{bin(eqims).removeprefix('0b').zfill(2)}\n".encode()
|
||||
state.last_eqims = eqims
|
||||
elif cmd.startswith(b"B"):
|
||||
mono = bool(int(cmd.decode().removeprefix("B").strip(), 2))
|
||||
tef.FM_Set_Stereo_Min(2 if mono else 0)
|
||||
out += f"B{int(mono)}\n".encode()
|
||||
state.forced_mono = mono
|
||||
state.forced_mono = bool(int(cmd.decode().removeprefix("B").strip(), 2))
|
||||
tef.FM_Set_Stereo_Min(2 if state.forced_mono else 0)
|
||||
out += f"B{int(state.forced_mono)}\n".encode()
|
||||
elif cmd.startswith(b"D"):
|
||||
state.deemp = int(cmd.decode().removeprefix("D").strip())
|
||||
dtime = 500 if state.deemp == 0 else (750 if state.deemp == 1 else 0)
|
||||
tef.FM_Set_Deemphasis(dtime)
|
||||
out += f"D{state.deemp}\n".encode()
|
||||
elif cmd.startswith(b"x"):
|
||||
out += b"OK\n"
|
||||
tef.APPL_Set_OperationMode(False) # Enable
|
||||
tef.FM_Tune_To(TEF6686.TuneTo_Mode.Preset, state.last_tune)
|
||||
elif cmd.startswith(b"X"): tef.APPL_Set_OperationMode(True) # turn off
|
||||
@@ -122,10 +117,10 @@ def process_command(tef: TEF6686, data: bytes, state: State, conn: socket.socket
|
||||
auto = (state.bw == 0)
|
||||
tef.FM_Set_Bandwidth(auto, 2360 if auto else (state.bw // 100))
|
||||
out += f"W{state.bw}\n".encode()
|
||||
elif cmd.startswith(b"?"): out += b".XRD Python driver\n"
|
||||
elif cmd.startswith(b"?"): out += b">XRD Python driver\n"
|
||||
elif cmd.startswith(b"S"):
|
||||
cmd = cmd[1:]
|
||||
if cmd != b"":
|
||||
if cmd.strip():
|
||||
arg = int(cmd.decode()[1:].strip())
|
||||
match cmd[0]:
|
||||
case 97: state.scan_start = (arg + 5) // 10
|
||||
|
||||
Reference in New Issue
Block a user