rusers.h
001:
002:
003:
004:
005:
006: #ifndef _RUSERS_H_RPCGEN
007: #define _RUSERS_H_RPCGEN
008:
009: #include <rpc/rpc.h>
010:
011:
012: #ifdef __cplusplus
013: extern "C" {
014: #endif
015:
016:
017:
018:
019: #define RUSERS_MAXUSERLEN 32
020: #define RUSERS_MAXLINELEN 32
021: #define RUSERS_MAXHOSTLEN 257
022:
023: struct rusers_utmp {
024: char *ut_user;
025: char *ut_line;
026: char *ut_host;
027: int ut_type;
028: int ut_time;
029: u_int ut_idle;
030: };
031: typedef struct rusers_utmp rusers_utmp;
032:
033: typedef struct {
034: u_int utmp_array_len;
035: rusers_utmp *utmp_array_val;
036: } utmp_array;
037:
038:
039:
040:
041: #define RUSERS_EMPTY 0
042: #define RUSERS_RUN_LVL 1
043: #define RUSERS_BOOT_TIME 2
044: #define RUSERS_OLD_TIME 3
045: #define RUSERS_NEW_TIME 4
046: #define RUSERS_INIT_PROCESS 5
047: #define RUSERS_LOGIN_PROCESS 6
048: #define RUSERS_USER_PROCESS 7
049: #define RUSERS_DEAD_PROCESS 8
050: #define RUSERS_ACCOUNTING 9
051:
052:
053: #ifdef __cplusplus
054: extern "C" {
055: #endif
056:
057: #include <rpc/xdr.h>
058:
059:
060:
061:
062:
063:
064: #define RUSERSVERS_IDLE 2
065: #define RUSERSVERS 3
066: #define MAXUSERS 100
067:
068:
069:
070:
071:
072: struct ru_utmp {
073: char ut_line[8];
074: char ut_name[8];
075: char ut_host[16];
076: long int ut_time;
077: };
078:
079: struct utmparr {
080: struct ru_utmp **uta_arr;
081: int uta_cnt;
082: };
083: typedef struct utmparr utmparr;
084:
085: extern bool_t xdr_utmparr (XDR *xdrs, struct utmparr *objp) __THROW;
086:
087: struct utmpidle {
088: struct ru_utmp ui_utmp;
089: unsigned int ui_idle;
090: };
091:
092: struct utmpidlearr {
093: struct utmpidle **uia_arr;
094: int uia_cnt;
095: };
096:
097: extern bool_t xdr_utmpidlearr (XDR *xdrs, struct utmpidlearr *objp) __THROW;
098:
099: #ifdef __cplusplus
100: }
101: #endif
102:
103: #define RUSERSPROG 100002
104: #define RUSERSVERS_3 3
105:
106: #if defined(__STDC__) || defined(__cplusplus)
107: #define RUSERSPROC_NUM 1
108: extern int * rusersproc_num_3(void *, CLIENT *);
109: extern int * rusersproc_num_3_svc(void *, struct svc_req *);
110: #define RUSERSPROC_NAMES 2
111: extern utmp_array * rusersproc_names_3(void *, CLIENT *);
112: extern utmp_array * rusersproc_names_3_svc(void *, struct svc_req *);
113: #define RUSERSPROC_ALLNAMES 3
114: extern utmp_array * rusersproc_allnames_3(void *, CLIENT *);
115: extern utmp_array * rusersproc_allnames_3_svc(void *, struct svc_req *);
116: extern int rusersprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
117:
118: #else
119: #define RUSERSPROC_NUM 1
120: extern int * rusersproc_num_3();
121: extern int * rusersproc_num_3_svc();
122: #define RUSERSPROC_NAMES 2
123: extern utmp_array * rusersproc_names_3();
124: extern utmp_array * rusersproc_names_3_svc();
125: #define RUSERSPROC_ALLNAMES 3
126: extern utmp_array * rusersproc_allnames_3();
127: extern utmp_array * rusersproc_allnames_3_svc();
128: extern int rusersprog_3_freeresult ();
129: #endif
130:
131:
132:
133: #if defined(__STDC__) || defined(__cplusplus)
134: extern bool_t xdr_rusers_utmp (XDR *, rusers_utmp*);
135: extern bool_t xdr_utmp_array (XDR *, utmp_array*);
136:
137: #else
138: extern bool_t xdr_rusers_utmp ();
139: extern bool_t xdr_utmp_array ();
140:
141: #endif
142:
143: #ifdef __cplusplus
144: }
145: #endif
146:
147: #endif
148:
© Andrew Scott 2006 -
2024,
All Rights Reserved