]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * $Source$ | |
3 | * $Author$ | |
4 | * $Header$ | |
5 | * | |
6 | * Copyright (C) 1987 by the Massachusetts Institute of Technology | |
7 | * | |
8 | */ | |
9 | ||
10 | #ifndef _moira_h_ | |
11 | #define _moira_h_ | |
12 | ||
13 | /* return values from queries (and error codes) */ | |
14 | ||
15 | #include "mr_et.h" | |
16 | #define MR_SUCCESS 0 /* Query was successful */ | |
17 | ||
18 | #define MR_VERSION_1 1 /* Version in use from 7/87 to 4/88 */ | |
19 | #define MR_VERSION_2 2 /* After 4/88, new query lib */ | |
20 | ||
21 | /* return values for Moira server calls, used by clients */ | |
22 | ||
23 | #define MR_CONT 0 /* Everything okay, continue sending values. */ | |
24 | #define MR_ABORT -1 /* Something went wrong don't send anymore | |
25 | values. */ | |
26 | ||
27 | #define MOIRA_SNAME "moira" /* Kerberos service key to use */ | |
28 | ||
29 | /* Protocol operations */ | |
30 | #define MR_NOOP 0 | |
31 | #define MR_AUTH 1 | |
32 | #define MR_SHUTDOWN 2 | |
33 | #define MR_QUERY 3 | |
34 | #define MR_ACCESS 4 | |
35 | #define MR_DO_UPDATE 5 | |
36 | #define MR_MOTD 6 | |
37 | #define MR_MAX_PROC 6 | |
38 | ||
39 | /* values used in NFS physical flags */ | |
40 | #define MR_FS_STUDENT 0x0001 | |
41 | #define MR_FS_FACULTY 0x0002 | |
42 | #define MR_FS_STAFF 0x0004 | |
43 | #define MR_FS_MISC 0x0008 | |
44 | #define MR_FS_GROUPQUOTA 0x0010 | |
45 | ||
46 | /* magic values to pass for list and user queries */ | |
47 | #define UNIQUE_GID "create unique GID" | |
48 | #define UNIQUE_UID "create unique UID" | |
49 | #define UNIQUE_LOGIN "create unique login ID" | |
50 | ||
51 | /* Structure used by Save Queue routines (for temporary storage of data) */ | |
52 | struct save_queue | |
53 | { | |
54 | struct save_queue *q_next; | |
55 | struct save_queue *q_prev; | |
56 | struct save_queue *q_lastget; | |
57 | char *q_data; | |
58 | }; | |
59 | ||
60 | /* Hash table declarations */ | |
61 | struct bucket { | |
62 | struct bucket *next; | |
63 | int key; | |
64 | char *data; | |
65 | }; | |
66 | struct hash { | |
67 | int size; | |
68 | struct bucket **data; | |
69 | }; | |
70 | ||
71 | #ifdef __STDC__ | |
72 | int mr_connect(char *server); | |
73 | int mr_disconnect(); | |
74 | int mr_host(char *host, int size); | |
75 | int mr_motd(char **motd); | |
76 | int mr_auth(char *prog); | |
77 | int mr_access(char *handle, int argc, char **argv); | |
78 | int mr_access_internal(int argc, char **argv); | |
79 | int mr_query(char *handle, int argc, char **argv, | |
80 | int (*callback)(), char *callarg); | |
81 | int mr_query_internal(int argc, char **argv, | |
82 | int (*callback)(), char *callarg); | |
83 | int mr_noop(); | |
84 | struct save_queue *sq_create(); | |
85 | struct hash *create_hash(int size); | |
86 | char *hash_lookup(struct hash *h, int key); | |
87 | char *strsave(char *s); | |
88 | char *strtrim(char *s); | |
89 | char *canonicalize_hostname(char *s); | |
90 | #else /* !__STDC__ */ | |
91 | int mr_connect(); | |
92 | int mr_disconnect(); | |
93 | int mr_host(); | |
94 | int mr_motd(); | |
95 | int mr_auth(); | |
96 | int mr_access(); | |
97 | int mr_query(); | |
98 | int mr_noop(); | |
99 | struct save_queue *sq_create(); | |
100 | struct hash *create_hash(); | |
101 | char *hash_lookup(); | |
102 | char *strsave(); | |
103 | char *strtrim(); | |
104 | char *canonicalize_hostname(); | |
105 | #endif /* __STDC__ */ | |
106 | ||
107 | #endif /* _moira_h_ */ /* Do Not Add Anything after this line. */ |