Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Oct 2005 11:24:06 -0700
From:      Brooks Davis <brooks@one-eyed-alien.net>
To:        Ceri Davies <ceri@submonkey.net>, Brooks Davis <brooks@one-eyed-alien.net>, arch@freebsd.org
Subject:   Re: error in trimdomain(3)
Message-ID:  <20051003182406.GA3629@odin.ac.hmc.edu>
In-Reply-To: <20051003181808.GI56760@submonkey.net>
References:  <20051001093550.GA32354@odin.ac.hmc.edu> <20051003103124.GB56760@submonkey.net> <20051003180344.GA31888@odin.ac.hmc.edu> <20051003181808.GI56760@submonkey.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--+HP7ph2BbKc20aGI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Oct 03, 2005 at 07:18:08PM +0100, Ceri Davies wrote:
> On Mon, Oct 03, 2005 at 11:03:44AM -0700, Brooks Davis wrote:
> > On Mon, Oct 03, 2005 at 11:31:24AM +0100, Ceri Davies wrote:
> > > On Sat, Oct 01, 2005 at 02:35:50AM -0700, Brooks Davis wrote:
> > > > I discovered today that the trimdomain() implementation in libutil =
deviates
> > > > slightly from the manpage.  The manpage says:
> > > >=20
> > > >      The function trimdomain() removes the current domain name from=
 the passed
> > > >      fullhost name by writing a NUL character over the first period=
 of the
> > > >                                                        ^^^^^^^^^^^^
> > > >      passed name.  The current domain name is determined by calling
> > > >      gethostname(3) and removing everything up to the first period.
> > > >=20
> > > > which clearly indicates that trimdomain() should return either the
> > > > unmodified string or a host name with no domain.  In reality it will
> > > > remove the domain name even if the result is not a host name.  This
> > > > means that if the host b.com calls trimdomain with "a.b.com" as the
> > > > input string, the result is "a.b".
> > >=20
> > > That's actually what the excerpt above says will happen.
> > >=20
> > > gethostname returns "b.com", removing everything up to the first peri=
od
> > > yields ".com", and that removed from "a.b.com" gives you "a.b".
> > >=20
> > > I don't care if it needs to be changed, but that does exactly what it
> > > says on the tin so far as I can see.
> >=20
> > There are two refrences to "first period".  You are correct that the
> > domain name of b.com is .com, but the refrence I highlighted states that
> > the only allowable modification to the host name is writing a NUL to
> > the first period in the string (it's actually messier than this because
> > trimdomain also supports X11 DISPLAY strings and thus does a memmove and
> > reterminates if there is a :0 or :0.0 type string after domain.)
>=20
> I agree that the documentation gives that impressions but the fact that
> it bothers to call gethostname at all makes me wonder; if it's just going
> to replace the first period with a NUL then I don't see why that call is
> necessary, unless the intention is to achieve the current behaviour.

My interpretation is that the function is intended to remove the domain
only if it is the local domain and thus implicit.

-- Brooks

--=20
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

--+HP7ph2BbKc20aGI
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFDQXdFXY6L6fI4GtQRAulVAJ9fYV3Nckx+X/DU25m+FhrIPieCigCcDgvr
8205z7fRsH5DnjEQF/NPdXI=
=WcSO
-----END PGP SIGNATURE-----

--+HP7ph2BbKc20aGI--



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