181 lines
4.8 KiB
Groff
181 lines
4.8 KiB
Groff
.\" $NetBSD: getlastlogx.3,v 1.1 2003/08/26 17:37:51 wiz Exp $
|
|
.\"
|
|
.\" Copyright (c) 2003 The NetBSD Foundation, Inc.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
|
.\" by Thomas Klausner.
|
|
.\"
|
|
.\" 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.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the NetBSD
|
|
.\" Foundation, Inc. and its contributors.
|
|
.\" 4. Neither the name of The NetBSD Foundation nor the names of its
|
|
.\" contributors may be used to endorse or promote products derived
|
|
.\" from this software without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
|
|
.\"
|
|
.Dd August 26, 2003
|
|
.Dt GETLASTLOGX 3
|
|
.Os
|
|
.Sh NAME
|
|
.Nm getlastlogx ,
|
|
.Nm getutmp ,
|
|
.Nm getutmpx ,
|
|
.Nm updlastlogx ,
|
|
.Nm updwtmpx ,
|
|
.Nm utmpxname
|
|
.Nd user accounting database functions
|
|
.Sh LIBRARY
|
|
.Lb libc
|
|
.Sh SYNOPSIS
|
|
.In utmpx.h
|
|
.Ft struct lastlogx *
|
|
.Fn getlastlogx "const char *fname" "uid_t uid" "struct lastlogx *ll"
|
|
.Ft void
|
|
.Fn getutmp "const struct utmpx *ux" "struct utmp *u"
|
|
.Ft void
|
|
.Fn getutmpx "const struct utmp *u" "struct utmpx *ux"
|
|
.Ft int
|
|
.Fn updlastlogx "const char *fname" "uid_t uid" "struct lastlogx *ll"
|
|
.Ft int
|
|
.Fn updwtmpx "const char *file" "const struct utmpx *utx"
|
|
.Ft int
|
|
.Fn utmpxname "const char *fname"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Fn getlastlogx
|
|
function looks up the entry for the user with user id
|
|
.Fa uid
|
|
in the
|
|
.Xr lastlogx 5
|
|
file given by
|
|
.Fa fname
|
|
and returns it in
|
|
.Fa \&ll .
|
|
If the provided
|
|
.Fa \&ll
|
|
is
|
|
.Dv NULL ,
|
|
the necessary space will be allocated by
|
|
.Fn getlastlogx
|
|
and should be
|
|
.Fn free Ns d
|
|
by the caller.
|
|
.Pp
|
|
The
|
|
.Fn getutmp
|
|
function fills out the entries in the struct utmp
|
|
.Fa u
|
|
with the data provided in the struct utmpx
|
|
.Fa ux .
|
|
.Fn getutmpx
|
|
does the opposite, filling out the entries in the struct utmpx
|
|
.Fa ux
|
|
with the data provided in the struct utmp
|
|
.Fa u ,
|
|
and initializing all the unknown fields to 0.
|
|
The sole exception is the
|
|
.Fa ut_type
|
|
field, which will be initialized to
|
|
.Dv USER_PROCESS .
|
|
.Pp
|
|
The
|
|
.Fn updlastlogx
|
|
function tries to update the information for the user with the user id
|
|
.Fa uid
|
|
in the
|
|
.Xr lastlogx 5
|
|
file given by
|
|
.Fa fname
|
|
with the data supplied in
|
|
.Fa \&ll .
|
|
A
|
|
.Ft struct lastlogx
|
|
is defined like this:
|
|
.Bd -literal
|
|
struct lastlogx {
|
|
struct timeval ll_tv; /* time entry was created */
|
|
char ll_line[_UTX_LINESIZE]; /* tty name */
|
|
char ll_host[_UTX_HOSTSIZE]; /* host name */
|
|
struct sockaddr_storage ll_ss; /* address where entry was made from */
|
|
};
|
|
.Ed
|
|
All the fields should be filled out by the caller.
|
|
.Pp
|
|
The
|
|
.Fn updwtmpx
|
|
function updates the
|
|
.Xr wtmpx 5
|
|
file
|
|
.Fa file
|
|
with the
|
|
.Xr utmpx 5
|
|
entry
|
|
.Fa utx .
|
|
.Pp
|
|
The
|
|
.Fn utmpxname
|
|
function sets the default
|
|
.Xr utmpx 5
|
|
database file name to
|
|
.Fa fname .
|
|
.Sh RETURN VALUES
|
|
.Fn getlastlogx
|
|
returns the found entry on success, or
|
|
.Dv NULL
|
|
if it could not open the database, could not find an entry matching
|
|
.Fa uid
|
|
in there, or could not allocate the necessary space (in case
|
|
.Fa \&ll
|
|
was
|
|
.Dv NULL ) .
|
|
.Pp
|
|
.Fn utmpxname
|
|
returns 1 on success, or 0 if the supplied file name was too long or
|
|
did not end with
|
|
.Sq x .
|
|
.Pp
|
|
.Fn updlastlogx
|
|
and
|
|
.Fn updwtmpx
|
|
return 0 on success, or \-1 in case the database or file respectively
|
|
could not be opened or the data not written into it.
|
|
.Sh SEE ALSO
|
|
.Xr endutxent 3 ,
|
|
.Xr loginx 3 ,
|
|
.Xr utmpx 5
|
|
.Sh HISTORY
|
|
The functions
|
|
.Fn getutmp ,
|
|
.Fn getutmpx ,
|
|
.Fn updwtmpx ,
|
|
and
|
|
.Fn utmpxname
|
|
first appeared in
|
|
.Tn Solaris .
|
|
.Nm getlastlogx
|
|
and
|
|
.Nm updlastlogx
|
|
first appeared in
|
|
.Nx 2.0 .
|