--- nfs-utils-1.0.10/utils/gssd/gssd_proc.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/gssd_proc.c 2006-10-18 16:14:14.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/gssd_proc.c 2006-10-30 16:40:47.000000000 -0700
@@ -43,7 +43,6 @@
#endif
#include "config.h"
goto out;
+#endif
}
---- nfs-utils-1.0.10/utils/gssd/context_mit.c.lustre 2006-10-13 16:02:38.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/context_mit.c 2006-10-13 16:03:33.000000000 -0600
+--- nfs-utils-1.0.10/utils/gssd/context_mit.c.lustre 2006-10-30 16:40:17.000000000 -0700
++++ nfs-utils-1.0.10/utils/gssd/context_mit.c 2006-10-30 16:40:47.000000000 -0700
@@ -34,8 +34,6 @@
#include <string.h>
#include <errno.h>
return -1;
}
--- nfs-utils-1.0.10/utils/gssd/context.h.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/context.h 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/context.h 2006-10-30 16:40:47.000000000 -0700
@@ -31,8 +31,6 @@
#ifndef _CONTEXT_H_
#define _CONTEXT_H_
gss_OID mech);
int serialize_spkm3_ctx(gss_ctx_id_t ctx, gss_buffer_desc *buf);
--- nfs-utils-1.0.10/utils/gssd/gssd_main_loop.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/gssd_main_loop.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/gssd_main_loop.c 2006-10-30 16:40:47.000000000 -0700
@@ -94,7 +94,7 @@
};
if (update_client_list()) {
printerr(0, "ERROR: couldn't update "
--- nfs-utils-1.0.10/utils/gssd/svcgssd.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/svcgssd.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/svcgssd.c 2006-10-30 16:40:47.000000000 -0700
@@ -43,7 +43,6 @@
#include <sys/types.h>
#include <sys/stat.h>
abort();
}
--- nfs-utils-1.0.10/utils/gssd/svcgssd_proc.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/svcgssd_proc.c 2006-10-13 16:48:03.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/svcgssd_proc.c 2006-10-30 17:23:21.000000000 -0700
@@ -35,7 +35,6 @@
#include <sys/param.h>
void
print_hexl(int pri, unsigned char *cp, int length)
{
-@@ -285,12 +292,110 @@
+@@ -285,12 +292,113 @@
printerr(pri,"\n");
}
}
+
+static int
+get_ids(gss_name_t client_name, gss_OID mech, struct svc_cred *cred,
-+ lnet_nid_t nid)
++ lnet_nid_t nid, uint32_t lustre_svc)
+{
+ u_int32_t maj_stat, min_stat;
+ gss_buffer_desc name;
+ printerr(1, "authenticated %s from %016llx\n", sname, nid);
+ gss_release_buffer(&min_stat, &name);
+
-+ lookup_mapping(sname, nid, &cred->cr_mapped_uid);
++ if (lustre_svc == LUSTRE_GSS_SVC_MDS)
++ lookup_mapping(sname, nid, &cred->cr_mapped_uid);
++ else
++ cred->cr_mapped_uid = -1;
+
+ realm = strchr(sname, '@');
+ if (!realm) {
char in_tok_buf[TOKEN_BUF_SIZE];
char in_handle_buf[15];
char out_handle_buf[15];
-@@ -302,10 +407,13 @@
+@@ -302,10 +410,13 @@
ignore_out_tok = {.value = NULL},
/* XXX isn't there a define for this?: */
null_token = {.value = NULL};
u_int32_t maj_stat = GSS_S_FAILURE, min_stat = 0;
u_int32_t ignore_min_stat;
struct svc_cred cred;
-@@ -313,7 +421,7 @@
+@@ -313,7 +424,7 @@
static int lbuflen = 0;
static char *cp;
if (readline(fileno(f), &lbuf, &lbuflen) != 1) {
printerr(0, "WARNING: handle_nullreq: "
-@@ -323,15 +431,21 @@
+@@ -323,15 +434,21 @@
cp = lbuf;
if (in_tok.length < 0) {
printerr(0, "WARNING: handle_nullreq: "
-@@ -351,7 +465,13 @@
+@@ -351,7 +468,13 @@
memcpy(&ctx, in_handle.value, in_handle.length);
}
&in_tok, GSS_C_NO_CHANNEL_BINDINGS, &client_name,
&mech, &out_tok, &ret_flags, NULL, NULL);
-@@ -369,7 +489,7 @@
+@@ -369,7 +492,8 @@
maj_stat, min_stat, mech);
goto out_err;
}
- if (get_ids(client_name, mech, &cred)) {
-+ if (get_ids(client_name, mech, &cred, nid)) {
++
++ if (get_ids(client_name, mech, &cred, nid, lustre_svc)) {
/* get_ids() prints error msg */
maj_stat = GSS_S_BAD_NAME; /* XXX ? */
gss_release_name(&ignore_min_stat, &client_name);
-@@ -377,10 +497,8 @@
+@@ -377,10 +501,8 @@
}
gss_release_name(&ignore_min_stat, &client_name);
out_handle.length = sizeof(handle_seq);
memcpy(out_handle.value, &handle_seq, sizeof(handle_seq));
-@@ -404,7 +522,6 @@
+@@ -404,7 +526,6 @@
free(ctx_token.value);
if (out_tok.value != NULL)
gss_release_buffer(&ignore_min_stat, &out_tok);
out_err:
--- nfs-utils-1.0.10/utils/gssd/gss_util.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/gss_util.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/gss_util.c 2006-10-30 16:40:47.000000000 -0700
@@ -87,9 +87,16 @@
#ifdef HAVE_COM_ERR_H
#include <com_err.h>
int gssd_check_mechs(void)
--- nfs-utils-1.0.10/utils/gssd/gss_util.h.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/gss_util.h 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/gss_util.h 2006-10-30 16:40:47.000000000 -0700
@@ -32,12 +32,10 @@
#define _GSS_UTIL_H_
void pgsserr(char *msg, u_int32_t maj_stat, u_int32_t min_stat,
const gss_OID mech);
int gssd_check_mechs(void);
---- nfs-utils-1.0.10/utils/gssd/krb5_util.h.lustre 2006-10-13 16:02:38.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/krb5_util.h 2006-10-17 20:13:38.000000000 -0600
+--- nfs-utils-1.0.10/utils/gssd/krb5_util.h.lustre 2006-10-30 16:40:17.000000000 -0700
++++ nfs-utils-1.0.10/utils/gssd/krb5_util.h 2006-10-30 16:40:47.000000000 -0700
@@ -10,13 +10,15 @@
struct gssd_k5_kt_princ {
struct gssd_k5_kt_princ *next;
+
#endif /* KRB5_UTIL_H */
---- nfs-utils-1.0.10/utils/gssd/krb5_util.c.lustre 2006-10-13 16:02:38.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/krb5_util.c 2006-10-18 11:56:30.000000000 -0600
+--- nfs-utils-1.0.10/utils/gssd/krb5_util.c.lustre 2006-10-30 16:40:17.000000000 -0700
++++ nfs-utils-1.0.10/utils/gssd/krb5_util.c 2006-10-30 16:40:47.000000000 -0700
@@ -99,12 +99,14 @@
#include <rpc/rpc.h>
#include <sys/types.h>
/*
* Obtain supported enctypes from kernel.
--- nfs-utils-1.0.10/utils/gssd/gss_clnt_send_err.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/gss_clnt_send_err.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/gss_clnt_send_err.c 2006-10-30 16:40:47.000000000 -0700
@@ -47,6 +47,7 @@
#include "gssd.h"
#include "write_bytes.h"
}
+#endif
--- nfs-utils-1.0.10/utils/gssd/context.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/context.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/context.c 2006-10-30 16:40:47.000000000 -0700
@@ -33,8 +33,6 @@
#include <syslog.h>
#include <string.h>
#include "gss_util.h"
#include "gss_oids.h"
#include "err_util.h"
---- nfs-utils-1.0.10/utils/gssd/lsupport.h.lustre 2006-10-13 16:03:33.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/lsupport.h 2006-10-17 19:46:49.000000000 -0600
+--- nfs-utils-1.0.10/utils/gssd/lsupport.h.lustre 2006-10-30 16:40:47.000000000 -0700
++++ nfs-utils-1.0.10/utils/gssd/lsupport.h 2006-10-30 16:40:47.000000000 -0700
@@ -0,0 +1,89 @@
+/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
+ * vim:expandtab:shiftwidth=8:tabstop=8:
+
+#endif /* __LIBCFS_H__ */
--- nfs-utils-1.0.10/utils/gssd/err_util.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/err_util.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/err_util.c 2006-10-30 16:40:47.000000000 -0700
@@ -32,6 +32,8 @@
#include <stdarg.h>
#include <syslog.h>
+ }
+}
+
---- nfs-utils-1.0.10/utils/gssd/context_spkm3.c.lustre 2006-10-13 16:02:38.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/context_spkm3.c 2006-10-13 16:03:33.000000000 -0600
+--- nfs-utils-1.0.10/utils/gssd/context_spkm3.c.lustre 2006-10-30 16:40:17.000000000 -0700
++++ nfs-utils-1.0.10/utils/gssd/context_spkm3.c 2006-10-30 16:40:47.000000000 -0700
@@ -33,8 +33,6 @@
#include <syslog.h>
#include <string.h>
#include "gss_util.h"
#include "gss_oids.h"
#include "err_util.h"
---- nfs-utils-1.0.10/utils/gssd/gssd.c.lustre 2006-10-13 16:02:38.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/gssd.c 2006-10-13 16:03:33.000000000 -0600
+--- nfs-utils-1.0.10/utils/gssd/gssd.c.lustre 2006-10-30 16:40:17.000000000 -0700
++++ nfs-utils-1.0.10/utils/gssd/gssd.c 2006-10-30 16:40:47.000000000 -0700
@@ -40,7 +40,6 @@
#include <sys/param.h>
abort();
}
--- nfs-utils-1.0.10/utils/gssd/cacheio.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/cacheio.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/cacheio.c 2006-10-30 16:40:47.000000000 -0700
@@ -227,7 +227,8 @@
return -1;
while (*bp == ' ') bp++;
return len;
}
---- nfs-utils-1.0.10/utils/gssd/lsupport.c.lustre 2006-10-13 16:03:33.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/lsupport.c 2006-10-13 17:40:51.000000000 -0600
-@@ -0,0 +1,774 @@
+--- nfs-utils-1.0.10/utils/gssd/lsupport.c.lustre 2006-10-30 16:40:47.000000000 -0700
++++ nfs-utils-1.0.10/utils/gssd/lsupport.c 2006-10-30 17:42:31.000000000 -0700
+@@ -0,0 +1,782 @@
+/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
+ * vim:expandtab:shiftwidth=8:tabstop=8:
+ *
+ struct stat st;
+
+ if (stat(MAPPING_DATABASE_FILE, &st) == -1) {
-+ printerr(0, "stat %s failed\n");
-+ return 1;
++ /* stat failed, treat it like doesn't exist or be removed */
++ if (mapping_mtime == 0) {
++ return 0;
++ } else {
++ printerr(0, "Warning: stat %s failed: %s\n",
++ MAPPING_DATABASE_FILE, strerror(errno));
++
++ mapping_mtime = 0;
++ return 1;
++ }
+ }
+
+ if (st.st_mtime != mapping_mtime) {
+}
+
--- nfs-utils-1.0.10/utils/gssd/err_util.h.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/err_util.h 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/err_util.h 2006-10-30 16:40:47.000000000 -0700
@@ -33,5 +33,6 @@
void initerr(char *progname, int verbosity, int fg);
#endif /* _ERR_UTIL_H_ */
--- nfs-utils-1.0.10/utils/gssd/svcgssd_main_loop.c.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/svcgssd_main_loop.c 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/svcgssd_main_loop.c 2006-10-30 16:40:47.000000000 -0700
@@ -47,31 +47,31 @@
#include "err_util.h"
}
}
--- nfs-utils-1.0.10/utils/gssd/Makefile.am.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/Makefile.am 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/Makefile.am 2006-10-30 16:40:47.000000000 -0700
@@ -1,17 +1,11 @@
## Process this file with automake to produce Makefile.in
- done)
-
--- nfs-utils-1.0.10/utils/gssd/gssd.h.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/gssd.h 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/gssd.h 2006-10-30 16:40:47.000000000 -0700
@@ -48,8 +48,13 @@
#define GSSD_DEFAULT_CRED_PREFIX "krb5cc_"
#define GSSD_DEFAULT_MACHINE_CRED_SUFFIX "machine"
#endif /* _RPC_GSSD_H_ */
--- nfs-utils-1.0.10/utils/gssd/svcgssd.h.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/gssd/svcgssd.h 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/gssd/svcgssd.h 2006-10-30 16:40:47.000000000 -0700
@@ -36,8 +36,19 @@
#include <gssapi/gssapi.h>
#endif /* _RPC_SVCGSSD_H_ */
--- nfs-utils-1.0.10/utils/Makefile.am.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/utils/Makefile.am 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/utils/Makefile.am 2006-10-30 16:40:47.000000000 -0700
@@ -2,31 +2,6 @@
OPTDIRS =
MAINTAINERCLEANFILES = Makefile.in
--- nfs-utils-1.0.10/configure.in.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/configure.in 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/configure.in 2006-10-30 16:40:47.000000000 -0700
@@ -17,61 +17,14 @@
RELEASE=$withval,
RELEASE=1)
AC_OUTPUT
--- nfs-utils-1.0.10/Makefile.am.lustre 2006-08-07 00:40:50.000000000 -0600
-+++ nfs-utils-1.0.10/Makefile.am 2006-10-13 16:03:33.000000000 -0600
++++ nfs-utils-1.0.10/Makefile.am 2006-10-30 16:40:47.000000000 -0700
@@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in