Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Mar 2004 14:05:23 +0100
From:      Lukasz Stelmach <Lukasz.Stelmach@telmark.waw.pl>
To:        Hajimu UMEMOTO <ume@FreeBSD.org>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: sockaddr_(in|in6) compatiblity
Message-ID:  <20040318130523.GA20949@tygrys.k.telmark.waw.pl>
In-Reply-To: <ygen06pkgbh.wl%ume@FreeBSD.org>
References:  <20040309182857.GA818@tygrys.k.telmark.waw.pl> <ygen06pkgbh.wl%ume@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--8t9RHnE3ZwKMSgU+
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

 Byla godzina 03:48:02 w Wednesday 10 March, gdy do autobusu wsiadl kanar
 i wrzasnal:"Hajimu UMEMOTO!!! Bilecik do kontroli!!!" A on(a) na to:

LS>> 1. I open socket AF_INET6/SOCK_DGRAM... OK
LS>> 2. bind it to ::ffff:127.0.0.1/53...    OK
HU> Why do you use IPv4-mapped IPv6 address for binding IPv4?  When you
HU> wish to bind to IPv4, just use AF_INET socket.

It is not me in fact who ueses it. I try to setup djbdns with IPv6
support.

HU>  This feature is disabled by default on 5-CURRENT.

Can you tell me (or give some article to read) why? I am curious
because i think this is quite good for a programmer to use one
type of socket and the same set of structures for both protocols,
especially now when IPv6 just starts its go.

LS>> 3. recvfrom() data from the socket...   OK
LS>> 4. *from (the 5th parameter to recvfrom) gets filled in like it was
LS>>  a sockaddr_in (ipv4) structure
[...]

HU> Use getnameinfo(3).  You shouldn't need to use inet_ntop(3).  Welcome
HU> to an address family independent programming with getaddrinfo(3) and
HU> getnameinfo(3).

In fact it is not the matter of inet_ntop(3) but the way the djbdns patch
seems to work. get*info(3) won't do the thing since to get the address from
sockaddr structure (after recvfrom) i still need to check the family
field and do proper cast.

IMHO it would be much more logical that if I open AF_INET6 socket
(even v4 mapped) i *always* get sockaddr_in6 structure and need not to
cast it to sockaddr_in.

Best regards,
--=20
|/       |_,  _   .-  --,  Ju=BF z ka=BFdej strony pe=B3zn=B1, potworne =BF=
=B1dze
|__ |_|. | \ |_|. ._' /_.         B=EAd=EA uprawia=B3 nierz=B1d, za pieni=
=B1ze

--8t9RHnE3ZwKMSgU+
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAWZ6TNdzY8sm9K9wRAv3eAJwLEEfnsUTG09RV0+qhaqXoAmiLdQCffB+a
ee5cna/DXhiv5FF9f2v/XcI=
=Y8vJ
-----END PGP SIGNATURE-----

--8t9RHnE3ZwKMSgU+--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040318130523.GA20949>