[630] in Zephyr_Bugs

home help back first fref pref prev next nref lref last post

"-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[];


home help back first fref pref prev next nref lref last post