xref: /freebsd/include/rpcsvc/rnusers.x (revision 734e82fe33aa764367791a7d603b383996c6b40b)
1 /*-
2  * Copyright (c) 2010, Oracle America, Inc.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  *     * Redistributions of source code must retain the above copyright
9  *       notice, this list of conditions and the following disclaimer.
10  *     * Redistributions in binary form must reproduce the above
11  *       copyright notice, this list of conditions and the following
12  *       disclaimer in the documentation and/or other materials
13  *       provided with the distribution.
14  *     * Neither the name of the "Oracle America, Inc." nor the names of its
15  *       contributors may be used to endorse or promote products derived
16  *       from this software without specific prior written permission.
17  *
18  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21  *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22  *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23  *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24  *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
25  *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27  *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28  *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 /*
33  * Find out about remote users
34  */
35 
36 #ifndef RPC_HDR
37 %#ifndef lint
38 %/*static char sccsid[] = "from: @(#)rnusers.x 1.2 87/09/20 Copyr 1987 Sun Micro";*/
39 %/*static char sccsid[] = "from: @(#)rnusers.x	2.1 88/08/01 4.0 RPCSRC";*/
40 %#endif /* not lint */
41 %#include <sys/cdefs.h>
42 #endif
43 
44 const MAXUSERS = 100;
45 const MAXUTLEN = 256;
46 
47 struct utmp {
48 	string ut_line<MAXUTLEN>;
49 	string ut_name<MAXUTLEN>;
50 	string ut_host<MAXUTLEN>;
51 	int ut_time;
52 };
53 
54 
55 struct utmpidle {
56 	utmp ui_utmp;
57 	unsigned int ui_idle;
58 };
59 
60 typedef utmp utmparr<MAXUSERS>;
61 
62 typedef utmpidle utmpidlearr<MAXUSERS>;
63 
64 const RUSERS_MAXUSERLEN = 32;
65 const RUSERS_MAXLINELEN = 32;
66 const RUSERS_MAXHOSTLEN = 257;
67 
68 struct rusers_utmp {
69 	string ut_user<RUSERS_MAXUSERLEN>;	/* aka ut_name */
70 	string ut_line<RUSERS_MAXLINELEN>;	/* device */
71 	string ut_host<RUSERS_MAXHOSTLEN>;	/* host user logged on from */
72 	int ut_type;				/* type of entry */
73 	int ut_time;				/* time entry was made */
74 	unsigned int ut_idle;			/* minutes idle */
75 };
76 
77 typedef rusers_utmp utmp_array<>;
78 
79 program RUSERSPROG {
80 	/*
81 	 * Old version does not include idle information
82 	 */
83 	version RUSERSVERS_ORIG {
84 		int
85 		RUSERSPROC_NUM(void) = 1;
86 
87 		utmparr
88 		RUSERSPROC_NAMES(void) = 2;
89 
90 		utmparr
91 		RUSERSPROC_ALLNAMES(void) = 3;
92 	} = 1;
93 
94 	/*
95 	 * Includes idle information
96 	 */
97 	version RUSERSVERS_IDLE {
98 		int
99 		RUSERSPROC_NUM(void) = 1;
100 
101 		utmpidlearr
102 		RUSERSPROC_NAMES(void) = 2;
103 
104 		utmpidlearr
105 		RUSERSPROC_ALLNAMES(void) = 3;
106 	} = 2;
107 
108 	/*
109 	 * Version 3 rusers procedures (from Solaris).
110 	 * (Thanks a lot Sun.)
111 	 */
112 	version RUSERSVERS_3 {
113 		int
114 		RUSERSPROC_NUM(void) = 1;
115 
116 		utmp_array
117 		RUSERSPROC_NAMES(void) = 2;
118 
119 		utmp_array
120 		RUSERSPROC_ALLNAMES(void) = 3;
121 	} = 3;
122 
123 } = 100002;
124 
125