Attempt to fix the password prompt #2
This commit is contained in:
92
startup.lua
92
startup.lua
@ -263,44 +263,72 @@ local function MonitorRemoteIris()
|
||||
utils.log("ALERT: Remote iris moving: " .. remoteIrisState .. "%")
|
||||
end
|
||||
|
||||
-- If remote has computer and iris just became fully closed, wait for password request
|
||||
-- If remote has computer and iris just became fully closed, check for password request
|
||||
if state.remoteHasComputer and remoteIrisState == 100 and (not lastIrisState or lastIrisState < 100) then
|
||||
utils.log("Remote iris closed and computer detected - waiting for password request")
|
||||
utils.log("Remote iris closed and computer detected - checking for password request")
|
||||
|
||||
-- Wait briefly for password request message
|
||||
local function WaitForPasswordRequest()
|
||||
sleep(2) -- Wait up to 2 seconds for password request
|
||||
return nil
|
||||
end
|
||||
-- Check if password was already requested during initial connection
|
||||
if state.remotePasswordRequired then
|
||||
utils.log("Password already requested - showing password prompt")
|
||||
|
||||
local result = parallel.waitForAny(GetMessage, WaitForPasswordRequest)
|
||||
if result == 1 then
|
||||
local message = state.lastReceivedMessage
|
||||
state.lastReceivedMessage = nil
|
||||
local password = HandlePasswordEntry()
|
||||
|
||||
-- Only show password panel if explicitly requested
|
||||
if message == "IRIS_PASSWORD_REQUIRED" then
|
||||
utils.log("Password requested by remote gate - showing password prompt")
|
||||
-- Wait for response
|
||||
local function WaitForResponse()
|
||||
sleep(3) -- Wait up to 3 seconds for response
|
||||
return nil
|
||||
end
|
||||
|
||||
local password = HandlePasswordEntry()
|
||||
|
||||
-- Wait for response
|
||||
local function WaitForResponse()
|
||||
sleep(3) -- Wait up to 3 seconds for response
|
||||
return nil
|
||||
local result = parallel.waitForAny(GetMessage, WaitForResponse)
|
||||
if result == 1 then
|
||||
local response = state.lastReceivedMessage
|
||||
state.lastReceivedMessage = nil
|
||||
if response == "IRIS_OPEN" then
|
||||
display.showPasswordResult(true)
|
||||
utils.log("Password accepted - iris opened")
|
||||
-- Continue monitoring, iris state will update
|
||||
elseif response == "IRIS_DENIED" then
|
||||
display.showPasswordResult(false)
|
||||
utils.log("Password rejected")
|
||||
end
|
||||
end
|
||||
else
|
||||
-- Wait briefly for password request message if not already received
|
||||
utils.log("Waiting for password request message")
|
||||
local function WaitForPasswordRequest()
|
||||
sleep(2) -- Wait up to 2 seconds for password request
|
||||
return nil
|
||||
end
|
||||
|
||||
result = parallel.waitForAny(GetMessage, WaitForResponse)
|
||||
if result == 1 then
|
||||
local response = state.lastReceivedMessage
|
||||
state.lastReceivedMessage = nil
|
||||
if response == "IRIS_OPEN" then
|
||||
display.showPasswordResult(true)
|
||||
utils.log("Password accepted - iris opened")
|
||||
-- Continue monitoring, iris state will update
|
||||
elseif response == "IRIS_DENIED" then
|
||||
display.showPasswordResult(false)
|
||||
utils.log("Password rejected")
|
||||
local result = parallel.waitForAny(GetMessage, WaitForPasswordRequest)
|
||||
if result == 1 then
|
||||
local message = state.lastReceivedMessage
|
||||
state.lastReceivedMessage = nil
|
||||
|
||||
-- Only show password panel if explicitly requested
|
||||
if message == "IRIS_PASSWORD_REQUIRED" then
|
||||
utils.log("Password requested by remote gate - showing password prompt")
|
||||
|
||||
local password = HandlePasswordEntry()
|
||||
|
||||
-- Wait for response
|
||||
local function WaitForResponse()
|
||||
sleep(3) -- Wait up to 3 seconds for response
|
||||
return nil
|
||||
end
|
||||
|
||||
result = parallel.waitForAny(GetMessage, WaitForResponse)
|
||||
if result == 1 then
|
||||
local response = state.lastReceivedMessage
|
||||
state.lastReceivedMessage = nil
|
||||
if response == "IRIS_OPEN" then
|
||||
display.showPasswordResult(true)
|
||||
utils.log("Password accepted - iris opened")
|
||||
-- Continue monitoring, iris state will update
|
||||
elseif response == "IRIS_DENIED" then
|
||||
display.showPasswordResult(false)
|
||||
utils.log("Password rejected")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -707,7 +735,7 @@ local function handleOutgoingDial()
|
||||
end
|
||||
|
||||
print("DEBUG: Message collection complete. remoteHasComputer=" ..
|
||||
tostring(state.remoteHasComputer) .. ", remotePasswordRequired=" .. tostring(state.remotePasswordRequired))
|
||||
tostring(state.remoteHasComputer) .. ", remotePasswordRequired=" .. tostring(state.remotePasswordRequired))
|
||||
|
||||
-- Check if remote iris is closed using transceiver
|
||||
local remoteIrisState = nil
|
||||
|
||||
Reference in New Issue
Block a user