svn commit: lorikeet r658 - in trunk/heimdal/lib/krb5: .

abartlet at samba.org abartlet at samba.org
Wed Nov 8 03:19:09 GMT 2006


Author: abartlet
Date: 2006-11-08 03:19:09 +0000 (Wed, 08 Nov 2006)
New Revision: 658

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=lorikeet&rev=658

Log:
I never used the 'no-addresses-ever' switch, so lets revert to the
Heimdal code for now.

We may wish to revisit this, and in particular the gethostbyname()
call, at some point.

Andrew Bartlett

Modified:
   trunk/heimdal/lib/krb5/get_for_creds.c


Changeset:
Modified: trunk/heimdal/lib/krb5/get_for_creds.c
===================================================================
--- trunk/heimdal/lib/krb5/get_for_creds.c	2006-11-08 01:46:44 UTC (rev 657)
+++ trunk/heimdal/lib/krb5/get_for_creds.c	2006-11-08 03:19:09 UTC (rev 658)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997 - 2004 Kungliga Tekniska Högskolan
+ * Copyright (c) 1997 - 2004 Kungliga Tekniska Högskolan
  * (Royal Institute of Technology, Stockholm, Sweden). 
  * All rights reserved. 
  *
@@ -162,8 +162,7 @@
 {
     krb5_error_code ret;
     krb5_creds *out_creds;
-    krb5_addresses *paddrs = NULL;
-    krb5_addresses addrs;
+    krb5_addresses addrs, *paddrs;
     KRB_CRED cred;
     KrbCredInfo *krb_cred_info;
     EncKrbCredPart enc_krb_cred_part;
@@ -172,53 +171,58 @@
     size_t buf_size;
     krb5_kdc_flags kdc_flags;
     krb5_crypto crypto;
+    struct addrinfo *ai;
     int save_errno;
     krb5_creds *ticket;
     char *realm;
-    krb5_boolean noaddr_ever;
 
+    realm = in_creds->client->realm;
+
     addrs.len = 0;
     addrs.val = NULL;
+    paddrs = &addrs;
 
-    realm = in_creds->client->realm;
+    {
+	krb5_boolean noaddr;
+	krb5_appdefault_boolean(context, NULL, realm,
+				"no-addresses", KRB5_ADDRESSLESS_DEFAULT,
+				&noaddr);
+	if (noaddr)
+	    paddrs = NULL;
+    }
+	
+    /*
+     * If tickets are address-less, forward address-less tickets.
+     */
 
-    krb5_appdefault_boolean(context, NULL, realm, "no-addresses-ever", 
-			    TRUE, &noaddr_ever);
-    if (!noaddr_ever) {
-	    struct addrinfo *ai;
-	    paddrs = &addrs;
-	    
-	    /*
-	     * If tickets are address-less, forward address-less tickets.
-	     */
-	    
-	    ret = _krb5_get_krbtgt (context,
-				    ccache,
-				    realm,
-				    &ticket);
-	    if(ret == 0) {
-		    if (ticket->addresses.len == 0)
-			    paddrs = NULL;
-		    krb5_free_creds (context, ticket);
-	    }
-	    
-	    if (paddrs != NULL) {
-		    
-		    ret = getaddrinfo (hostname, NULL, NULL, &ai);
-		    if (ret) {
-			    save_errno = errno;
-			    krb5_set_error_string(context, "resolving %s: %s",
-						  hostname, gai_strerror(ret));
-			    return krb5_eai_to_heim_errno(ret, save_errno);
-		    }
-		    
-		    ret = add_addrs (context, &addrs, ai);
-		    freeaddrinfo (ai);
-		    if (ret)
-			    return ret;
-	    }
+    if (paddrs) {
+	ret = _krb5_get_krbtgt (context,
+				ccache,
+				realm,
+				&ticket);
+	if(ret == 0) {
+	    if (ticket->addresses.len == 0)
+		paddrs = NULL;
+	    krb5_free_creds (context, ticket);
+	}
     }
+    
+    if (paddrs != NULL) {
 
+	ret = getaddrinfo (hostname, NULL, NULL, &ai);
+	if (ret) {
+	    save_errno = errno;
+	    krb5_set_error_string(context, "resolving %s: %s",
+				  hostname, gai_strerror(ret));
+	    return krb5_eai_to_heim_errno(ret, save_errno);
+	}
+	
+	ret = add_addrs (context, &addrs, ai);
+	freeaddrinfo (ai);
+	if (ret)
+	    return ret;
+    }
+    
     kdc_flags.b = int2KDCOptions(flags);
 
     ret = krb5_get_kdc_cred (context,



More information about the samba-cvs mailing list