* 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: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
* 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
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.