All of lore.kernel.org
 help / color / mirror / Atom feed
* what's the purpose of MAXHOSTNAMELEN?
@ 2009-12-29 19:19 Robert P. J. Day
  2009-12-29 19:28 ` Samuel Thibault
  2009-12-29 19:40 ` Jeff Garzik
  0 siblings, 2 replies; 8+ messages in thread
From: Robert P. J. Day @ 2009-12-29 19:19 UTC (permalink / raw)
  To: Linux Kernel Mailing List


  in prepping for coalescing a lot of param.h files, i'm curious about
the purpose of this macro:

$ grep -rw MAXHOSTNAMELEN *
arch/s390/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/sparc/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/alpha/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/mn10300/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/arm/include/asm/param.h:#define MAXHOSTNAMELEN  64
arch/m32r/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/mips/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/m68k/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/xtensa/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/ia64/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/h8300/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/avr32/include/asm/param.h:#define MAXHOSTNAMELEN	64
arch/cris/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/um/include/asm/param.h:#define MAXHOSTNAMELEN  64      /* max length of hostname */
arch/powerpc/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/parisc/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
arch/frv/include/asm/param.h:#define MAXHOSTNAMELEN		64	/* max length of hostname */
include/asm-generic/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
include/net/sctp/structs.h:#include <asm/param.h>		/* We get MAXHOSTNAMELEN.     */
$

  so lots of people define it but no one uses it.  it *is* exported to
user space in /usr/include/asm/param.h, but i still have no idea what
it's for in user space.  obsolete?

rday
--

========================================================================
Robert P. J. Day                               Waterloo, Ontario, CANADA

            Linux Consulting, Training and Kernel Pedantry.

Web page:                                          http://crashcourse.ca
Twitter:                                       http://twitter.com/rpjday
========================================================================

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

* Re: what's the purpose of MAXHOSTNAMELEN?
  2009-12-29 19:19 what's the purpose of MAXHOSTNAMELEN? Robert P. J. Day
@ 2009-12-29 19:28 ` Samuel Thibault
  2009-12-29 19:40 ` Jeff Garzik
  1 sibling, 0 replies; 8+ messages in thread
From: Samuel Thibault @ 2009-12-29 19:28 UTC (permalink / raw)
  To: Robert P. J. Day; +Cc: Linux Kernel Mailing List

Robert P. J. Day, le Tue 29 Dec 2009 14:19:30 -0500, a écrit :
>   so lots of people define it but no one uses it.  it *is* exported to
> user space in /usr/include/asm/param.h, but i still have no idea what
> it's for in user space.  obsolete?

It's like all these *MAX* #defines: they are a bad way to express the
system limitations.  They are bad because they end up compiled-in, but
also because people understand them as "a typical allocation length" and
get lazy.  The typical example is PATH_MAX, which is #defined to 4096.
A _lot_ of applications thus keep allocating 4KB for all paths.

See
http://www.gnu.org/software/hurd/hurd/porting/guidelines.html#PATH_MAX_tt_MAX_PATH_tt_MAXPATHL

If you could drop it (would be completely POSIX-compliant), that'd be a
great service to GNU/Hurd porters, but I bet you'll also get a lot of
angry people.

Samuel

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

* Re: what's the purpose of MAXHOSTNAMELEN?
  2009-12-29 19:19 what's the purpose of MAXHOSTNAMELEN? Robert P. J. Day
  2009-12-29 19:28 ` Samuel Thibault
@ 2009-12-29 19:40 ` Jeff Garzik
  2009-12-29 19:56   ` Samuel Thibault
  2009-12-29 20:13   ` Robert P. J. Day
  1 sibling, 2 replies; 8+ messages in thread
From: Jeff Garzik @ 2009-12-29 19:40 UTC (permalink / raw)
  To: Robert P. J. Day; +Cc: Linux Kernel Mailing List

On 12/29/2009 02:19 PM, Robert P. J. Day wrote:
>
>    in prepping for coalescing a lot of param.h files, i'm curious about
> the purpose of this macro:
>
> $ grep -rw MAXHOSTNAMELEN *
> arch/s390/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/sparc/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/alpha/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/mn10300/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/arm/include/asm/param.h:#define MAXHOSTNAMELEN  64
> arch/m32r/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/mips/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/m68k/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/xtensa/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/ia64/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/h8300/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/avr32/include/asm/param.h:#define MAXHOSTNAMELEN	64
> arch/cris/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/um/include/asm/param.h:#define MAXHOSTNAMELEN  64      /* max length of hostname */
> arch/powerpc/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/parisc/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> arch/frv/include/asm/param.h:#define MAXHOSTNAMELEN		64	/* max length of hostname */
> include/asm-generic/param.h:#define MAXHOSTNAMELEN	64	/* max length of hostname */
> include/net/sctp/structs.h:#include<asm/param.h>		/* We get MAXHOSTNAMELEN.     */
> $
>
>    so lots of people define it but no one uses it.  it *is* exported to
> user space in /usr/include/asm/param.h, but i still have no idea what
> it's for in user space.  obsolete?

According to RFC 1034, "Each node has a label, which is zero to 63 
octets in length"

What is it used for in userspace, and why is it export from the kernel? 
  Good question...

	Jeff




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

* Re: what's the purpose of MAXHOSTNAMELEN?
  2009-12-29 19:40 ` Jeff Garzik
@ 2009-12-29 19:56   ` Samuel Thibault
  2009-12-29 20:20     ` Jeff Garzik
  2009-12-29 20:13   ` Robert P. J. Day
  1 sibling, 1 reply; 8+ messages in thread
From: Samuel Thibault @ 2009-12-29 19:56 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Robert P. J. Day, Linux Kernel Mailing List

Jeff Garzik, le Tue 29 Dec 2009 14:40:05 -0500, a écrit :
> On 12/29/2009 02:19 PM, Robert P. J. Day wrote:
> >arch/s390/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max 
> >length of hostname */
> >
> >   so lots of people define it but no one uses it.  it *is* exported to
> >user space in /usr/include/asm/param.h, but i still have no idea what
> >it's for in user space.  obsolete?
> 
> According to RFC 1034, "Each node has a label, which is zero to 63 
> octets in length"

That's for Internet networks.  Other kinds of networks could implement
more.  It could make sense to restrict ourself to Internet standards,
but we don't :)

> What is it used for in userspace, and why is it export from the kernel? 

Gethostname, typically, but also all kinds of functions that provide a
hostname.  It's also quite often completely badly used, for instance for
getnameinfo()...

You have Debian's list on
http://unstable.buildd.net/buildd/hurd-i386_Failed.html

Samuel

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

* Re: what's the purpose of MAXHOSTNAMELEN?
  2009-12-29 19:40 ` Jeff Garzik
  2009-12-29 19:56   ` Samuel Thibault
@ 2009-12-29 20:13   ` Robert P. J. Day
  1 sibling, 0 replies; 8+ messages in thread
From: Robert P. J. Day @ 2009-12-29 20:13 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Linux Kernel Mailing List

On Tue, 29 Dec 2009, Jeff Garzik wrote:
... snip ..

> >    so lots of people define it but no one uses it.  it *is*
> > exported to user space in /usr/include/asm/param.h, but i still
> > have no idea what it's for in user space.  obsolete?
>
> According to RFC 1034, "Each node has a label, which is zero to 63
> octets in length"
>
> What is it used for in userspace, and why is it export from the
> kernel?  Good question...

  it's not clear what value that macro has in user space since (as
i've always understood it) the point of exporting a macro like that to
user space is so that user space apps can *agree* with kernel code
that employs the same macro.

  but if absolutely *nothing* in the kernel uses that macro, then
there's nothing for user space to "agree" with.  in other words, that
macro cannot *possibly* have any meaningful value in user space. does
that make sense?

  my reaction at this point is to simply remove that macro definition
from include/asm-generic/param.h.  anything in user space that's using
that macro is simply using a macro with a completely arbitrary value.

rday
--

========================================================================
Robert P. J. Day                               Waterloo, Ontario, CANADA

            Linux Consulting, Training and Kernel Pedantry.

Web page:                                          http://crashcourse.ca
Twitter:                                       http://twitter.com/rpjday
========================================================================

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

* Re: what's the purpose of MAXHOSTNAMELEN?
  2009-12-29 19:56   ` Samuel Thibault
@ 2009-12-29 20:20     ` Jeff Garzik
  2009-12-29 20:26       ` Samuel Thibault
  2009-12-29 21:00       ` Vikram Dhillon
  0 siblings, 2 replies; 8+ messages in thread
From: Jeff Garzik @ 2009-12-29 20:20 UTC (permalink / raw)
  To: Samuel Thibault, Robert P. J. Day, Linux Kernel Mailing List

On 12/29/2009 02:56 PM, Samuel Thibault wrote:
> Jeff Garzik, le Tue 29 Dec 2009 14:40:05 -0500, a écrit :
>> On 12/29/2009 02:19 PM, Robert P. J. Day wrote:
>>> arch/s390/include/asm/param.h:#define MAXHOSTNAMELEN	64	/* max
>>> length of hostname */
>>>
>>>    so lots of people define it but no one uses it.  it *is* exported to
>>> user space in /usr/include/asm/param.h, but i still have no idea what
>>> it's for in user space.  obsolete?
>>
>> According to RFC 1034, "Each node has a label, which is zero to 63
>> octets in length"
>
> That's for Internet networks.  Other kinds of networks could implement
> more.  It could make sense to restrict ourself to Internet standards,
> but we don't :)

Er huh?  That was a description of the origin of the limit.

And as a point of fact, we do restrict ourself to that:

	#define __NEW_UTS_LEN 64

	struct new_utsname {
	        char sysname[__NEW_UTS_LEN + 1];
	        char nodename[__NEW_UTS_LEN + 1];



>> What is it used for in userspace, and why is it export from the kernel?
>
> Gethostname, typically, but also all kinds of functions that provide a
> hostname.  It's also quite often completely badly used, for instance for
> getnameinfo()...
>
> You have Debian's list on
> http://unstable.buildd.net/buildd/hurd-i386_Failed.html

No one cares about Hurd.

	Jeff





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

* Re: what's the purpose of MAXHOSTNAMELEN?
  2009-12-29 20:20     ` Jeff Garzik
@ 2009-12-29 20:26       ` Samuel Thibault
  2009-12-29 21:00       ` Vikram Dhillon
  1 sibling, 0 replies; 8+ messages in thread
From: Samuel Thibault @ 2009-12-29 20:26 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Robert P. J. Day, Linux Kernel Mailing List

Jeff Garzik, le Tue 29 Dec 2009 15:20:56 -0500, a écrit :
> >>What is it used for in userspace, and why is it export from the kernel?
> >
> >Gethostname, typically, but also all kinds of functions that provide a
> >hostname.  It's also quite often completely badly used, for instance for
> >getnameinfo()...
> >
> >You have Debian's list on
> >http://unstable.buildd.net/buildd/hurd-i386_Failed.html
> 
> No one cares about Hurd.

That wasn't at all the point of my inclusion of the URL, see above.  If
you drop it, you'll get all kinds of build failures.  I just happened to
use the Debian Hurd build failures as a quick way to get a list.

Samuel

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

* Re: what's the purpose of MAXHOSTNAMELEN?
  2009-12-29 20:20     ` Jeff Garzik
  2009-12-29 20:26       ` Samuel Thibault
@ 2009-12-29 21:00       ` Vikram Dhillon
  1 sibling, 0 replies; 8+ messages in thread
From: Vikram Dhillon @ 2009-12-29 21:00 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Samuel Thibault, Robert P. J. Day, Linux Kernel Mailing List

I care about Hurd :D, but yah as it is mentioned before, would it
sometime in future be possible to remove this from the kernel ?

Regards,
Vikram Dhillon

~~~
There are lots of Linux users who don't care how the kernel works, but
only want to use it. That is a tribute to how good Linux is.
-- Linus Torvalds



On Tue, Dec 29, 2009 at 3:20 PM, Jeff Garzik <jeff@garzik.org> wrote:
> On 12/29/2009 02:56 PM, Samuel Thibault wrote:
>>
>> Jeff Garzik, le Tue 29 Dec 2009 14:40:05 -0500, a écrit :
>>>
>>> On 12/29/2009 02:19 PM, Robert P. J. Day wrote:
>>>>
>>>> arch/s390/include/asm/param.h:#define MAXHOSTNAMELEN    64      /* max
>>>> length of hostname */
>>>>
>>>>   so lots of people define it but no one uses it.  it *is* exported to
>>>> user space in /usr/include/asm/param.h, but i still have no idea what
>>>> it's for in user space.  obsolete?
>>>
>>> According to RFC 1034, "Each node has a label, which is zero to 63
>>> octets in length"
>>
>> That's for Internet networks.  Other kinds of networks could implement
>> more.  It could make sense to restrict ourself to Internet standards,
>> but we don't :)
>
> Er huh?  That was a description of the origin of the limit.
>
> And as a point of fact, we do restrict ourself to that:
>
>        #define __NEW_UTS_LEN 64
>
>        struct new_utsname {
>                char sysname[__NEW_UTS_LEN + 1];
>                char nodename[__NEW_UTS_LEN + 1];
>
>
>
>>> What is it used for in userspace, and why is it export from the kernel?
>>
>> Gethostname, typically, but also all kinds of functions that provide a
>> hostname.  It's also quite often completely badly used, for instance for
>> getnameinfo()...
>>
>> You have Debian's list on
>> http://unstable.buildd.net/buildd/hurd-i386_Failed.html
>
> No one cares about Hurd.
>
>        Jeff
>
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

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

end of thread, other threads:[~2009-12-29 21:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-29 19:19 what's the purpose of MAXHOSTNAMELEN? Robert P. J. Day
2009-12-29 19:28 ` Samuel Thibault
2009-12-29 19:40 ` Jeff Garzik
2009-12-29 19:56   ` Samuel Thibault
2009-12-29 20:20     ` Jeff Garzik
2009-12-29 20:26       ` Samuel Thibault
2009-12-29 21:00       ` Vikram Dhillon
2009-12-29 20:13   ` Robert P. J. Day

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.