bss_dgram changes and Re: run-checker NO DGRAM and test cases

Michael Richardson mcr at sandelman.ca
Tue Mar 22 14:55:47 UTC 2022


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 at sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 658 bytes
Desc: not available
URL: <https://mta.openssl.org/pipermail/openssl-users/attachments/20220322/8e7c402e/attachment.sig>


More information about the openssl-users mailing list