Ian Kent 94d1968
commit cb493f02ca3b8fbf0dba18d5a733345f54513300
Ian Kent 94d1968
Author: zoulasc <christos@zoulas.com>
Ian Kent 94d1968
Date:   Mon Mar 7 18:03:19 2016 -0500
Ian Kent 94d1968
Ian Kent 94d1968
    1. Add the "sys" alias for "unix", as well as "none", and "null"
Ian Kent 94d1968
    2. Properly handle multiple flavors, although the linux kernel does not (yet?)
Ian Kent 94d1968
    3. Don't add the "sec=" field, because it is already there.
Ian Kent 94d1968
Ian Kent 94d1968
diff --git a/libamu/mount_fs.c b/libamu/mount_fs.c
Ian Kent 94d1968
index 87f64c3..366eb8b 100644
Ian Kent 94d1968
--- a/libamu/mount_fs.c
Ian Kent 94d1968
+++ b/libamu/mount_fs.c
Ian Kent 94d1968
@@ -1076,7 +1076,10 @@ struct {
Ian Kent 94d1968
   const char *name;
Ian Kent 94d1968
   int num;
Ian Kent 94d1968
 } flavours[] = {
Ian Kent 94d1968
+  { "none",     AUTH_NONE },
Ian Kent 94d1968
+  { "null",     AUTH_NULL },
Ian Kent 94d1968
   { "unix",	AUTH_UNIX },
Ian Kent 94d1968
+  { "sys",      AUTH_SYS },
Ian Kent 94d1968
   { "krb5",	RPC_AUTH_GSS_KRB5 },
Ian Kent 94d1968
   { "krb5i",	RPC_AUTH_GSS_KRB5I },
Ian Kent 94d1968
   { "krb5p",	RPC_AUTH_GSS_KRB5P },
Ian Kent 94d1968
@@ -1104,12 +1107,13 @@ set_nfs4_security(nfs4_args_t *nap, mntent_t *mntp)
Ian Kent 94d1968
   nap->auth_flavours = xmalloc(l * sizeof(*nap->auth_flavours));
Ian Kent 94d1968
 
Ian Kent 94d1968
   s = ss = xstrdup(o);
Ian Kent 94d1968
+  l = 0;
Ian Kent 94d1968
   for (;;) {
Ian Kent 94d1968
     q = strchr(s, ',');
Ian Kent 94d1968
     if (q)
Ian Kent 94d1968
 	*q = '\0';
Ian Kent 94d1968
 
Ian Kent 94d1968
-    for (l = 0, i = 0; i < sizeof(flavours) / sizeof(flavours[0]); i++)
Ian Kent 94d1968
+    for (i = 0; i < sizeof(flavours) / sizeof(flavours[0]); i++)
Ian Kent 94d1968
       if (strcmp(flavours[i].name, s) == 0) {
Ian Kent 94d1968
 	nap->auth_flavours[l++] = flavours[i].num;
Ian Kent 94d1968
 	break;
Ian Kent 94d1968
@@ -1125,6 +1129,9 @@ set_nfs4_security(nfs4_args_t *nap, mntent_t *mntp)
Ian Kent 94d1968
     s = ++q;
Ian Kent 94d1968
   }
Ian Kent 94d1968
 
Ian Kent 94d1968
+  if (l == 0) {
Ian Kent 94d1968
+    nap->auth_flavours[l++] = AUTH_UNIX;
Ian Kent 94d1968
+  }
Ian Kent 94d1968
   nap->auth_flavourlen = l;
Ian Kent 94d1968
   return ss;
Ian Kent 94d1968
 }
Ian Kent 94d1968
@@ -1172,12 +1179,15 @@ add_nfs4_mntopts(const nfs4_args_t *nap, mntent_t *mntp, char *sec)
Ian Kent 94d1968
   opts = xrealloc(mntp->mnt_opts, len);
Ian Kent 94d1968
   xstrlcat(opts, buf, len);
Ian Kent 94d1968
 
Ian Kent 94d1968
+#ifdef notdef
Ian Kent 94d1968
+  /* Already in the options */
Ian Kent 94d1968
   if (sec) {
Ian Kent 94d1968
     xstrlcat(opts, ",", len);
Ian Kent 94d1968
     xstrlcat(opts, MNTTAB_OPT_SEC, len);
Ian Kent 94d1968
     xstrlcat(opts, "=", len);
Ian Kent 94d1968
     xstrlcat(opts, sec, len);
Ian Kent 94d1968
   }
Ian Kent 94d1968
+#endif
Ian Kent 94d1968
 
Ian Kent 94d1968
   mntp->mnt_opts = opts;
Ian Kent 94d1968
 }