rnusers.x revision 303975
197403Sobrien/*-
297403Sobrien * Copyright (c) 2010, Oracle America, Inc.
3169691Skan *
4169691Skan * Redistribution and use in source and binary forms, with or without
597403Sobrien * modification, are permitted provided that the following conditions are
697403Sobrien * met:
7132720Skan *
897403Sobrien *     * Redistributions of source code must retain the above copyright
9132720Skan *       notice, this list of conditions and the following disclaimer.
1097403Sobrien *     * Redistributions in binary form must reproduce the above
1197403Sobrien *       copyright notice, this list of conditions and the following
1297403Sobrien *       disclaimer in the documentation and/or other materials
1397403Sobrien *       provided with the distribution.
14132720Skan *     * Neither the name of the "Oracle America, Inc." nor the names of its
1597403Sobrien *       contributors may be used to endorse or promote products derived
1697403Sobrien *       from this software without specific prior written permission.
1797403Sobrien *
1897403Sobrien *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1997403Sobrien *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20132720Skan *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21169691Skan *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22169691Skan *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
2397403Sobrien *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2497403Sobrien *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
2597403Sobrien *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2697403Sobrien *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
2797403Sobrien *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2897403Sobrien *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2997403Sobrien *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3097403Sobrien */
3197403Sobrien
3297403Sobrien/*
3397403Sobrien * Find out about remote users
34169691Skan */
35169691Skan
3697403Sobrien#ifndef RPC_HDR
3797403Sobrien%#ifndef lint
3897403Sobrien%/*static char sccsid[] = "from: @(#)rnusers.x 1.2 87/09/20 Copyr 1987 Sun Micro";*/
3997403Sobrien%/*static char sccsid[] = "from: @(#)rnusers.x	2.1 88/08/01 4.0 RPCSRC";*/
4097403Sobrien%#endif /* not lint */
41132720Skan%#include <sys/cdefs.h>
42132720Skan%__FBSDID("$FreeBSD: releng/11.0/include/rpcsvc/rnusers.x 259117 2013-12-09 04:26:50Z hrs $");
4397403Sobrien#endif
4497403Sobrien
4597403Sobrienconst MAXUSERS = 100;
4697403Sobrienconst MAXUTLEN = 256;
47169691Skan
48169691Skanstruct utmp {
4997403Sobrien	string ut_line<MAXUTLEN>;
5097403Sobrien	string ut_name<MAXUTLEN>;
5197403Sobrien	string ut_host<MAXUTLEN>;
5297403Sobrien	int ut_time;
53117397Skan};
54117397Skan
55117397Skan
56117397Skanstruct utmpidle {
5797403Sobrien	utmp ui_utmp;
5897403Sobrien	unsigned int ui_idle;
5997403Sobrien};
6097403Sobrien
6197403Sobrientypedef utmp utmparr<MAXUSERS>;
62171827Skan
6397403Sobrientypedef utmpidle utmpidlearr<MAXUSERS>;
6497403Sobrien
6597403Sobrienconst RUSERS_MAXUSERLEN = 32;
66171827Skanconst RUSERS_MAXLINELEN = 32;
67169691Skanconst RUSERS_MAXHOSTLEN = 257;
68169691Skan
6997403Sobrienstruct rusers_utmp {
7097403Sobrien	string ut_user<RUSERS_MAXUSERLEN>;	/* aka ut_name */
7197403Sobrien	string ut_line<RUSERS_MAXLINELEN>;	/* device */
72171827Skan	string ut_host<RUSERS_MAXHOSTLEN>;	/* host user logged on from */
7397403Sobrien	int ut_type;				/* type of entry */
74171827Skan	int ut_time;				/* time entry was made */
7597403Sobrien	unsigned int ut_idle;			/* minutes idle */
7697403Sobrien};
7797403Sobrien
78171827Skantypedef rusers_utmp utmp_array<>;
79171827Skan
80171827Skanprogram RUSERSPROG {
81102782Skan	/*
8297403Sobrien	 * Old version does not include idle information
8397403Sobrien	 */
8497403Sobrien	version RUSERSVERS_ORIG {
8597403Sobrien		int
8697403Sobrien		RUSERSPROC_NUM(void) = 1;
8797403Sobrien
8897403Sobrien		utmparr
8997403Sobrien		RUSERSPROC_NAMES(void) = 2;
9097403Sobrien
9197403Sobrien		utmparr
9297403Sobrien		RUSERSPROC_ALLNAMES(void) = 3;
9397403Sobrien	} = 1;
9497403Sobrien
9597403Sobrien	/*
9697403Sobrien	 * Includes idle information
9797403Sobrien	 */
9897403Sobrien	version RUSERSVERS_IDLE {
9997403Sobrien		int
10097403Sobrien		RUSERSPROC_NUM(void) = 1;
10197403Sobrien
10297403Sobrien		utmpidlearr
10397403Sobrien		RUSERSPROC_NAMES(void) = 2;
10497403Sobrien
10597403Sobrien		utmpidlearr
10697403Sobrien		RUSERSPROC_ALLNAMES(void) = 3;
107102782Skan	} = 2;
108102782Skan
109132720Skan	/*
110132720Skan	 * Version 3 rusers procedures (from Solaris).
11197403Sobrien	 * (Thanks a lot Sun.)
11297403Sobrien	 */
11397403Sobrien	version RUSERSVERS_3 {
114169691Skan		int
115169691Skan		RUSERSPROC_NUM(void) = 1;
11697403Sobrien
117		utmp_array
118		RUSERSPROC_NAMES(void) = 2;
119
120		utmp_array
121		RUSERSPROC_ALLNAMES(void) = 3;
122	} = 3;
123
124} = 100002;
125
126