xref: /freebsd/include/rpcsvc/rnusers.x (revision 0957b409)
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 %__FBSDID("$FreeBSD$");
43 #endif
44 
45 const MAXUSERS = 100;
46 const MAXUTLEN = 256;
47 
48 struct utmp {
49 	string ut_line<MAXUTLEN>;
50 	string ut_name<MAXUTLEN>;
51 	string ut_host<MAXUTLEN>;
52 	int ut_time;
53 };
54 
55 
56 struct utmpidle {
57 	utmp ui_utmp;
58 	unsigned int ui_idle;
59 };
60 
61 typedef utmp utmparr<MAXUSERS>;
62 
63 typedef utmpidle utmpidlearr<MAXUSERS>;
64 
65 const RUSERS_MAXUSERLEN = 32;
66 const RUSERS_MAXLINELEN = 32;
67 const RUSERS_MAXHOSTLEN = 257;
68 
69 struct rusers_utmp {
70 	string ut_user<RUSERS_MAXUSERLEN>;	/* aka ut_name */
71 	string ut_line<RUSERS_MAXLINELEN>;	/* device */
72 	string ut_host<RUSERS_MAXHOSTLEN>;	/* host user logged on from */
73 	int ut_type;				/* type of entry */
74 	int ut_time;				/* time entry was made */
75 	unsigned int ut_idle;			/* minutes idle */
76 };
77 
78 typedef rusers_utmp utmp_array<>;
79 
80 program RUSERSPROG {
81 	/*
82 	 * Old version does not include idle information
83 	 */
84 	version RUSERSVERS_ORIG {
85 		int
86 		RUSERSPROC_NUM(void) = 1;
87 
88 		utmparr
89 		RUSERSPROC_NAMES(void) = 2;
90 
91 		utmparr
92 		RUSERSPROC_ALLNAMES(void) = 3;
93 	} = 1;
94 
95 	/*
96 	 * Includes idle information
97 	 */
98 	version RUSERSVERS_IDLE {
99 		int
100 		RUSERSPROC_NUM(void) = 1;
101 
102 		utmpidlearr
103 		RUSERSPROC_NAMES(void) = 2;
104 
105 		utmpidlearr
106 		RUSERSPROC_ALLNAMES(void) = 3;
107 	} = 2;
108 
109 	/*
110 	 * Version 3 rusers procedures (from Solaris).
111 	 * (Thanks a lot Sun.)
112 	 */
113 	version RUSERSVERS_3 {
114 		int
115 		RUSERSPROC_NUM(void) = 1;
116 
117 		utmp_array
118 		RUSERSPROC_NAMES(void) = 2;
119 
120 		utmp_array
121 		RUSERSPROC_ALLNAMES(void) = 3;
122 	} = 3;
123 
124 } = 100002;
125 
126