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