Skip to content
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

Make socket errors in socket_egress non-critical. #79

Closed
wants to merge 1 commit into from

Conversation

batonius
Copy link
Contributor

Problem: Right now a socket error in EthernetInterface::socket_egress results in both socket_egress and poll returning early, which prevents socket_egress from processing other sockets and poll from processing ingress packets. For example, if a socket tries to send a packet to an unresolved host, inner.dispatch returns Error::Unaddressable, which shortcuts socket_egress and poll, which prevents ingress sockets from being processed, and host's MAC from being resolved, while the socket exists.

Solution: Make socket errors non-critical, a socket error shouldn't affect other sockets or ingress packet processing.

Other: I'm not sure if this is the best solution, but the problem is real, specifically the situation described above.

@batonius
Copy link
Contributor Author

False alarm, the issue is with ICMP sockets not setting device_result in socket_egress, Error::Unaddressable in device_result is already being ignored. Will add the fix to #78.

Sorry, something went wrong.

@batonius batonius closed this Nov 12, 2017
@batonius batonius deleted the ignored_arps branch November 12, 2017 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant