linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Why size of sockaddr smaller than size of sockaddr_in6?
@ 2003-11-07  2:04 Zheng, Jeff
  2003-11-07  2:23 ` YOSHIFUJI Hideaki / 吉藤英明
  0 siblings, 1 reply; 4+ messages in thread
From: Zheng, Jeff @ 2003-11-07  2:04 UTC (permalink / raw)
  To: linux-kernel


I thought that sockaddr should hold sockaddr_in sockaddr_in6 and any other socket address (or at least sockaddr_in6). 
Current definition:
struct sockaddr
  {
    __SOCKADDR_COMMON (sa_);    /* Common data: address family and length.  */
    char sa_data[14];           /* Address data.  */
  };

Can be:
struct sockaddr
  {
    __SOCKADDR_COMMON (sa_);    /* Common data: address family and length.  */
    char sa_data[28];           /* Address data.  */
  };

Is there any reason not to hold sockaddr_in6 in sockaddr?

Please CC the answers/comments posted to the list in response to my posting to me. 


> Thanks
> Jeff                        Jeff.Zheng@intel.com
> BTW, I speak for myself, not for Intel Corp.
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Why size of sockaddr smaller than size of sockaddr_in6?
  2003-11-07  2:04 Why size of sockaddr smaller than size of sockaddr_in6? Zheng, Jeff
@ 2003-11-07  2:23 ` YOSHIFUJI Hideaki / 吉藤英明
  0 siblings, 0 replies; 4+ messages in thread
From: YOSHIFUJI Hideaki / 吉藤英明 @ 2003-11-07  2:23 UTC (permalink / raw)
  To: jeff.zheng; +Cc: linux-kernel

Hello.

In article <37FBBA5F3A361C41AB7CE44558C3448E07EC27@pdsmsx403.ccr.corp.intel.com> (at Fri, 7 Nov 2003 10:04:05 +0800), "Zheng, Jeff" <jeff.zheng@intel.com> says:

> I thought that sockaddr should hold sockaddr_in sockaddr_in6 and any other socket address (or at least sockaddr_in6). 

No, we do not change sockaddr{}.
use sockaddr_storage{} for that purpose.
Please read RFC 3493.

-- 
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@linux-ipv6.org>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Why size of sockaddr smaller than size of sockaddr_in6?
  2003-11-07  3:00 Zheng, Jeff
@ 2003-11-07  3:52 ` YOSHIFUJI Hideaki / 吉藤英明
  0 siblings, 0 replies; 4+ messages in thread
From: YOSHIFUJI Hideaki / 吉藤英明 @ 2003-11-07  3:52 UTC (permalink / raw)
  To: jeff.zheng; +Cc: linux-kernel

In article <37FBBA5F3A361C41AB7CE44558C3448E011959C7@pdsmsx403.ccr.corp.intel.com> (at Fri, 7 Nov 2003 11:00:55 +0800), "Zheng, Jeff" <jeff.zheng@intel.com> says:

> Is sockaddr_storage part of IPv6? I mean, does sockaddr_storage exist in a system that does not have IPv6? In such system if I use sockaddr_in6, the compile will be failed because there is no sockaddr_in6 structure. 

AFAIK, sockaddr_storage{} was introduced because sockaddr_in6{} 
is too large for sockaddr{}.  However, the use of sockaddr_storage{} 
is not limited to IPv6. Systems which does not support IPv6 may have 
sockaddr_storage{}.

BTW, there're little chances for users to use sockaddr_in{} or sockaddr_in6{}.
Modern and "good" applications never use them.

Use getaddrinfo(3) / getnameinfo(3) (which uses addrinfo{} and sockaddr{}).

If you need a structure to hold socket address, 
you may use sockaddr_storage{}; i.e. for getsockname(2) / getpeername(2).

If you are UNABLE to avoid touching socket address structure, use it finally;
This is very rare.


Well, this is kernel developmen list. Please change the list.
Thanks.

-- 
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@linux-ipv6.org>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Why size of sockaddr smaller than size of sockaddr_in6?
@ 2003-11-07  3:00 Zheng, Jeff
  2003-11-07  3:52 ` YOSHIFUJI Hideaki / 吉藤英明
  0 siblings, 1 reply; 4+ messages in thread
From: Zheng, Jeff @ 2003-11-07  3:00 UTC (permalink / raw)
  To: YOSHIFUJI Hideaki / ????; +Cc: linux-kernel

Hello Hideaki YOSHIFUJI,

Thanks for your reply. 

Is sockaddr_storage part of IPv6? I mean, does sockaddr_storage exist in a system that does not have IPv6? In such system if I use sockaddr_in6, the compile will be failed because there is no sockaddr_in6 structure. 

> Thanks
> Jeff                        Jeff.Zheng@intel.com
> BTW, I speak for myself, not for Intel Corp.


-----Original Message-----
From: Hideaki YOSHIFUJI [mailto:yoshfuji@cerberus.hongo.wide.ad.jp]On Behalf Of yoshfuji@linux-ipv6.org
Sent: Friday, November 07, 2003 10:24 AM
To: Zheng, Jeff
Cc: linux-kernel@vger.kernel.org
Subject: Re: Why size of sockaddr smaller than size of sockaddr_in6?


Hello.

In article <37FBBA5F3A361C41AB7CE44558C3448E07EC27@pdsmsx403.ccr.corp.intel.com> (at Fri, 7 Nov 2003 10:04:05 +0800), "Zheng, Jeff" <jeff.zheng@intel.com> says:

> I thought that sockaddr should hold sockaddr_in sockaddr_in6 and any other socket address (or at least sockaddr_in6). 

No, we do not change sockaddr{}.
use sockaddr_storage{} for that purpose.
Please read RFC 3493.

-- 
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@linux-ipv6.org>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-11-07  3:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-07  2:04 Why size of sockaddr smaller than size of sockaddr_in6? Zheng, Jeff
2003-11-07  2:23 ` YOSHIFUJI Hideaki / 吉藤英明
2003-11-07  3:00 Zheng, Jeff
2003-11-07  3:52 ` YOSHIFUJI Hideaki / 吉藤英明

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).