-/*
- * $Source$
- * $Author$
- * $Header$
+/* $Id$
*
- * Copyright (C) 1987 by the Massachusetts Institute of Technology
+ * Copyright (C) 1987-1998 by the Massachusetts Institute of Technology
*
*/
#ifndef _moira_h_
#define _moira_h_
-/* return values from queries (and error codes) */
+#ifdef _WIN32
+#include <windows.h>
+#ifndef strcasecmp
+#define strcasecmp stricmp
+#endif
+#ifndef snprintf
+#define snprintf _snprintf
+#endif
+#endif /*_WIN32 */
+/* return values from queries (and error codes) */
+#include <stdlib.h>
+#include <sys/types.h>
+#include <com_err.h>
#include "mr_et.h"
+#include "krb_et.h"
+#include "ureg_err.h"
+
#define MR_SUCCESS 0 /* Query was successful */
#define MR_VERSION_1 1 /* Version in use from 7/87 to 4/88 */
#define MR_ACCESS 4
#define MR_DO_UPDATE 5
#define MR_MOTD 6
-#define MR_MAX_PROC 6
+#define MR_PROXY 7
+#define MR_SETVERSION 8
+#define MR_KRB5_AUTH 9
+#define MR_MAX_PROC 9
/* values used in NFS physical flags */
#define MR_FS_STUDENT 0x0001
/* 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;
+ struct save_queue *q_next;
+ struct save_queue *q_prev;
+ struct save_queue *q_lastget;
+ void *q_data;
};
/* Hash table declarations */
struct bucket {
- struct bucket *next;
- int key;
- char *data;
+ struct bucket *next;
+ int key;
+ void *data;
};
struct hash {
- int size;
- struct bucket **data;
+ int size;
+ struct bucket **data;
};
-#ifdef __STDC__
+/* prototypes from critical.c */
+void critical_alert(char *whoami, char *instance, char *msg, ...);
+void send_zgram(char *inst, char *msg);
+
+/* prototypes from fixhost.c */
+char *canonicalize_hostname(char *s);
+
+/* prototypes from fixname.c */
+void FixName(char *ilnm, char *ifnm, char *last, char *first, char *middle);
+void FixCase(unsigned char *p);
+void LookForJrAndIII(char *nm, int *pends_jr, int *pends_sr,
+ int *pends_ii, int *pends_iii,
+ int *pends_iv, int *pends_v);
+void LookForSt(char *nm);
+void LookForO(char *nm);
+void TrimTrailingSpace(char *ip);
+void GetMidInit(char *nm, char *mi);
+void RemoveHyphens(char *str);
+
+/* prototypes from hash.c */
+struct hash *create_hash(int size);
+void *hash_lookup(struct hash *h, int key);
+int hash_update(struct hash *h, int key, void *value);
+int hash_store(struct hash *h, int key, void *value);
+void hash_search(struct hash *h, void *value, void (*callback)(int));
+void hash_step(struct hash *h, void (*callback)(int, void *, void *),
+ void *hint);
+void hash_destroy(struct hash *h);
+
+/* prototypes from kname_unparse.c */
+char *mr_kname_unparse(char *p, char *i, char *r);
+
+/* prototypes from kname_parse.c */
+int mr_kname_parse(char *np, char *ip, char *rp, char *fullname);
+
+/* prototypes from nfsparttype.c */
+char *parse_filesys_type(char *fs_type_name);
+char *format_filesys_type(char *fs_status);
+
+/* prototypes from sq.c */
+struct save_queue *sq_create(void);
+int sq_save_data(struct save_queue *sq, void *data);
+int sq_save_args(int argc, char *argv[], struct save_queue *sq);
+int sq_save_unique_data(struct save_queue *sq, void *data);
+int sq_save_unique_string(struct save_queue *sq, char *data);
+/* in sq_get_data and sq_remove_data, the `data' arg should be a
+ pointer to a pointer */
+int sq_get_data(struct save_queue *sq, void *data);
+int sq_remove_data(struct save_queue *sq, void *data);
+void sq_remove_last_data(struct save_queue *sq);
+int sq_empty(struct save_queue *sq);
+void sq_destroy(struct save_queue *sq);
+
+/* prototypes from strs.c */
+char *strtrim(char *s);
+char *uppercase(char *s);
+char *lowercase(char *s);
+
+#ifndef HAVE_STRLCPY
+size_t strlcpy(char *dst, const char *src, size_t size);
+#endif
+#ifndef HAVE_STRLCAT
+size_t strlcat(char *dst, const char *src, size_t size);
+#endif
+
+/* mr_ functions */
+int mr_access(char *handle, int argc, char **argv);
+int mr_auth(char *prog);
int mr_connect(char *server);
-int mr_disconnect();
+int mr_disconnect(void);
+int mr_do_update(void);
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_noop(void);
+int mr_proxy(char *principal, char *orig_authtype);
int mr_query(char *handle, int argc, char **argv,
- int (*callback)(), char *callarg);
-int mr_query_internal(int argc, char **argv,
- int (*callback)(), char *callarg);
-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__ */
+ int (*callback)(int, char **, void *), void *callarg);
+int mr_version(int version);
+
+/* error-name backward compatibility */
+#define MR_INGRES_ERR MR_DBMS_ERR
+#define MR_INGRES_SOFTFAIL MR_DBMS_SOFTFAIL
+
+
+#ifdef __GNUC__
+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#define __attribute__(x)
+#endif
+#else /* ! __GNUC __ */
+#define __attribute__(x)
+#endif
+
+#define RCSID(id) static char *rcsid __attribute__ ((__unused__)) = id
#endif /* _moira_h_ */ /* Do Not Add Anything after this line. */