Tidy up trimdomain() and document it.
Don't truncate one byte short of the passed length.
This commit is contained in:
parent
c7b579a379
commit
0c059599f6
@ -10,7 +10,8 @@ SRCS= login.c login_tty.c logout.c logwtmp.c pty.c setproctitle.c \
|
||||
_secure_path.c uucplock.c property.c auth.c realhostname.c
|
||||
MAN3+= login.3 login_auth.3 login_tty.3 logout.3 logwtmp.3 pty.3 \
|
||||
setproctitle.3 login_cap.3 login_class.3 login_times.3 login_ok.3 \
|
||||
_secure_path.3 uucplock.3 property.3 auth.3 realhostname.3
|
||||
_secure_path.3 uucplock.3 property.3 auth.3 realhostname.3 \
|
||||
trimdomain.3
|
||||
MAN5+= login.conf.5 auth.conf.5
|
||||
MLINKS+= property.3 properties_read.3 property.3 properties_free.3
|
||||
MLINKS+= property.3 property_find.3
|
||||
|
@ -36,7 +36,7 @@
|
||||
static char sccsid[] = "@(#)logwtmp.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
static const char rcsid[] =
|
||||
"$Id: logwtmp.c,v 1.8 1998/10/09 11:24:19 jkh Exp $";
|
||||
"$Id: logwtmp.c,v 1.9 1999/04/07 08:27:04 brian Exp $";
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
@ -55,7 +55,7 @@ static const char rcsid[] =
|
||||
#include <utmp.h>
|
||||
|
||||
void
|
||||
trimdomain( char * fullhost, int hostsize )
|
||||
trimdomain(char *fullhost, int hostsize)
|
||||
{
|
||||
static char domain[MAXHOSTNAMELEN];
|
||||
static int first = 1;
|
||||
@ -67,21 +67,18 @@ trimdomain( char * fullhost, int hostsize )
|
||||
(s = strchr(domain, '.')))
|
||||
bcopy(s + 1, domain, strlen(s + 1) + 1);
|
||||
else
|
||||
domain[0] = 0;
|
||||
domain[0] = '\0';
|
||||
}
|
||||
|
||||
if (domain[0]) {
|
||||
s = fullhost;
|
||||
while ((fullhost = strchr(fullhost, '.'))) {
|
||||
if (domain[0] != '\0') {
|
||||
s = fullhost;
|
||||
while ((fullhost = strchr(fullhost, '.')) != NULL)
|
||||
if (!strcasecmp(fullhost + 1, domain)) {
|
||||
if ( fullhost - s < hostsize ) {
|
||||
if (fullhost - s <= hostsize)
|
||||
*fullhost = '\0'; /* hit it and acceptable size*/
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
} else
|
||||
fullhost++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
66
lib/libutil/trimdomain.3
Normal file
66
lib/libutil/trimdomain.3
Normal file
@ -0,0 +1,66 @@
|
||||
.\" Copyright (c) 1999 Brian Somers <brian@Awfulhak.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: realhostname.3,v 1.1 1999/04/06 23:02:35 brian Exp $
|
||||
.\"
|
||||
.Dd April 7, 1999
|
||||
.Os
|
||||
.Dt TRIMDOMAIN 3
|
||||
.Sh NAME
|
||||
.Nm trimdomain
|
||||
.Nd "trim the current domain name from a host name"
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <libutil.h>
|
||||
.Ft void
|
||||
.Fn trimdomain "char *fullhost" "int hostsize"
|
||||
.Pp
|
||||
Link with
|
||||
.Va -lutil
|
||||
on the
|
||||
.Xr cc 1
|
||||
command line.
|
||||
.Sh DESCRIPTION
|
||||
The function
|
||||
.Fn trimdomain
|
||||
removes the current domain name from the passed
|
||||
.Ar fullhost
|
||||
name by writing a
|
||||
.Dv NUL
|
||||
character over the first period of the passed name. The current domain
|
||||
name is determined by calling
|
||||
.Xr gethostname 3
|
||||
and removing everything up to the first period. The name is determined
|
||||
the first time this function is called and is cached for future use.
|
||||
.Pp
|
||||
.Fn trimdomain
|
||||
will only trim the domain name if the passed
|
||||
.Ar fullname
|
||||
ends with the current domain name and if the length of the resulting host
|
||||
name does not exceed
|
||||
.Ar hostsize .
|
||||
.Sh RETURN VALUES
|
||||
.Fn trimdomain
|
||||
does not return a value.
|
||||
.Sh SEE ALSO
|
||||
.Xr gethostname 3
|
Loading…
Reference in New Issue
Block a user