X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/d30a7b2b8bb1faf7de4a43c29a14e8c696a66df5..refs/heads/LOCKING:/include/moira.h diff --git a/include/moira.h b/include/moira.h index c55e667a..d3e06b37 100644 --- a/include/moira.h +++ b/include/moira.h @@ -5,63 +5,103 @@ * * Copyright (C) 1987 by the Massachusetts Institute of Technology * - * $Log$ - * Revision 1.7 1988-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. - * */ -#include "sms_et.h" +#ifndef _moira_h_ +#define _moira_h_ + +/* return values from queries (and error codes) */ + +#include "mr_et.h" +#define MR_SUCCESS 0 /* Query was successful */ + +#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 Moira server calls, used by clients */ -#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_CONT 0 /* Everything okay, continue sending values. */ +#define MR_ABORT -1 /* Something went wrong don't send anymore + values. */ -#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 +#define MOIRA_SNAME "moira" /* Kerberos service key to use */ -#define SMS_FS_STUDENT 0x0001 -#define SMS_FS_FACULTY 0x0002 -#define SMS_FS_STAFF 0x0004 -#define SMS_FS_MISC 0x0008 +/* 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" + +/* 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; +}; + +/* 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 /* _moira_h_ */ /* Do Not Add Anything after this line. */