-
Notifications
You must be signed in to change notification settings - Fork 415
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
creation of "connected socket" returns unsupported #395
Comments
cloudflare#395 connected sock needs to be DGRAM Signed-off-by: Tim Froidcoeur <[email protected]>
cloudflare#395 connected sock needs to be DGRAM Signed-off-by: Tim Froidcoeur <[email protected]>
connected sock needs to be DGRAM see cloudflare#395 this has substantial performance impact on linux Signed-off-by: Tim Froidcoeur <[email protected]>
I've recently run into this too and can confirm that this typo (most likely P.S. A workaround for those unable to patch the library themselves would be to set |
Hi, while troubleshooting performance issues regarding the integration of the boringtun library into a project I am working on, I ran into the following like of code:
boringtun/boringtun/src/device/peer.rs
Line 120 in f672bb6
Now, creating a UDP socket of type STREAM (as opposed to DGRAM) is quite likely an error since it doesn't make much sense. This call returns an
IoError(Os { code: 93, kind: Uncategorized, message: "Protocol not supported" }
and the wireguard peer lookup happens on every packet received in the anonymous UDP handler thus reducing throughput to a crawl.The fix is ofc easy enough (i.e. changing the socket type to
DGRAM
), I tried this myself and performance is as expected greatly improved to at least the same order of magnitude as the cloudflare warp app.. but this is what bugs me: beyond the actual problem, it strikes me as quite unlikely this is the code that cloudflare uses in production; I mean, a bug like this suggests perhaps I am not using the correct branch? Comments welcome. Thanks!The text was updated successfully, but these errors were encountered: