quinn-rs / quinn

Async-friendly QUIC implementation in Rust
Apache License 2.0
3.52k stars 356 forks source link

Support openbsd #1863

Closed flub closed 1 week ago

flub commented 2 weeks ago

This makes Quinn compile on openbsd and the test suite passes as well.

As far as I understand ECN is not supported as part of a control message on recvmsg. So I disabled the ECN tests for it.

flub commented 2 weeks ago

OpenBSD does seem to define IPV6_RECVTCLASS: https://github.com/openbsd/src/blob/35659bf2453d7eeb12fd24089cf668ca13361c18/sys/netinet6/in6.h#L330C9-L330C24

Indeed, and the socket option is being set as well still. Let me try again if I can get ENC to work for just IPv6.

flub commented 2 weeks ago

Thanks for working on this!

As far as I understand ECN is not supported as part of a control message on recvmsg. So I disabled the ECN tests for it.

OpenBSD does seem to define IPV6_RECVTCLASS: https://github.com/openbsd/src/blob/35659bf2453d7eeb12fd24089cf668ca13361c18/sys/netinet6/in6.h#L330C9-L330C24

Ok, ECN now works and is tested on IPv6 but not IPv4. I've had to split some tests for that. I left the existing ecn_ipv6 test unmodified in the end but renamed it rather than fully splitting it in two. It still makes sense on it's own.

flub commented 2 weeks ago

This will close #1469 I believe.

flub commented 1 week ago

It is not clear to me if the failing test is flaky or due to something I did, any hints?

flub commented 1 week ago

@Ralith thanks for the prodding, definitely better than the first version!