svn commit: samba r24832 - in branches: SAMBA_3_2/source/libads SAMBA_3_2_0/source/libads

gd at samba.org gd at samba.org
Fri Aug 31 12:18:23 GMT 2007


Author: gd
Date: 2007-08-31 12:18:21 +0000 (Fri, 31 Aug 2007)
New Revision: 24832

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

Log:
In the winbind-locator recursion case, try to pick up the kdc from the
environment.

Guenther

Modified:
   branches/SAMBA_3_2/source/libads/smb_krb5_locator.c
   branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c


Changeset:
Modified: branches/SAMBA_3_2/source/libads/smb_krb5_locator.c
===================================================================
--- branches/SAMBA_3_2/source/libads/smb_krb5_locator.c	2007-08-31 11:19:09 UTC (rev 24831)
+++ branches/SAMBA_3_2/source/libads/smb_krb5_locator.c	2007-08-31 12:18:21 UTC (rev 24832)
@@ -335,9 +335,28 @@
 			goto failed;
 		}
 	} else {
-		/* FIXME: here comes code for locator being called from within
-		 * winbind */
-		 goto failed;
+		const char *env = NULL;
+		char *var = NULL;
+		if (asprintf(&var, "%s_%s",
+			     WINBINDD_LOCATOR_KDC_ADDRESS, realm) == -1) {
+			goto failed;
+		}
+		env = getenv(var);
+		if (!env) {
+#ifdef DEBUG_KRB5
+			fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "
+				"failed to get kdc from env %s\n",
+				(unsigned int)getpid(), var);
+#endif
+			free(var);
+			goto failed;
+		}
+		free(var);
+
+		kdc_name = strdup(env);
+		if (!kdc_name) {
+			goto failed;
+		}
 	}
 #ifdef DEBUG_KRB5
 	fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "

Modified: branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c
===================================================================
--- branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c	2007-08-31 11:19:09 UTC (rev 24831)
+++ branches/SAMBA_3_2_0/source/libads/smb_krb5_locator.c	2007-08-31 12:18:21 UTC (rev 24832)
@@ -335,9 +335,28 @@
 			goto failed;
 		}
 	} else {
-		/* FIXME: here comes code for locator being called from within
-		 * winbind */
-		 goto failed;
+		const char *env = NULL;
+		char *var = NULL;
+		if (asprintf(&var, "%s_%s",
+			     WINBINDD_LOCATOR_KDC_ADDRESS, realm) == -1) {
+			goto failed;
+		}
+		env = getenv(var);
+		if (!env) {
+#ifdef DEBUG_KRB5
+			fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "
+				"failed to get kdc from env %s\n",
+				(unsigned int)getpid(), var);
+#endif
+			free(var);
+			goto failed;
+		}
+		free(var);
+
+		kdc_name = strdup(env);
+		if (!kdc_name) {
+			goto failed;
+		}
 	}
 #ifdef DEBUG_KRB5
 	fprintf(stderr, "[%5u]: smb_krb5_locator_lookup: "



More information about the samba-cvs mailing list