> On 22. Apr 2020, at 10:38, Matt Caswell <matt@xxxxxxxxxxx> wrote: > > > > On 21/04/2020 23:45, Michael Tuexen wrote: >>> Looks like the failing call is here: >>> >>> if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, >>> (const void *)&on, sizeof(on)) != 0) { >> Can you provide a pointer to the code? > > Yes, its here: > > https://github.com/openssl/openssl/blob/fa555aa8970260c3e198d91709b2d4b3e40f8fa8/crypto/bio/b_sock2.c#L267-L282 OK. Thanks. Could it be that on == 0, when you do the setsockopt() call? Disabling IPV6_V6ONLY seems not to be supported on OpenBSD: >From sys/netinet6/ip6_output.c: case IPV6_V6ONLY: /* * make setsockopt(IPV6_V6ONLY) * available only prior to bind(2). * see ipng mailing list, Jun 22 2001. */ if (inp->inp_lport || !IN6_IS_ADDR_UNSPECIFIED(&inp->inp_laddr6)) { error = EINVAL; break; } /* No support for IPv4-mapped addresses. */ if (!optval) error = EINVAL; else error = 0; break; I don't see a bug in OpenBSD here, or a strange behaviour. OpenBSD just does not support mapped addresses. Best regards Michael > > Matt