shishi-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Have sole '-a' initialize a realm.


From: shishi-commit
Subject: Have sole '-a' initialize a realm.
Date: Thu, 11 Dec 2003 05:49:46 +0100

Commit from jas 2003-12-11 05:49 CET
Have sole '-a' initialize a realm.
Module File name Revision
shishi src/shisa.c 1.23 >>> 1.24

shishi/src/shisa.c   1.23 >>> 1.24
Line 40
  #define gettext_noop(String) String
  #define N_(String) gettext_noop (String)
 
+ /* Get asprintf. */
+ #include "vasprintf.h"
+
+ /* Get xgethostname. */
+ #include "xgethostname.h"
+
+ /* Get set_program_name and program_name. */
  #include "progname.h"
 
  #include <shisa.h>
Line 264
        shishi_key_realm_set (key, realm);
        shishi_key_principal_set (key, principal);
 
-       if (!args_info.quiet_flag)
+       if (args_info.verbose_flag)
  shishi_key_print (sh, stdout, key);
 
        dbkey->etype = etype;
Line 347
    else
      printf ("Adding principal address@hidden'...done\n", principal, realm);
 
+
    return EXIT_SUCCESS;
  }
 
Line 361
      rc = add_principal (args_info.inputs[0], args_info.inputs[1]);
    else
      {
-       error (0, 0, "too few arguments");
-       error (0, 0, "Try `%s --help' for more information.", program_name);
-       return EXIT_FAILURE;
+       int oldverbose = args_info.verbose_flag;
+       const char *realm = shishi_realm_default (sh);
+       char *host;
+       char *tmp;
+
+       /* This is mostly meant for 'make install', as it set up the
+  default realm, and write a host key to stdout, which can be
+  redirected into $prefix/etc/shishi/shishi.keys. */
+
+       printf ("Adding default realm `%s'...\n", realm);
+       rc = add_principal (realm, NULL);
+       if (rc != EXIT_SUCCESS)
+ return EXIT_FAILURE;
+
+       args_info.verbose_flag = 0;
+
+       asprintf (&tmp, "krbtgt/%s", realm);
+       rc = add_principal (realm, tmp);
+       free (tmp);
+       if (rc != EXIT_SUCCESS)
+ return EXIT_FAILURE;
+
+       args_info.verbose_flag = 1;
+
+       host = xgethostname ();
+       asprintf (&tmp, "host/%s", host);
+       free (host);
+       rc = add_principal (realm, tmp);
+       free (tmp);
+       args_info.verbose_flag = oldverbose;
+       if (rc != EXIT_SUCCESS)
+ return EXIT_FAILURE;
      }
 
-   return EXIT_SUCCESS;
+   return rc;
  }
 
  int



reply via email to

[Prev in Thread] Current Thread [Next in Thread]