]> andersk Git - moira.git/commitdiff
Fall back to mr_auth RPC if server doesn't support mr_krb5_auth RPC.
authorzacheiss <zacheiss>
Wed, 23 Aug 2006 19:02:27 +0000 (19:02 +0000)
committerzacheiss <zacheiss>
Wed, 23 Aug 2006 19:02:27 +0000 (19:02 +0000)
clients/moira/main.c
clients/moira/namespace.c
clients/moira/utils.c

index 3a231d27830d8abfa445fa46e853497c8a6134e2..8c207d3919275dda102d20fe13773918646caee4 100644 (file)
@@ -109,20 +109,25 @@ int main(int argc, char **argv)
 
   if ((status = mr_krb5_auth(program_name)))
     {
-      if (status == MR_USER_AUTH)
-       {
-         char buf[BUFSIZ];
-         com_err(program_name, status, "\nPress [RETURN] to continue");
-         fgets(buf, BUFSIZ, stdin);
-       }
-      else
-       {
-         if (status >= ERROR_TABLE_BASE_krb &&
-             status <= ERROR_TABLE_BASE_krb + 256)
-           ErrorExit("\nAuthorization failed -- please run kinit", status);
-         else
-           ErrorExit("\nAuthorization failed.", status);
-       }
+      if (status == MR_UNKNOWN_PROC)
+       status = mr_auth(program_name);
+
+      if (status) {
+       if (status == MR_USER_AUTH)
+         {
+           char buf[BUFSIZ];
+           com_err(program_name, status, "\nPress [RETURN] to continue");
+           fgets(buf, BUFSIZ, stdin);
+         }
+       else
+         {
+           if (status >= ERROR_TABLE_BASE_krb &&
+               status <= ERROR_TABLE_BASE_krb + 256)
+             ErrorExit("\nAuthorization failed -- please run kinit", status);
+           else
+             ErrorExit("\nAuthorization failed.", status);
+         }
+      }
     }
 
   /*
index c544d2f75c5da9f76e3a00115a7f99e133b252e4..6020d8fecdc442f888b5933ff704e5b2cecab1ec 100644 (file)
@@ -234,14 +234,20 @@ int main(int argc, char **argv)
 
   if ((status = mr_krb5_auth(program_name)))
     {
-      if (status == MR_USER_AUTH)
+      if (status == MR_UNKNOWN_PROC)
+       status = mr_auth(program_name);
+
+      if (status)
        {
-         char buf[BUFSIZ];
-         com_err(program_name, status, "\nPress [RETURN] to continue");
-         fgets(buf, BUFSIZ, stdin);
+         if (status == MR_USER_AUTH)
+           {
+             char buf[BUFSIZ];
+             com_err(program_name, status, "\nPress [RETURN] to continue");
+             fgets(buf, BUFSIZ, stdin);
+           }
+         else
+           ErrorExit("\nAuthorization failed -- please run kinit", status);
        }
-      else
-       ErrorExit("\nAuthorization failed -- please run kinit", status);
     }
 
   /*
index 5af6de4377233e18a624bfa52f68bdd0edae9956..4e2f41ca8f1b99b3c491b762fc11aff7cba74014 100644 (file)
@@ -891,6 +891,10 @@ int do_mr_query(char *name, int argc, char **argv,
       return MR_ABORTED;
     }
   status = mr_krb5_auth(whoami);
+  
+  if (status == MR_UNKNOWN_PROC)
+    status = mr_auth(whoami);
+
   if (status)
     {
       com_err(whoami, status, " while re-authenticating to server %s",
This page took 0.057682 seconds and 5 git commands to generate.