[630] in Zephyr_Bugs
"-r realm" support in zephyrd
daemon@ATHENA.MIT.EDU (Derrick J Brashear)
Wed Jul 12 19:42:44 1995
Date: Wed, 12 Jul 1995 19:42:36 -0400 (EDT)
From: Derrick J Brashear <shadow@DEMENTIA.ORG>
To: bug-zephyr@MIT.EDU
Hi,
This patch implements the -r realm switch in zephyrd. I needed it so I
could set up a zephyr server on a machine otherwise in another realm and
if anything it should be useful for when debugging on a machine that
needs to be in another realm.
Enjoy
-D
*** server/bdump.c.orig Wed Jul 12 12:00:48 1995
--- server/bdump.c Wed Jul 12 16:51:53 1995
***************
*** 69,75 ****
#ifdef ZEPHYR_USES_KERBEROS
static int get_tgt __P((void));
static long ticket_time;
- static char my_realm[REALM_SZ];
#define TKTLIFETIME 120
#define tkt_lifetime(val) ((long) val * 5L * 60L)
--- 69,74 ----
*** server/kstuff.c.orig Wed Jul 12 16:52:27 1995
--- server/kstuff.c Wed Jul 12 16:54:50 1995
***************
*** 125,131 ****
int written;
int size_to_write;
! rem = krb_get_lrealm(krb_realm,1);
if (rem != KSUCCESS)
return rem + krb_err_base;
--- 125,132 ----
int written;
int size_to_write;
! if (!*my_realm) rem = krb_get_lrealm(krb_realm,1);
! else strcpy(krb_realm,my_realm);
if (rem != KSUCCESS)
return rem + krb_err_base;
*** server/main.c.orig Wed Jul 12 16:39:38 1995
--- server/main.c Wed Jul 12 19:15:54 1995
***************
*** 98,103 ****
--- 98,104 ----
#ifdef ZEPHYR_USES_KERBEROS
char srvtab_file[128];
static char tkt_file[128];
+ char my_realm[REALM_SZ];
#endif
char acl_dir[128];
char subs_file[128];
***************
*** 154,160 ****
programname = (programname) ? programname + 1 : argv[0];
/* process arguments */
! while ((optchar = getopt(argc, argv, "dsnv:f:")) != EOF) {
switch(optchar) {
case 'd':
zdebug = 1;
--- 155,161 ----
programname = (programname) ? programname + 1 : argv[0];
/* process arguments */
! while ((optchar = getopt(argc, argv, "dsnv:f:r:")) != EOF) {
switch(optchar) {
case 'd':
zdebug = 1;
***************
*** 167,172 ****
--- 168,178 ----
case 'n':
nofork = 1;
break;
+ #ifdef ZEPHYR_USES_KERBEROS
+ case 'r':
+ strncpy(my_realm,optarg,REALM_SZ);
+ break;
+ #endif
case 'v':
bdump_version = optarg;
break;
***************
*** 194,199 ****
--- 200,212 ----
srvtab_file);
exit(1);
}
+ /* If we weren't given a realm on the command line, we should fill in */
+ if (!*my_realm)
+ if (krb_get_lrealm(my_realm,1)) {
+ fprintf(stderr, "Couldn't get local Kerberos realm name; exiting\n");
+ exit(1);
+ }
+
#endif /* ZEPHYR_USES_KERBEROS */
#ifndef DEBUG
***************
*** 478,486 ****
usage()
{
#ifdef DEBUG
! fprintf(stderr,"Usage: %s [-d] [-s] [-n] [-f dumpfile]\n",programname);
#else
! fprintf(stderr,"Usage: %s [-d] [-n] [-f dumpfile]\n",programname);
#endif /* DEBUG */
exit(2);
}
--- 491,499 ----
usage()
{
#ifdef DEBUG
! fprintf(stderr,"Usage: %s [-d] [-s] [-n] [-r realm] [-f dumpfile]\n",programname);
#else
! fprintf(stderr,"Usage: %s [-d] [-n] [-r realm] [-f dumpfile]\n",programname);
#endif /* DEBUG */
exit(2);
}
*** server/zserver.h.orig Wed Jul 12 16:44:53 1995
--- server/zserver.h Wed Jul 12 16:51:13 1995
***************
*** 276,281 ****
--- 276,282 ----
#endif
#ifdef ZEPHYR_USES_KERBEROS
extern char srvtab_file[];
+ extern char my_realm[];
#endif
extern char acl_dir[];
extern char subs_file[];