Re: host name length

From: Randy.Dunlap
Date: Fri Dec 03 2004 - 19:27:15 EST


On Fri, 12 Mar 2004 12:16:38 -0800 Ulrich Drepper wrote:

| POSIX nowadays contains
|
| _POSIX_HOST_NAME_MAX
| and
| HOST_NAME_MAX
|
| for programs to use to learn about the maximum host name length which is
| allowed. _POSIX_HOST_NAME_MAX is the standard-required minimum maximum
| and the value must be 256.
|
| The problem is that HOST_NAME_MAX currently is defined as 64, as defined
| by __NET_UTS_LEN in <linux/utsname.h>. I.e., we have HOST_NAME_MAX as
| smaller than the minimum maximum which is obviously not POSIX compliant.
|
| Now, we can simply ignore the problem or do something about it and
| introduce a third version of the utsname structure with sufficiently big
| nodename field.
|
| Many OSes used small values before but 256 was chosen as a minimum
| maximum and some OSes were changed since host names longer than 64 chars
| indeed do exist. I wonder why this never has been brought to the
| attention. Or were people happy enough with truncated host names?
|
|
| Anyway, is there interest in getting this changed?

Yes (if not all forgotten).
I was waiting for 2.7, but that seems to be the wrong thing to do.


Can you show/tell me where _POSIX_HOST_NAME_MAX is specified to be
at least 256? All that I have found so far is SuSv3
[ http://www.unix.org/single_unix_specification/ ], which says for
sys/utsname.h - system name structure:

char sysname[] Name of this implementation of the operating system.
char nodename[] Name of this node within the communications
network to which this node is attached, if any.
char release[] Current release level of this implementation.
char version[] Current version level of this release.
char machine[] Name of the hardware type on which the system is running.

The character arrays are of unspecified size, but the data stored in them
shall be terminated by a null byte.
</quote>


and LSB 2.0.1:
[ http://refspecs.freestandards.org/LSB_2.0.1/LSB-Core/LSB-Core.html ]

Maximum length of a host name (not including the terminating null) as returned
from the gethostname function shall be at least 255 bytes.
</quote>

Is there somewhere else to look?
Anyway, I'm willing to do the kernel work if you want help with it.

---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/