-
-
Notifications
You must be signed in to change notification settings - Fork 119
Feat/fire and forget remote #2792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Feat/fire and forget remote #2792
Conversation
13b792e to
873df66
Compare
|
@postlund how about rebase this branch instead of merge main branch into feature branch? |
Yes, that would be great! I guess "Update" became a merge. |
cb8fd74 to
a4b4acb
Compare
…rors Add an opt-in fire-and-forget path for MRP remote commands while keeping defaults unchanged; allow overriding command timeouts. Treat closed transports during send as ConnectionLostError with an explicit reconnect hint and convert response timeouts to OperationTimeoutError. Cover the new behaviors in mrp protocol/interface tests. # Conflicts: # pyatv/protocols/mrp/protocol.py
Add send_command entry point to RemoteControl interface and relay it via FacadeRemoteControl so consumers can use fire-and-forget/timeout overrides from supporting protocols.
a4b4acb to
ee56bfa
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
|
I like the robustness updates to MRP, but I feel that |
|
Addressed review: removed public send_command exposure from RemoteControl/facade/MRP API; internal _send_command remains for fire-and-forget usage. Updated MRP interface tests accordingly. |
This pull request introduces several reliability and usability improvements to the MRP protocol implementation, focusing on robust connection handling, improved command sending flexibility, and enhanced compatibility with sandboxed network environments. It also adds new tests to ensure correct behavior in these areas.
MRP Protocol Reliability and Command Handling:
sendandsend_rawmethods ofMrpConnection, raisingConnectionLostErrorif the connection is closed or lost during send operations. [1] [2]MrpProtocolto centralize connection state checks with_ensure_send_possible, ensuring proper exceptions are raised for invalid or closed states. Enhancedsendandsend_and_receiveto handle fire-and-forget (no response) operations and propagate connection errors. [1] [2] [3]_send_commandand publicsend_commandinMrpRemoteControlto support fire-and-forget commands and custom timeouts, improving API flexibility. [1] [2] [3]Network Compatibility Improvements:
Testing Enhancements: