Whamcloud - gitweb
branch: b_new_cmd
authorericm <ericm>
Tue, 31 Oct 2006 00:58:40 +0000 (00:58 +0000)
committerericm <ericm>
Tue, 31 Oct 2006 00:58:40 +0000 (00:58 +0000)
minor message fix for gss server daemon.

lustre/utils/gss/lsupport.c
lustre/utils/gss/nfs-utils-1.0.10-lustre.diff
lustre/utils/gss/svcgssd_proc.c

index 33926d1..eb0cc6b 100644 (file)
@@ -732,8 +732,16 @@ static inline int mapping_changed(void)
         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) {
index 25c4914..4254ea1 100644 (file)
@@ -1,5 +1,5 @@
 --- 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
  
index 1ba2fc8..db5a11e 100644 (file)
@@ -296,7 +296,7 @@ print_hexl(int pri, unsigned char *cp, int length)
 
 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;
@@ -324,7 +324,10 @@ get_ids(gss_name_t client_name, gss_OID mech, struct svc_cred *cred,
        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) {
@@ -489,7 +492,8 @@ handle_nullreq(FILE *f) {
                        maj_stat, min_stat, mech);
                goto out_err;
        }
-       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);