Re: ? ????? ??: vnc can't connect to socket

From: Michael Tuexen <tuexen_at_freebsd.org>
Date: Sun, 21 Jun 2020 23:37:19 +0200
> On 21. Jun 2020, at 23:12, Rodney W. Grimes <freebsd-rwg_at_gndrsh.dnsmgr.net> wrote:
> 
>>> On Sun, 2020-06-21 at 14:54 +0200, Michael Tuexen wrote:
>>>>> On 21. Jun 2020, at 14:28, Kostya Berger <bergerkos_at_yahoo.co.uk>
>>>>> wrote:
>>>>> 
>>>>> Ok, it turns out, it gives the previously mentioned error only if I
>>>>> use VNC server string 0.0.0.0:5900 (as I always did). in my VNC
>>>>> client.But when replaced with127.0.0.1:5900it connects all right.
>>>> 
>>>> I don't hink 0.0.0.0 is a valid destination address you can use in
>>>> connect(). Using 127.0.0.1 should
>>>> be fine.
>> 
>> I do not believe that this is a destination address when your talking
>> about 0.0.0.0:5900 on the VNC server side, that is a wild card accept
>> any address and if this has been broken.. it must be fixed!
>> 
>>>> I guess, https://svnweb.freebsd.org/changeset/base/361752 is the
>>>> relevant commit here.
>>>> 
>>> 
>>> *BSD has always accepted 0 as a synonym for localhost (and iirc, linux
>>> does not).  If this no longer works, it's a regression which is going
>>> to cause existing applications and scripts to fail.  At the very least
>>> it deserves an entry in UPDATING.
>> 
>> I am not aware of that, but can not deny it either, and just confirmed
>> it to be true:
>> root {1002}# telnet 0.0.0.0 22
>> Trying 0.0.0.0...
>> Connected to 0.0.0.0.
>> Escape character is '^]'.
>> SSH-2.0-OpenSSH_7.8 FreeBSD-20180909
> 
> And to add the netstat data to show what connected:
> tcp4       0      0 127.0.0.1.22           127.0.0.1.43135        ESTABLISHED
> tcp4      38      0 127.0.0.1.43135        127.0.0.1.22           ESTABLISHED
> 
> Can we back this commit out, discuss it in next weeks call,
> and then find a way forward?
The commit changes the behaviour of calling connect(..., addr, ...) on a TCP/IPv4 socket by

(a) failing it and indicating EAFNOSUPPORT if addr == 255.255.255.255
(b) failing it and indicating EAFNOSUPPORT if addr == 0.0.0.0

I think it is correct in doing (a). There is no doubt about that, since TCP only
supports unicast.

(b) can be changed. As we discussed, for IPv6 connecting to ::0 is changed to ::1 in
https://svnweb.freebsd.org/base/head/sys/netinet6/in6_pcb.c?view=markup#l370.
However, in_pcbladdr() does not do that mapping. 

Let me figure out why 0.0.0.0 works as an address you can connect to. Then I can
prepare a patch to allow 0.0.0.0 again. I don't see a reason why we need to revert
r361752 and introduce it partially again. OK?

Best regards
Michael
> 
>> 
>> INADDR_ANY is the wildcard listen address, but as a destination what code remapped
>> it to 127.0.0.1?
>> 
>> We should very seriously consider restoring this behavior.
>> 
>>> -- Ian
>>> 
>>>> Best regards
>>>> Michael
>>>>> ?????????? ?? Yahoo ????? ??? Android 
>>>>> 
>>>>> ??, 21 ???. 2020 ? 9:40 Kostya Berger<bergerkos_at_yahoo.co.uk>
>>>>> ???????(-?):   Hi,upgraded to 362292 via buildworld.Now I cannot
>>>>> connect to my bhyve guest as I used to: neither via VNC nor via
>>>>> RDP.VNC gets error: unable to connect the socket. Address family
>>>>> not supported by protocol family (47).
>>>>> Neither can I ping my bhyve IP (it uses a separate NIC and should
>>>>> have no problems)
>>>>> Internet connectivity is ok and I can ping other hosts on my
>>>>> network.
>>>>> In 359997 all works fine.
>>>>> ?????????? ?? Yahoo ????? ??? Android  
>>>>> _______________________________________________
>>>>> freebsd-current_at_freebsd.org mailing list
>>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>>>> To unsubscribe, send any mail to "
>>>>> freebsd-current-unsubscribe_at_freebsd.org"
>>>> 
>>>> _______________________________________________
>>>> freebsd-current_at_freebsd.org mailing list
>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>>> To unsubscribe, send any mail to "
>>>> freebsd-current-unsubscribe_at_freebsd.org"
>>>> 
>>> 
>>> _______________________________________________
>>> freebsd-current_at_freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>>> 
>>> 
>> 
>> -- 
>> Rod Grimes                                                 rgrimes_at_freebsd.org
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>> 
> 
> -- 
> Rod Grimes                                                 rgrimes_at_freebsd.org
Received on Sun Jun 21 2020 - 19:37:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:24 UTC