> On 22. Apr 2020, at 10:38, Matt Caswell <m...@openssl.org> 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

Reply via email to