[2004] in Moira Commits

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

/svn/moira r4143 - trunk/moira/incremental/afs

daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Fri Sep 20 19:37:14 2013

Date: Fri, 20 Sep 2013 19:37:06 -0400
From: Garry Zacheiss <zacheiss@MIT.EDU>
Message-Id: <201309202337.r8KNb6kN002410@drugstore.mit.edu>
To: moira-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: zacheiss
Date: 2013-09-20 19:37:06 -0400 (Fri, 20 Sep 2013)
New Revision: 4143

Modified:
   trunk/moira/incremental/afs/afs.c
Log:
Don't call krb5_524_conv_principal if our KERBEROS member is secretly an IP address.

Modified: trunk/moira/incremental/afs/afs.c
===================================================================
--- trunk/moira/incremental/afs/afs.c	2013-09-06 00:05:11 UTC (rev 4142)
+++ trunk/moira/incremental/afs/afs.c	2013-09-20 23:37:06 UTC (rev 4143)
@@ -630,21 +630,25 @@
 
   if (!strcmp(type, "KERBEROS"))
     {
-      /* AFS still uses a v4-style namespace, so convert. */
-      code = krb5_parse_name(context, member, &client);
-      if (code)
-	goto out;
-
-      code = krb5_524_conv_principal(context, client, name, inst, realm);
-      if (code)
-	goto out;
-
-      strcpy(canon_member, mr_kname_unparse(name, inst, realm));
-      member = canon_member;
-
-      p = strchr(member, '@');
-      if (p && !strcasecmp(p+1, local_realm))
-	*p = 0;
+      /* Check if we've been handed an IPv4 address and don't mangle it. */
+      if (inet_addr(member) == INADDR_NONE)
+	{
+	  /* AFS still uses a v4-style namespace, so convert. */
+	  code = krb5_parse_name(context, member, &client);
+	  if (code)
+	    goto out;
+	  
+	  code = krb5_524_conv_principal(context, client, name, inst, realm);
+	  if (code)
+	    goto out;
+	  
+	  strcpy(canon_member, mr_kname_unparse(name, inst, realm));
+	  member = canon_member;
+	  
+	  p = strchr(member, '@');
+	  if (p && !strcasecmp(p+1, local_realm))
+	    *p = 0;
+	}
     }
   else if (strcmp(type, "USER"))
     return;					/* invalid type */


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