#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 "gdss_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
};
/* prototypes from critical.c */
-void critical_alert(char *instance, char *msg, ...);
+void critical_alert(char *whoami, char *instance, char *msg, ...);
void send_zgram(char *inst, char *msg);
/* prototypes from fixhost.c */
/* prototypes from fixname.c */
void FixName(char *ilnm, char *ifnm, char *last, char *first, char *middle);
-void FixCase(char *p);
+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 GetMidInit(char *nm, char *mi);
void RemoveHyphens(char *str);
-/* prototypes from gdss_convert.c */
-int gdss2et(int code);
-
/* prototypes from hash.c */
struct hash *create_hash(int size);
void *hash_lookup(struct hash *h, int key);
void hash_destroy(struct hash *h);
/* prototypes from kname_unparse.c */
-char *kname_unparse(char *p, char *i, char *r);
+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);
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);
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_host(char *host, int size);
int mr_motd(char **motd);
int mr_noop(void);
+int mr_proxy(char *principal, char *orig_authtype);
int mr_query(char *handle, int argc, char **argv,
int (*callback)(int, char **, void *), void *callarg);
+int mr_version(int version);
/* error-name backward compatibility */
#define MR_INGRES_ERR MR_DBMS_ERR
#ifdef __GNUC__
-#if __GNUC_MINOR__ < 7
+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
#define __attribute__(x)
#endif
#else /* ! __GNUC __ */