I've continued to work on: https://github.com/openssl/openssl/pull/5257 I'm summarizing this here because the pull request is now very convoluted to follow. a) It's rebased to openssl-3.1-dev, although now 30 commits behind head since last week, but should be easy to bring it to the tip. b) I've remove TRAVIS_NO_IPV6, as we don't use Travis-CI anymore. c) there have been comments about whether ip6.h can be included or not, and it seems to me that if there are systems that have posix sockets, but don't have IPv6 support, that they are very non-mainstream, and probably not in CI today. I don't know what #ifdef will be relevant yet. d) I've tried to fix my build.info to avoid testing on no-sock, as I'm told that dgram is off when sock is off, but I am getting failure cases that I don't quite understand. Maybe it's not always true? Works fine on linux-x86_64, but seems to fail for cross compile cases, such as: https://github.com/mcr/openssl/runs/5616934201?check_suite_focus=true This test case explicitely does no-dgram, yet it tries to run my test case which hasn't been built. https://github.com/mcr/openssl/runs/5616935614?check_suite_focus=true "minimal" Appears to also have sock, and I guess !dgram. https://github.com/mcr/openssl/runs/5616934286?check_suite_focus=true all sorts of cross-compiles: mips, m68k, hppa... Proably also sock and !dgram? https://github.com/mcr/openssl/runs/5616934565?check_suite_focus=true Explicit no-sock, but it doesn't appear to have turned off dgram.a e) added man page for BIO_dgram_{set,get}_{origin,dest} I wind up writing another pull request on how to do the documentation. See: https://github.com/openssl/openssl/pull/17926 and that resulted in: https://github.com/openssl/openssl/pull/17933 f) I rewrote the dgram_read_unconnected_v4 to do the #ifdef within the function. It's a mess. I wouldn't want to maintain it like that!!! I agree that there is some duplicate for() loop and stuff, but for IPv4, it's a mess of different options on difference OSes with different structures. When sometime writes the Windows WSARecvMsg() version it will be an even bigger mess. (I don't have the knowledge or tools to test such a thing) https://github.com/openssl/openssl/pull/5257/commits/64d181a331d0fc8d99d4f54744403003afee5c78 The commit is above. I tested this with BSD-generic64 on a NetBSD 9.2 VM, which I happened to have around. I think that I got it right. I couldn't have done it within the #ifdef first thing though. g) I've tried to refactor the bio_write_test and bio_read_test into using some common helpers. I'm using read()/write() for the side which is not being tested to avoid using the code under test in the test. I'm not really happy with the result, and I think that the results are less clearly understood. ==== This pull request is a prequel to another one involves making DTLS more like accept(2) / TLS. My target application is in Ruby-on-Rails, and the ruby-openssl gem is not yet fully 3.x happy. -- ] Never tell me the odds! | ipv6 mesh networks [ ] Michael Richardson, Sandelman Software Works | network architect [ ] mcr@xxxxxxxxxxxx http://www.sandelman.ca/ | ruby on rails [
Attachment:
signature.asc
Description: PGP signature