Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Nov 1995 13:05:45 -0500
From:      "Garrett A. Wollman" <wollman@lcs.mit.edu>
To:        "Garrett A. Wollman" <wollman@lcs.mit.edu>
Cc:        current@freebsd.org
Subject:   Re: cvs commit: src/sys/kern kern_sysctl.c 
Message-ID:  <9511141805.AA23801@halloran-eldar.lcs.mit.edu>
In-Reply-To: <9511141616.AA23508@halloran-eldar.lcs.mit.edu>
References:  <Pine.BSF.3.91.951114041815.243B-100000@jhome.DIALix.COM> <570.816343308@critter.tfs.com> <9511141616.AA23508@halloran-eldar.lcs.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
<<On Tue, 14 Nov 1995 11:16:03 -0500, I said something inconsistent:

>> Well, what if the hostname actually WAS 255 bytes long then ?

> Then you return an error.

I then later quoted:

> FreeBSD 2.2:
>      Gethostname() returns the standard host name for the current processor,
>      as previously set by sethostname().  The parameter namelen specifies the
>      size of the name array.  The returned name is null-terminated unless in-
>      sufficient space is provided.

This quotation is what you should do, rather than returning an error.
This may require that gethostname() do a little more work than it does
now.  For example:

long	/* XXX ??? */
gethostname(char *name, int namelen)
{
	char buf[MAXHOSTNAMELEN];
	int mib[2];
	size_t size;

	mib[0] = CTL_KERN;
	mib[1] = KERN_HOSTNAME;
	size = sizeof buf;
	if (sysctl(mib, 2, name, &size, (void *)0, (size_t)0) < 0)
		return -1;

	strncpy(name, buf, namelen < (sizeof buf) ? namelen : sizeof buf);
	return 0;
}

-GAWollman

--
Garrett A. Wollman   | Shashish is simple, it's discreet, it's brief. ... 
wollman@lcs.mit.edu  | Shashish is the bonding of hearts in spite of distance.
Opinions not those of| It is a bond more powerful than absence.  We like people
MIT, LCS, ANA, or NSA| who like Shashish.  - Claude McKenzie + Florent Vollant



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