*
* Copyright (C) 1987 by the Massachusetts Institute of Technology
*
- * $Log$
- * Revision 1.8 1988-04-19 14:40:17 kit
- * Added #define statments that only allows this to be included once per
- * file. Also added SMS_CONT and SMS_ABORT defintions.\
- *
- * Revision 1.7 88/04/19 14:30:47 kit
- * Added new sms_version_2 for new version.
- *
- * Revision 1.6 87/08/22 17:11:59 wesommer
- * Added flags for user filesystems.
- *
- * Revision 1.5 87/08/02 21:50:25 wesommer
- * Added function prototypes.
- *
- * Revision 1.4 87/06/23 16:13:36 wesommer
- * Added new request.
- *
- * Revision 1.3 87/06/04 01:31:16 wesommer
- * Renamed retrieve to query.
- *
- * Revision 1.2 87/06/01 03:33:32 wesommer
- * Added new procedure numbers.
- *
*/
-#ifndef _sms_h_
-#define _sms_h_
+#ifndef _moira_h_
+#define _moira_h_
+
+/* return values from queries (and error codes) */
-#include "sms_et.h"
+#include "mr_et.h"
+#define MR_SUCCESS 0 /* Query was successful */
-#define SMS_VERSION_1 1 /* Version in use from 7/87 to 4/88 */
-#define SMS_VERSION_2 2 /* After 4/88, new query lib */
+#define MR_VERSION_1 1 /* Version in use from 7/87 to 4/88 */
+#define MR_VERSION_2 2 /* After 4/88, new query lib */
-/* return values for sms server calls, used by clients */
+/* return values for Moira server calls, used by clients */
-#define SMS_CONT 0 /* Everything okay, continue sending values. */
-#define SMS_ABORT -1 /* Something went wrong don't send anymore
+#define MR_CONT 0 /* Everything okay, continue sending values. */
+#define MR_ABORT -1 /* Something went wrong don't send anymore
values. */
+#define MOIRA_SNAME "moira" /* Kerberos service key to use */
+
+/* Protocol operations */
+#define MR_NOOP 0
+#define MR_AUTH 1
+#define MR_SHUTDOWN 2
+#define MR_QUERY 3
+#define MR_ACCESS 4
+#define MR_DO_UPDATE 5
+#define MR_MOTD 6
+#define MR_MAX_PROC 6
+
+/* values used in NFS physical flags */
+#define MR_FS_STUDENT 0x0001
+#define MR_FS_FACULTY 0x0002
+#define MR_FS_STAFF 0x0004
+#define MR_FS_MISC 0x0008
+#define MR_FS_GROUPQUOTA 0x0010
+
+/* magic values to pass for list and user queries */
+#define UNIQUE_GID "create unique GID"
+#define UNIQUE_UID "create unique UID"
+#define UNIQUE_LOGIN "create unique login ID"
-#define SMS_NOOP 0
-#define SMS_AUTH 1
-#define SMS_SHUTDOWN 2
-#define SMS_QUERY 3
-#define SMS_ACCESS 4
-#define SMS_DO_UPDATE 5
-#define SMS_MAX_PROC 5
+/* Structure used by Save Queue routines (for temporary storage of data) */
+struct save_queue
+{
+ struct save_queue *q_next;
+ struct save_queue *q_prev;
+ struct save_queue *q_lastget;
+ char *q_data;
+};
-#define SMS_FS_STUDENT 0x0001
-#define SMS_FS_FACULTY 0x0002
-#define SMS_FS_STAFF 0x0004
-#define SMS_FS_MISC 0x0008
+/* Hash table declarations */
+struct bucket {
+ struct bucket *next;
+ int key;
+ char *data;
+};
+struct hash {
+ int size;
+ struct bucket **data;
+};
#ifdef __STDC__
-int sms_connect();
-int sms_disconnect();
-int sms_auth();
-int sms_access(char *handle, int argc, char **argv);
-int sms_access_internal(int argc, char **argv);
-int sms_query(char *handle, int argc, char **argv,
+int mr_connect(char *server);
+int mr_disconnect();
+int mr_host(char *host, int size);
+int mr_motd(char **motd);
+int mr_auth(char *prog);
+int mr_access(char *handle, int argc, char **argv);
+int mr_access_internal(int argc, char **argv);
+int mr_query(char *handle, int argc, char **argv,
int (*callback)(), char *callarg);
-int sms_query_internal(int argc, char **argv,
+int mr_query_internal(int argc, char **argv,
int (*callback)(), char *callarg);
-int sms_noop();
-int sms_shutdown(char *reason);
-#else !__STDC__
-int sms_connect();
-int sms_disconnect();
-int sms_auth();
-int sms_access();
-int sms_query();
-int sms_noop();
-int sms_shutdown();
-#endif __STDC__
+int mr_noop();
+struct save_queue *sq_create();
+struct hash *create_hash(int size);
+char *hash_lookup(struct hash *h, int key);
+char *strsave(char *s);
+char *strtrim(char *s);
+char *canonicalize_hostname(char *s);
+#else /* !__STDC__ */
+int mr_connect();
+int mr_disconnect();
+int mr_host();
+int mr_motd();
+int mr_auth();
+int mr_access();
+int mr_query();
+int mr_noop();
+struct save_queue *sq_create();
+struct hash *create_hash();
+char *hash_lookup();
+char *strsave();
+char *strtrim();
+char *canonicalize_hostname();
+#endif /* __STDC__ */
-#endif _sms_h_ /* Do Not Add Anything after this line. */
+#endif /* _moira_h_ */ /* Do Not Add Anything after this line. */